-
Notifications
You must be signed in to change notification settings - Fork 92
/
win_build_vs.bat
133 lines (126 loc) · 6.01 KB
/
win_build_vs.bat
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
@echo off
SETLOCAL enabledelayedexpansion
rem Licensed to the Apache Software Foundation (ASF) under one or more
rem contributor license agreements. See the NOTICE file distributed with
rem this work for additional information regarding copyright ownership.
rem The ASF licenses this file to You under the Apache License, Version 2.0
rem (the "License"); you may not use this file except in compliance with
rem the License. You may obtain a copy of the License at
rem
rem http://www.apache.org/licenses/LICENSE-2.0
rem
rem Unless required by applicable law or agreed to in writing, software
rem distributed under the License is distributed on an "AS IS" BASIS,
rem WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
rem See the License for the specific language governing permissions and
rem limitations under the License.
TITLE Apache NiFi MiNiFi C++ Windows Build Helper
if [%1]==[] goto usage
set builddir=%1
set scriptdir=%~dp0
set skiptests=OFF
set skiptestrun=OFF
set cmake_build_type=Release
set build_platform=x64
set enable_kafka=ON
set enable_sql=ON
set enable_aws=ON
set enable_sftp=OFF
set enable_azure=ON
set enable_bustache=OFF
set enable_encrypt_config=ON
set enable_lua_scripting=ON
set enable_mqtt=ON
set enable_opc=ON
set enable_pdh=OFF
set enable_splunk=ON
set enable_smb=ON
set enable_ops=ON
set enable_python_scripting=ON
set enable_opencv=OFF
set enable_prometheus=ON
set enable_gcp=ON
set enable_elastic=ON
set enable_grafana_loki=OFF
set test_custom_wel_provider=OFF
set generator="Visual Studio 17 2022"
set cpack=OFF
set installer_merge_modules=OFF
set strict_gsl_checks=
set ucrt=OFF
set real_odbc=OFF
set sccache_arg=
set vc_redist=OFF
set arg_counter=0
for %%x in (%*) do (
set /A arg_counter+=1
echo %%~x
if [%%~x] EQU [/T] set skiptests=ON
if [%%~x] EQU [/R] set skiptestrun=ON
if [%%~x] EQU [/P] set cpack=ON
if [%%~x] EQU [/NO_KAFKA] set enable_kafka=OFF
if [%%~x] EQU [/NO_SQL] set enable_sql=OFF
if [%%~x] EQU [/NO_AWS] set enable_aws=OFF
if [%%~x] EQU [/SFTP] set enable_sftp=ON
if [%%~x] EQU [/PDH] set enable_pdh=ON
if [%%~x] EQU [/NO_SPLUNK] set enable_splunk=OFF
if [%%~x] EQU [/NO_SMB] set enable_smb=OFF
if [%%~x] EQU [/NO_GCP] set enable_gcp=OFF
if [%%~x] EQU [/NO_ELASTIC] set enable_elastic=OFF
if [%%~x] EQU [/M] set installer_merge_modules=ON
if [%%~x] EQU [/NO_AZURE] set enable_azure=OFF
if [%%~x] EQU [/O] set enable_opencv=ON
if [%%~x] EQU [/NO_PROMETHEUS] set enable_prometheus=OFF
if [%%~x] EQU [/BUSTACHE] set enable_bustache=ON
if [%%~x] EQU [/NO_ENCRYPT_CONFIG] set enable_encrypt_config=OFF
if [%%~x] EQU [/NO_LUA_SCRIPTING] set enable_lua_scripting=OFF
if [%%~x] EQU [/NO_MQTT] set enable_mqtt=OFF
if [%%~x] EQU [/NO_OPC] set enable_opc=OFF
if [%%~x] EQU [/NO_OPS] set enable_ops=OFF
if [%%~x] EQU [/NO_PYTHON_SCRIPTING] set enable_python_scripting=OFF
if [%%~x] EQU [/LOKI] set enable_grafana_loki=ON
if [%%~x] EQU [/32] set build_platform=Win32
if [%%~x] EQU [/D] set cmake_build_type=RelWithDebInfo
if [%%~x] EQU [/DD] set cmake_build_type=Debug
if [%%~x] EQU [/CI] set "strict_gsl_checks=-DSTRICT_GSL_CHECKS=AUDIT" & set test_custom_wel_provider=ON
if [%%~x] EQU [/NONFREEUCRT] set ucrt=ON
if [%%~x] EQU [/RO] set real_odbc=ON
if [%%~x] EQU [/NINJA] set generator="Ninja"
if [%%~x] EQU [/SCCACHE] set "sccache_arg=-DCMAKE_C_COMPILER_LAUNCHER=sccache -DCMAKE_CXX_COMPILER_LAUNCHER=sccache"
if [%%~x] EQU [/VC_REDIST] set vc_redist=ON
)
mkdir %builddir%
pushd %builddir%\
if [%generator%] EQU ["Ninja"] (
set "buildcmd=ninja && copy bin\minifi.exe minifi_main\"
set "build_platform_cmd="
) 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 minifi_main\"
set "build_platform_cmd=-A %build_platform%"
)
echo on
cmake -G %generator% %build_platform_cmd% -DMINIFI_INCLUDE_VC_REDIST_MERGE_MODULES=%installer_merge_modules% -DTEST_CUSTOM_WEL_PROVIDER=%test_custom_wel_provider% -DENABLE_SQL=%enable_sql% -DMINIFI_USE_REAL_ODBC_TEST_DRIVER=%real_odbc% ^
-DCMAKE_BUILD_TYPE_INIT=%cmake_build_type% -DCMAKE_BUILD_TYPE=%cmake_build_type% -DWIN32=WIN32 -DENABLE_LIBRDKAFKA=%enable_kafka% ^
-DENABLE_AWS=%enable_aws% -DENABLE_PDH=%enable_pdh% -DENABLE_AZURE=%enable_azure% -DENABLE_SFTP=%enable_sftp% -DENABLE_SPLUNK=%enable_splunk% -DENABLE_GCP=%enable_gcp% ^
-DENABLE_OPENCV=%enable_opencv% -DENABLE_PROMETHEUS=%enable_prometheus% -DENABLE_ELASTICSEARCH=%enable_elastic% -DUSE_SHARED_LIBS=OFF -DENABLE_CONTROLLER=OFF ^
-DENABLE_BUSTACHE=%enable_bustache% -DENABLE_ENCRYPT_CONFIG=%enable_encrypt_config% -DENABLE_LUA_SCRIPTING=%enable_lua_scripting% -DENABLE_SMB=%enable_smb% ^
-DENABLE_MQTT=%enable_mqtt% -DENABLE_OPC=%enable_opc% -DENABLE_OPS=%enable_ops% ^
-DENABLE_PYTHON_SCRIPTING=%enable_python_scripting% -DENABLE_GRAFANA_LOKI=%enable_grafana_loki% ^
-DBUILD_ROCKSDB=ON -DUSE_SYSTEM_UUID=OFF -DENABLE_LIBARCHIVE=ON -DENABLE_WEL=ON -DMINIFI_FAIL_ON_WARNINGS=OFF -DSKIP_TESTS=%skiptests% -DMINIFI_INCLUDE_VC_REDIST_DLLS=%vc_redist% ^
%strict_gsl_checks% -DMINIFI_INCLUDE_UCRT_DLLS=%ucrt% %sccache_arg% %EXTRA_CMAKE_ARGUMENTS% "%scriptdir%" && %buildcmd%
IF %ERRORLEVEL% NEQ 0 EXIT /b %ERRORLEVEL%
if [%cpack%] EQU [ON] (
cpack -C %cmake_build_type%
IF !ERRORLEVEL! NEQ 0 ( popd & exit /b !ERRORLEVEL! )
)
if [%skiptests%] NEQ [ON] (
if [%skiptestrun%] NEQ [ON] (
ctest --timeout 300 --parallel 8 -C %cmake_build_type% --output-on-failure
IF !ERRORLEVEL! NEQ 0 ( popd & exit /b !ERRORLEVEL! )
)
)
popd
goto :eof
:usage
@echo "Usage: %0 <build_dir> options"
exit /B 1