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>

Reply via email to