szaszm commented on code in PR #1364:
URL: https://github.com/apache/nifi-minifi-cpp/pull/1364#discussion_r915508058


##########
win_build_vs.bat:
##########
@@ -73,12 +73,17 @@ for %%x in (%*) do (
     if [%%~x] EQU [/NONFREEUCRT] set "redist=-DMSI_REDISTRIBUTE_UCRT_NONASL=ON"
     if [%%~x] EQU [/L]           set build_linter=ON
     if [%%~x] EQU [/RO]          set real_odbc=ON
+    if [%%~x] EQU [/NJ]          set generator="Ninja"
 )
 
 mkdir %builddir%
 pushd %builddir%\
 
-cmake -G %generator% -A %build_platform% 
-DINSTALLER_MERGE_MODULES=%installer_merge_modules% 
-DTEST_CUSTOM_WEL_PROVIDER=%test_custom_wel_provider% -DENABLE_SQL=%build_SQL% 
-DUSE_REAL_ODBC_TEST_DRIVER=%real_odbc% 
-DCMAKE_BUILD_TYPE_INIT=%cmake_build_type% 
-DCMAKE_BUILD_TYPE=%cmake_build_type% -DWIN32=WIN32 
-DENABLE_LIBRDKAFKA=%build_kafka% -DENABLE_JNI=%build_jni% -DOPENSSL_OFF=OFF 
-DENABLE_COAP=%build_coap% -DENABLE_AWS=%build_AWS% -DENABLE_PDH=%build_PDH% 
-DENABLE_AZURE=%build_azure% -DENABLE_SFTP=%build_SFTP% 
-DENABLE_SPLUNK=%build_SPLUNK% -DENABLE_GCP=%build_GCP% 
-DENABLE_NANOFI=%build_nanofi% -DENABLE_OPENCV=%build_opencv% 
-DENABLE_PROMETHEUS=%build_prometheus% -DENABLE_ELASTICSEARCH=%build_ELASTIC% 
-DUSE_SHARED_LIBS=OFF -DDISABLE_CONTROLLER=ON  -DBUILD_ROCKSDB=ON 
-DFORCE_WINDOWS=ON -DUSE_SYSTEM_UUID=OFF -DDISABLE_LIBARCHIVE=OFF 
-DENABLE_SCRIPTING=OFF -DEXCLUDE_BOOST=ON -DENABLE_WEL=ON 
-DFAIL_ON_WARNINGS=OFF -DSKIP_TESTS=%skiptests% %strict_gsl_checks% %redist% 
-DENABLE_LINTER=%
 build_linter% "%scriptdir%" && msbuild /m nifi-minifi-cpp.sln 
/property:Configuration=%cmake_build_type% /property:Platform=%build_platform% 
&& copy bin\%cmake_build_type%\minifi.exe main\
+if [%generator%] EQU ["Ninja"] (
+    cmake -G %generator% -DINSTALLER_MERGE_MODULES=%installer_merge_modules% 
-DTEST_CUSTOM_WEL_PROVIDER=%test_custom_wel_provider% -DENABLE_SQL=%build_SQL% 
-DUSE_REAL_ODBC_TEST_DRIVER=%real_odbc% 
-DCMAKE_BUILD_TYPE_INIT=%cmake_build_type% 
-DCMAKE_BUILD_TYPE=%cmake_build_type% -DWIN32=WIN32 
-DENABLE_LIBRDKAFKA=%build_kafka% -DENABLE_JNI=%build_jni% -DOPENSSL_OFF=OFF 
-DENABLE_COAP=%build_coap% -DENABLE_AWS=%build_AWS% -DENABLE_PDH=%build_PDH% 
-DENABLE_AZURE=%build_azure% -DENABLE_SFTP=%build_SFTP% 
-DENABLE_SPLUNK=%build_SPLUNK% -DENABLE_GCP=%build_GCP% 
-DENABLE_NANOFI=%build_nanofi% -DENABLE_OPENCV=%build_opencv% 
-DENABLE_PROMETHEUS=%build_prometheus% -DENABLE_ELASTICSEARCH=%build_ELASTIC% 
-DUSE_SHARED_LIBS=OFF -DDISABLE_CONTROLLER=ON  -DBUILD_ROCKSDB=ON 
-DFORCE_WINDOWS=ON -DUSE_SYSTEM_UUID=OFF -DDISABLE_LIBARCHIVE=OFF 
-DENABLE_SCRIPTING=OFF -DEXCLUDE_BOOST=ON -DENABLE_WEL=ON 
-DFAIL_ON_WARNINGS=OFF -DSKIP_TESTS=%skiptests% %strict_gsl_checks% %redist% 
-DENABLE_LINTER=%build_linter% "%
 scriptdir%" && ninja
+) else (
+    cmake -G %generator% -A %build_platform% 
-DINSTALLER_MERGE_MODULES=%installer_merge_modules% 
-DTEST_CUSTOM_WEL_PROVIDER=%test_custom_wel_provider% -DENABLE_SQL=%build_SQL% 
-DUSE_REAL_ODBC_TEST_DRIVER=%real_odbc% 
-DCMAKE_BUILD_TYPE_INIT=%cmake_build_type% 
-DCMAKE_BUILD_TYPE=%cmake_build_type% -DWIN32=WIN32 
-DENABLE_LIBRDKAFKA=%build_kafka% -DENABLE_JNI=%build_jni% -DOPENSSL_OFF=OFF 
-DENABLE_COAP=%build_coap% -DENABLE_AWS=%build_AWS% -DENABLE_PDH=%build_PDH% 
-DENABLE_AZURE=%build_azure% -DENABLE_SFTP=%build_SFTP% 
-DENABLE_SPLUNK=%build_SPLUNK% -DENABLE_GCP=%build_GCP% 
-DENABLE_NANOFI=%build_nanofi% -DENABLE_OPENCV=%build_opencv% 
-DENABLE_PROMETHEUS=%build_prometheus% -DENABLE_ELASTICSEARCH=%build_ELASTIC% 
-DUSE_SHARED_LIBS=OFF -DDISABLE_CONTROLLER=ON  -DBUILD_ROCKSDB=ON 
-DFORCE_WINDOWS=ON -DUSE_SYSTEM_UUID=OFF -DDISABLE_LIBARCHIVE=OFF 
-DENABLE_SCRIPTING=OFF -DEXCLUDE_BOOST=ON -DENABLE_WEL=ON 
-DFAIL_ON_WARNINGS=OFF -DSKIP_TESTS=%skiptests% %strict_gsl_checks% %redist% 
-DENABLE_LINT
 ER=%build_linter% "%scriptdir%" && msbuild /m nifi-minifi-cpp.sln 
/property:Configuration=%cmake_build_type% /property:Platform=%build_platform% 
&& copy bin\%cmake_build_type%\minifi.exe main\
+)

