This is an automated email from the ASF dual-hosted git repository. szaszm pushed a commit to branch main in repository https://gitbox.apache.org/repos/asf/nifi-minifi-cpp.git
commit 58518e4342c4df4743d06743dab46836addd1034 Author: Ferenc Gerlits <[email protected]> AuthorDate: Wed Apr 24 13:32:24 2024 +0200 MINIFICPP-2330 Copy the python examples from the source into the msi Closes #1759 Signed-off-by: Marton Szasz <[email protected]> --- CMakeLists.txt | 18 +++++++++++------- extensions/python/CMakeLists.txt | 17 ++++++++++++++++- msi/WixWin.wsi.in | 35 ++++++++++++++++++++--------------- 3 files changed, 47 insertions(+), 23 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 62a3f2ffe..ed8811ee6 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -647,13 +647,17 @@ foreach(extension ${selected_extensions}) endif() cpack_add_component(${component-name} DISPLAY_NAME ${extension} ${maybe_disabled} GROUP extensions DEPENDS bin) endforeach() -if (NOT WIN32 AND "python_script_extension" IN_LIST CPACK_COMPONENTS_ALL) - list(APPEND CPACK_COMPONENTS_ALL minifi_python_native_module) - cpack_add_component(minifi_python_native_module - DISPLAY_NAME "MiNiFi Python native module" - FILES "${CMAKE_BINARY_DIR}/bin/minifi_native$<TARGET_FILE_SUFFIX:minifi-python-script-extension>" - GROUP extensions - DEPENDS bin) +if ("python_script_extension" IN_LIST CPACK_COMPONENTS_ALL) + if (WIN32) + set(CPACK_WIX_CANDLE_EXTRA_FLAGS "-dINCLUDE_PYTHON_PROCESSORS=yes") + else() + list(APPEND CPACK_COMPONENTS_ALL minifi_python_native_module) + cpack_add_component(minifi_python_native_module + DISPLAY_NAME "MiNiFi Python native module" + FILES "${CMAKE_BINARY_DIR}/bin/minifi_native$<TARGET_FILE_SUFFIX:minifi-python-script-extension>" + GROUP extensions + DEPENDS bin) + endif() endif() include(CPack) diff --git a/extensions/python/CMakeLists.txt b/extensions/python/CMakeLists.txt index f9e8cf5cf..336f71ee0 100644 --- a/extensions/python/CMakeLists.txt +++ b/extensions/python/CMakeLists.txt @@ -45,7 +45,22 @@ target_include_directories(minifi-python-script-extension PUBLIC ${Python_INCLUD get_target_property(TARGET_EXT minifi-python-script-extension SUFFIX) -if (NOT WIN32) +if (WIN32) + add_custom_command( + TARGET minifi-python-script-extension + POST_BUILD + COMMAND ${CMAKE_COMMAND} -E copy_directory + "${CMAKE_SOURCE_DIR}/extensions/python/pythonprocessors" "${CMAKE_BINARY_DIR}/pythonprocessors" + COMMENT "Copy python processors to the build directory" + ) + add_custom_command( + TARGET minifi-python-script-extension + POST_BUILD + COMMAND ${CMAKE_COMMAND} -E copy_directory + "${CMAKE_SOURCE_DIR}/extensions/python/pythonprocessor-examples" "${CMAKE_BINARY_DIR}/pythonprocessor-examples" + COMMENT "Copy python processor examples (not intended to be used in production) to the build directory" + ) +else() add_custom_command( TARGET minifi-python-script-extension POST_BUILD diff --git a/msi/WixWin.wsi.in b/msi/WixWin.wsi.in index 3d08c3865..8e1830957 100644 --- a/msi/WixWin.wsi.in +++ b/msi/WixWin.wsi.in @@ -61,6 +61,7 @@ ${WIX_EXTRA_FEATURES} <ComponentRef Id="UpdateConfigNotExist"/> </Feature> +<?ifdef INCLUDE_PYTHON_PROCESSORS?> <Feature Id="InstallMiNiFiPython" Title="Apache NiFi MiNiFi C++ Python processors" AllowAdvertise="yes" Level="1"> <ComponentRef Id="PythonProcessorExampleFiles"/> <ComponentRef Id="NifiPythonProcessorFiles"/> @@ -70,6 +71,7 @@ ${WIX_EXTRA_FEATURES} <ComponentRef Id="PythonProcessorGoogleFiles"/> <ComponentRef Id="NifiPythonProcessorUtilsFiles"/> </Feature> +<?endif?> <FeatureRef Id="ProductFeature"/> @@ -404,39 +406,40 @@ ${WIX_EXTRA_COMPONENTS} </Directory> +<?ifdef INCLUDE_PYTHON_PROCESSORS?> <Directory Id="INSTALLPYTHONDIR" Name="minifi-python"> <Directory Id="INSTALLGOOGLEDIR" Name="google"> <Component Id="PythonProcessorGoogleFiles" Guid="90b898a9-76fb-4888-a4aa-adcd22097863"> - <File Id="Google_SentimentAnalyzer" Name="SentimentAnalyzer.py" KeyPath="yes" Source="..\extensions\python\pythonprocessors\google\SentimentAnalyzer.py"/> + <File Id="Google_SentimentAnalyzer" Name="SentimentAnalyzer.py" KeyPath="yes" Source="pythonprocessors\google\SentimentAnalyzer.py"/> </Component> </Directory> <Directory Id="INSTALLH2ODIR" Name="h2o"> <Component Id="PythonProcessorH2oFiles" Guid="b290aeb3-c67a-4cd1-a0a4-1ba049a2e44e"> - <File Id="H2o_ConvertDsToCsv" Name="ConvertDsToCsv.py" KeyPath="yes" Source="..\extensions\python\pythonprocessors\h2o\ConvertDsToCsv.py"/> + <File Id="H2o_ConvertDsToCsv" Name="ConvertDsToCsv.py" KeyPath="yes" Source="pythonprocessors\h2o\ConvertDsToCsv.py"/> </Component> <Directory Id="INSTALLH2O3DIR" Name="h2o3"> <Directory Id="INSTALLMOJODIR" Name="mojo"> <Component Id="PythonProcessorMojoFiles" Guid="d2b803da-1cd1-4925-802b-19f3e09fc0f7"> - <File Id="H2o_ExecuteH2oMojoScoring" Name="ExecuteH2oMojoScoring.py" KeyPath="yes" Source="..\extensions\python\pythonprocessors\h2o\h2o3\mojo\ExecuteH2oMojoScoring.py"/> + <File Id="H2o_ExecuteH2oMojoScoring" Name="ExecuteH2oMojoScoring.py" KeyPath="yes" Source="pythonprocessors\h2o\h2o3\mojo\ExecuteH2oMojoScoring.py"/> </Component> </Directory> </Directory> </Directory> <Directory Id="INSTALLNIFIAPIDIR" Name="nifiapi"> <Component Id="PythonProcessorNifiApiFiles" Guid="a9cb7b7b-e66d-4e32-9115-eab4aa980124"> - <File Id="NifiApi_flowfiletransform" Name="flowfiletransform.py" KeyPath="no" Source="..\extensions\python\pythonprocessors\nifiapi\flowfiletransform.py"/> - <File Id="NifiApi_properties" Name="properties.py" KeyPath="no" Source="..\extensions\python\pythonprocessors\nifiapi\properties.py"/> - <File Id="NifiApi_documentation" Name="documentation.py" KeyPath="no" Source="..\extensions\python\pythonprocessors\nifiapi\documentation.py"/> - <File Id="NifiApi_init" Name="__init__.py" KeyPath="no" Source="..\extensions\python\pythonprocessors\nifiapi\__init__.py"/> + <File Id="NifiApi_flowfiletransform" Name="flowfiletransform.py" KeyPath="no" Source="pythonprocessors\nifiapi\flowfiletransform.py"/> + <File Id="NifiApi_properties" Name="properties.py" KeyPath="no" Source="pythonprocessors\nifiapi\properties.py"/> + <File Id="NifiApi_documentation" Name="documentation.py" KeyPath="no" Source="pythonprocessors\nifiapi\documentation.py"/> + <File Id="NifiApi_init" Name="__init__.py" KeyPath="no" Source="pythonprocessors\nifiapi\__init__.py"/> </Component> </Directory> <Directory Id="INSTALLNIFIPYTHONPROCESSORSDIR" Name="nifi_python_processors"> <Component Id="NifiPythonProcessorFiles" Guid="66ce16d4-aea4-4fcb-bbbb-8a28813e2138"> - <File Id="NifiPythonProcessors_init" Name="__init__.py" KeyPath="yes" Source="..\extensions\python\pythonprocessors\nifi_python_processors\__init__.py"/> + <File Id="NifiPythonProcessors_init" Name="__init__.py" KeyPath="yes" Source="pythonprocessors\nifi_python_processors\__init__.py"/> </Component> <Directory Id="INSTALLNIFIPYTHONPROCESSORSUTILSDIR" Name="utils"> <Component Id="NifiPythonProcessorUtilsFiles" Guid="6bb11f67-007f-4467-970a-c42c2bae0891"> - <File Id="NifiPythonProcessorUtils_dependency_installer" Name="inline_dependency_installer.py" KeyPath="yes" Source="..\extensions\python\pythonprocessors\nifi_python_processors\utils\inline_dependency_installer.py"/> + <File Id="NifiPythonProcessorUtils_dependency_installer" Name="inline_dependency_installer.py" KeyPath="yes" Source="pythonprocessors\nifi_python_processors\utils\inline_dependency_installer.py"/> </Component> </Directory> </Directory> @@ -444,14 +447,16 @@ ${WIX_EXTRA_COMPONENTS} <Directory Id="INSTALLPYTHONEXAMPLESDIR" Name="minifi-python-examples"> <Component Id="PythonProcessorExampleFiles" Guid="2508ace9-6f5d-4cb1-af66-58d5f44ae2b1"> - <File Id="Examples_AddPythonAttribute" Name="AddPythonAttribute.py" KeyPath="no" Source="..\extensions\python\pythonprocessor-examples\AddPythonAttribute.py"/> - <File Id="Examples_CountingProcessor" Name="CountingProcessor.py" KeyPath="no" Source="..\extensions\python\pythonprocessor-examples\CountingProcessor.py"/> - <File Id="Examples_GaussianDistributionWithNumpy" Name="GaussianDistributionWithNumpy.py" KeyPath="no" Source="..\extensions\python\pythonprocessor-examples\GaussianDistributionWithNumpy.py"/> - <File Id="Examples_MoveContentToJson" Name="MoveContentToJson.py" KeyPath="no" Source="..\extensions\python\pythonprocessor-examples\MoveContentToJson.py"/> - <File Id="Examples_RemoveFlowFile" Name="RemoveFlowFile.py" KeyPath="no" Source="..\extensions\python\pythonprocessor-examples\RemoveFlowFile.py"/> - <File Id="Examples_SentimentAnalysis" Name="SentimentAnalysis.py" KeyPath="no" Source="..\extensions\python\pythonprocessor-examples\SentimentAnalysis.py"/> + <File Id="Examples_AddPythonAttribute" Name="AddPythonAttribute.py" KeyPath="no" Source="pythonprocessor-examples\AddPythonAttribute.py"/> + <File Id="Examples_CountingProcessor" Name="CountingProcessor.py" KeyPath="no" Source="pythonprocessor-examples\CountingProcessor.py"/> + <File Id="Examples_GaussianDistributionWithNumpy" Name="GaussianDistributionWithNumpy.py" KeyPath="no" Source="pythonprocessor-examples\GaussianDistributionWithNumpy.py"/> + <File Id="Examples_MoveContentToJson" Name="MoveContentToJson.py" KeyPath="no" Source="pythonprocessor-examples\MoveContentToJson.py"/> + <File Id="Examples_RemoveFlowFile" Name="RemoveFlowFile.py" KeyPath="no" Source="pythonprocessor-examples\RemoveFlowFile.py"/> + <File Id="Examples_SentimentAnalysis" Name="SentimentAnalysis.py" KeyPath="no" Source="pythonprocessor-examples\SentimentAnalysis.py"/> </Component> </Directory> +<?endif?> + </Directory> </DirectoryRef> </Fragment>
