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]