Review Comment:
   Could you avoid the duplication of this monster of a line? I'm thinking 
about introducing a build command variable earlier, and executing that instead 
of `&& ninja` or `&& msbuild`.
   Hopefully something like this could work:
   ```suggestion
   if [%generator%] EQU ["Ninja"] (
       set "buildcmd=ninja"
   ) else (
       set "buildcmd=msbuild /m nifi-minifi-cpp.sln 
/property:Configuration=%cmake_build_type% /property:Platform=%build_platform% 
&& copy bin\%cmake_build_type%\minifi.exe main\"
   )
   cmake -G %generator% -DINSTALLER_MERGE_MODULES=%installer_merge_modules% 
-DTEST_CUSTOM_WEL_PROVIDER=%test_custom_wel_provider% -DENABLE_SQL=%build_SQL% 
-DUSE_REAL_ODBC_TEST_DRIVER=%real_odbc% 
-DCMAKE_BUILD_TYPE_INIT=%cmake_build_type% 
-DCMAKE_BUILD_TYPE=%cmake_build_type% -DWIN32=WIN32 
-DENABLE_LIBRDKAFKA=%build_kafka% -DENABLE_JNI=%build_jni% -DOPENSSL_OFF=OFF 
-DENABLE_COAP=%build_coap% -DENABLE_AWS=%build_AWS% -DENABLE_PDH=%build_PDH% 
-DENABLE_AZURE=%build_azure% -DENABLE_SFTP=%build_SFTP% 
-DENABLE_SPLUNK=%build_SPLUNK% -DENABLE_GCP=%build_GCP% 
-DENABLE_NANOFI=%build_nanofi% -DENABLE_OPENCV=%build_opencv% 
-DENABLE_PROMETHEUS=%build_prometheus% -DENABLE_ELASTICSEARCH=%build_ELASTIC% 
-DUSE_SHARED_LIBS=OFF -DDISABLE_CONTROLLER=ON  -DBUILD_ROCKSDB=ON 
-DFORCE_WINDOWS=ON -DUSE_SYSTEM_UUID=OFF -DDISABLE_LIBARCHIVE=OFF 
-DENABLE_SCRIPTING=OFF -DEXCLUDE_BOOST=ON -DENABLE_WEL=ON 
-DFAIL_ON_WARNINGS=OFF -DSKIP_TESTS=%skiptests% %strict_gsl_checks% %redist% 
-DENABLE_LINTER=%build_linter% "%sc
 riptdir%" && %buildcmd%
   ```



##########
cmake/BundledCivetWeb.cmake:
##########
@@ -64,12 +61,11 @@ function(use_bundled_civetweb SOURCE_DIR BINARY_DIR)
     # Build project
     ExternalProject_Add(
             civetweb-external
-            URL "https://github.com/civetweb/civetweb/archive/v1.12.tar.gz";
-            URL_HASH 
"SHA256=8cab1e2ad8fb3e2e81fed0b2321a5afbd7269a644c44ed4c3607e0a212c6d9e1"
+            GIT_REPOSITORY "https://github.com/civetweb/civetweb.git";
+            GIT_TAG "4447b6501d5c568b4c6c0940eac801ec690b2250" # commit 
containing fix for MSVC issue https://github.com/civetweb/civetweb/issues/1024

Review Comment:
   I would prefer to stay on HTTP and a release version, and keep the necessary 
patch.
   Switching to FetchContent and keeping the git commit ref is a reasonable 
alternative, too. It doesn't make the commit reference any more stable and 
tested, but at least it helps with caching artifacts between builds, since one 
can specify an external FETCHCONTENT_BASE_DIR.



-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]

Reply via email to