-
Notifications
You must be signed in to change notification settings - Fork 578
/
Build_Binary_x86.bat
755 lines (593 loc) · 29.8 KB
/
Build_Binary_x86.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
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
REM @echo off
REM POSSIBLE OPTIONS:
REM %1%: "x86_64", "x86", "arm", "arm64"
REM %2%: "gpu", build with CUDA
REM %2%: "core", build only the core components
REM %2%: "mini", build only the minimum components (fewer components than "core" option above)
REM %3%: "intel_inf", build with intel compiler and using OpenVino
REM %3%: "intel", build with intel compiler
REM %3%: "inf", build with OpenVino
REM %3%: "WindowsStore10", target UWP
REM %3%: "vs2015", force to build with vs_2015, it may no longer work as of 2020
REM %3%: "commercial", use to enable optimization with targeting 32-bit architecture
REM %4%: "nonfree", build the nonfree module
REM %4%: "openni", build the openni module
REM %4%: "depthai", build the openni module
REM %5%: "doc", this flag indicates if we should build the documentation
REM %6%: "package", this flag indicates if we should build the ".zip" and ".exe" package
REM %7%: "build", if set to "build", the script will also build the target
REM %8%: "nuget", this flag indicates if we should build the nuget package
REM %9%: Use this field for the CUDA_ARCH_BIN_OPTION if you want to specify it manually. e.g. "6.1"
SET BUILD_FOLDER=build_%1%
SET BUILD_TOOLS_FOLDER=C:\Program Files (x86)\Microsoft Visual Studio\2019\BuildTools
IF "%1%"=="x86" GOTO ENV_x86
IF "%1%"=="x86_64" GOTO ENV_x64
IF "%1%"=="arm" GOTO ENV_ARM
IF "%1%"=="arm64" GOTO ENV_ARM64
GOTO ENV_END
:ENV_x86
REM SET BUILD_FOLDER=%BUILD_FOLDER%_x86
ECHO "BUILDING x86 solution in %BUILD_FOLDER%"
IF EXIST "%BUILD_TOOLS_FOLDER%\vc\Auxiliary\Build\vcvars32.bat" SET ENV_SETUP_SCRIPT=%BUILD_TOOLS_FOLDER%\vc\Auxiliary\Build\vcvars32.bat
GOTO ENV_END
:ENV_x64
REM SET BUILD_FOLDER=%BUILD_FOLDER%_x64
ECHO "BUILDING x86_64 solution in %BUILD_FOLDER%"
IF EXIST "%BUILD_TOOLS_FOLDER%\vc\Auxiliary\Build\vcvars64.bat" SET ENV_SETUP_SCRIPT=%BUILD_TOOLS_FOLDER%\vc\Auxiliary\Build\vcvars64.bat
GOTO ENV_END
:ENV_ARM
REM SET BUILD_FOLDER=%BUILD_FOLDER%_ARM
ECHO "BUILDING ARM solution in %BUILD_FOLDER%"
IF EXIST "%BUILD_TOOLS_FOLDER%\vc\Auxiliary\Build\vcvarsamd64_arm.bat" SET ENV_SETUP_SCRIPT=%BUILD_TOOLS_FOLDER%\vc\Auxiliary\Build\vcvarsamd64_arm.bat
SET DEPTHAI_BUILD_FLAG=-DEMGU_CV_WITH_DEPTHAI:BOOL=FALSE
GOTO ENV_END
:ENV_ARM64
REM SET BUILD_FOLDER=%BUILD_FOLDER%_ARM64
ECHO "BUILDING ARM64 solution in %BUILD_FOLDER%"
IF EXIST "%BUILD_TOOLS_FOLDER%\vc\Auxiliary\Build\vcvarsamd64_arm64.bat" SET ENV_SETUP_SCRIPT=%BUILD_TOOLS_FOLDER%\vc\Auxiliary\Build\vcvarsamd64_arm64.bat
SET DEPTHAI_BUILD_FLAG=-DEMGU_CV_WITH_DEPTHAI:BOOL=FALSE
:ENV_END
IF "%ENV_SETUP_SCRIPT%"=="" GOTO ENV_SETUP_END
call "%ENV_SETUP_SCRIPT%"
@echo on
:ENV_SETUP_END
pushd %~p0
cd ..\..
SET ROOT_SRC_FOLDER=%cd%
IF NOT EXIST %BUILD_FOLDER% mkdir %BUILD_FOLDER%
cd %BUILD_FOLDER%
SET NETFX_CORE=""
IF "%3%"=="WindowsPhone81" SET NETFX_CORE="TRUE"
IF "%3%"=="WindowsStore81" SET NETFX_CORE="TRUE"
IF "%3%"=="WindowsStore10" SET NETFX_CORE="TRUE"
SET OS_MODE=
IF "%1%"=="x86_64" SET OS_MODE= Win64
IF "%1%"=="arm" SET OS_MODE= ARM
IF "%1%"=="arm64" SET OS_MODE= ARM64
SET BUILD_ARCH=
IF "%1%"=="x86_64" SET BUILD_ARCH=-A x64
IF "%1%"=="x86" SET BUILD_ARCH=-A Win32
IF "%1%"=="arm" SET BUILD_ARCH=-A ARM
IF "%1%"=="arm64" SET BUILD_ARCH=-A ARM64
SET PROGRAMFILES_DIR_X86=%programfiles(x86)%
if NOT EXIST "%PROGRAMFILES_DIR_X86%" SET PROGRAMFILES_DIR_X86=%programfiles%
SET PROGRAMFILES_DIR=%programfiles%
REM Find CMake
SET CMAKE="cmake.exe"
IF EXIST "%PROGRAMFILES_DIR_X86%\CMake 2.8\bin\cmake.exe" SET CMAKE="%PROGRAMFILES_DIR_X86%\CMake 2.8\bin\cmake.exe"
IF EXIST "%PROGRAMFILES_DIR_X86%\CMake\bin\cmake.exe" SET CMAKE="%PROGRAMFILES_DIR_X86%\CMake\bin\cmake.exe"
IF EXIST "%PROGRAMFILES_DIR%\CMake\bin\cmake.exe" SET CMAKE="%PROGRAMFILES_DIR%\CMake\bin\cmake.exe"
IF EXIST "%PROGRAMW6432%\CMake\bin\cmake.exe" SET CMAKE="%PROGRAMW6432%\CMake\bin\cmake.exe"
IF EXIST "CMakeCache.txt" del CMakeCache.txt
REM Find Visual Studio or Msbuild
SET VS2005="%VS80COMNTOOLS%..\IDE\devenv.com"
SET VS2008="%VS90COMNTOOLS%..\IDE\devenv.com"
SET VS2010="%VS100COMNTOOLS%..\IDE\devenv.com"
SET VS2012="%VS110COMNTOOLS%..\IDE\devenv.com"
SET VS2013="%VS120COMNTOOLS%..\IDE\devenv.com"
SET VS2015="%VS140COMNTOOLS%..\IDE\devenv.com"
FOR /F "tokens=* USEBACKQ" %%F IN (`..\miscellaneous\vswhere.exe -version [15.0^,16.0^) -property installationPath`) DO SET VS2017_DIR=%%F
SET VS2017="%VS2017_DIR%\Common7\IDE\devenv.com"
FOR /F "tokens=* USEBACKQ" %%F IN (`..\miscellaneous\vswhere.exe -version [16.0^,17.0^) -property installationPath`) DO SET VS2019_DIR=%%F
SET VS2019="%VS2019_DIR%\Common7\IDE\devenv.com"
FOR /F "tokens=* USEBACKQ" %%F IN (`..\miscellaneous\vswhere.exe -version [17.0^,18.0^) -property installationPath`) DO SET VS2022_DIR=%%F
SET VS2022="%VS2022_DIR%\Common7\IDE\devenv.com"
FOR /F "tokens=* USEBACKQ" %%F IN (`..\miscellaneous\vswhere.exe -products * -property installationPath`) DO SET VS_BUILDTOOLS=%%F
IF EXIST "%windir%\Microsoft.NET\Framework\v3.5\MSBuild.exe" SET MSBUILD35=%windir%\Microsoft.NET\Framework\v3.5\MSBuild.exe
IF EXIST "%windir%\Microsoft.NET\Framework64\v3.5\MSBuild.exe" SET MSBUILD35=%windir%\Microsoft.NET\Framework64\v3.5\MSBuild.exe
IF EXIST "%windir%\Microsoft.NET\Framework64\v4.0.30319\MSBuild.exe" SET MSBUILD40=%windir%\Microsoft.NET\Framework64\v4.0.30319\MSBuild.exe
IF EXIST "%BUILD_TOOLS_FOLDER%\MSBuild\Current\Bin\MSBuild.exe" SET MSBUILD_BUILDTOOLS=%BUILD_TOOLS_FOLDER%\MSBuild\Current\Bin\MSBuild.exe
IF EXIST "%MSBUILD35%" SET DEVENV="%MSBUILD35%"
IF EXIST "%MSBUILD40%" SET DEVENV="%MSBUILD40%"
IF EXIST "%MSBUILD_BUILDTOOLS%" SET DEVENV="%MSBUILD_BUILDTOOLS%"
IF EXIST %VS2005% SET DEVENV=%VS2005%
IF EXIST %VS2008% SET DEVENV=%VS2008%
IF EXIST %VS2010% SET DEVENV=%VS2010%
IF "%4%"=="openni" GOTO SET_BUILD_TYPE
IF EXIST %VS2012% SET DEVENV=%VS2012%
IF EXIST %VS2013% SET DEVENV=%VS2013%
IF EXIST %VS2015% SET DEVENV=%VS2015%
REM CUDA 8.5 only support VS2015, if we target GPU we will stop checking for newer version of Visual Studio
REM IF "%2%"=="gpu" GOTO SET_BUILD_TYPE
REM For windows phone or store 81 build we should use VS2015
IF "%3%"=="WindowsPhone81" GOTO SET_BUILD_TYPE
REM Only check for VS2017 if there are no other suitable Visual Studio installation
REM We may default to VS2017 once CUDA 9 supports VS2017
REM IF EXIST %DEVENV% GOTO SET_BUILD_TYPE
IF "%3%"=="vs2015" GOTO SET_BUILD_TYPE
IF EXIST %VS2017% SET DEVENV=%VS2017%
REM CUDA 9 only support VS2017, if we target GPU we will stop checking for newer version of Visual Studio
REM Intel compiler is not compatible with VS2019 16.2, if we are compiling with Intel compiler, skip VS2019
REM IF "%3%"=="intel" GOTO SET_BUILD_TYPE
REM IF "%3%"=="intel_inf" GOTO SET_BUILD_TYPE
IF EXIST %VS2019% SET DEVENV=%VS2019%
IF EXIST %VS2022% SET DEVENV=%VS2022%
:SET_BUILD_TYPE
IF %DEVENV%=="%MSBUILD35%" SET BUILD_TYPE=/property:Configuration=Release
IF %DEVENV%=="%MSBUILD40%" SET BUILD_TYPE=/property:Configuration=Release
IF %DEVENV%=="%MSBUILD_BUILDTOOLS%" SET BUILD_TYPE=/property:Configuration=Release
IF %DEVENV%==%VS2005% SET BUILD_TYPE=/Build Release
IF %DEVENV%==%VS2008% SET BUILD_TYPE=/Build Release
IF %DEVENV%==%VS2010% SET BUILD_TYPE=/Build Release
IF %DEVENV%==%VS2012% SET BUILD_TYPE=/Build Release
IF %DEVENV%==%VS2013% SET BUILD_TYPE=/Build Release
IF %DEVENV%==%VS2015% SET BUILD_TYPE=/Build Release
IF %DEVENV%==%VS2017% SET BUILD_TYPE=/Build Release
IF %DEVENV%==%VS2019% SET BUILD_TYPE=/Build Release
IF %DEVENV%==%VS2022% SET BUILD_TYPE=/Build Release
IF %DEVENV%=="%MSBUILD35%" SET CMAKE_CONF="Visual Studio 12 2005%OS_MODE%"
IF %DEVENV%=="%MSBUILD40%" SET CMAKE_CONF="Visual Studio 16" %BUILD_ARCH%
IF %DEVENV%=="%MSBUILD_BUILDTOOLS%" SET CMAKE_CONF="Visual Studio 16" %BUILD_ARCH%
IF %DEVENV%==%VS2005% SET CMAKE_CONF="Visual Studio 8 2005%OS_MODE%"
IF %DEVENV%==%VS2008% SET CMAKE_CONF="Visual Studio 9 2008%OS_MODE%"
IF %DEVENV%==%VS2010% SET CMAKE_CONF="Visual Studio 10%OS_MODE%"
IF %DEVENV%==%VS2012% SET CMAKE_CONF="Visual Studio 11%OS_MODE%"
IF %DEVENV%==%VS2013% SET CMAKE_CONF="Visual Studio 12%OS_MODE%"
IF %DEVENV%==%VS2015% SET CMAKE_CONF="Visual Studio 14%OS_MODE%"
IF %DEVENV%==%VS2017% SET CMAKE_CONF="Visual Studio 15%OS_MODE%"
IF %DEVENV%==%VS2019% SET CMAKE_CONF="Visual Studio 16" %BUILD_ARCH%
IF %DEVENV%==%VS2022% SET CMAKE_CONF="Visual Studio 17" %BUILD_ARCH%
SET INSTALL_FOLDER=%cd%\install
SET HDF5_DIR=%INSTALL_FOLDER:\=/%/cmake/hdf5
SET OPENVINO_INSTALL_DIR=%INSTALL_FOLDER:\=/%/runtime/cmake
SET TBB_INSTALL_DIR=%ROOT_SRC_FOLDER:\=/%/3rdParty/openvino/temp/tbb/cmake
SET VTK_INSTALL_DIR=%INSTALL_FOLDER:\=/%/lib/cmake/vtk-9.2
SET GENERAL_CMAKE_CONFIG_FLAGS=%GENERAL_CMAKE_CONFIG_FLAGS% -DCMAKE_BUILD_TYPE:STRING="Release" -DCMAKE_INSTALL_PREFIX:STRING="%INSTALL_FOLDER:\=/%" -DCMAKE_FIND_ROOT_PATH:STRING="%INSTALL_FOLDER:\=/%;%OPENVINO_INSTALL_DIR%;%TBB_INSTALL_DIR%;%VTK_INSTALL_DIR%"
REM -DCMAKE_CXX_STANDARD:STRING=17
IF NOT "%3%"=="WindowsStore10" GOTO END_CONFIG_WINDOWS_STORE_10_GENERAL_CMAKE_CONFIG_FLAGS
SET GENERAL_CMAKE_CONFIG_FLAGS=%GENERAL_CMAKE_CONFIG_FLAGS% -DCMAKE_SYSTEM_NAME:String="WindowsStore"
IF %DEVENV%==%VS2017% SET GENERAL_CMAKE_CONFIG_FLAGS=%GENERAL_CMAKE_CONFIG_FLAGS% -DCMAKE_SYSTEM_VERSION:String="10.0.14393.0"
IF %DEVENV%==%VS2019% SET GENERAL_CMAKE_CONFIG_FLAGS=%GENERAL_CMAKE_CONFIG_FLAGS% -DCMAKE_SYSTEM_VERSION:String="10.0.18362.0"
IF %DEVENV%==%VS2022% SET GENERAL_CMAKE_CONFIG_FLAGS=%GENERAL_CMAKE_CONFIG_FLAGS% -DCMAKE_SYSTEM_VERSION:String="10.0.18362.0"
IF %DEVENV%=="%MSBUILD_BUILDTOOLS%" SET GENERAL_CMAKE_CONFIG_FLAGS=%GENERAL_CMAKE_CONFIG_FLAGS% -DCMAKE_SYSTEM_VERSION:String="10.0.18362.0"
:END_CONFIG_WINDOWS_STORE_10_GENERAL_CMAKE_CONFIG_FLAGS
REM Setup common flags
SET EMGU_CV_CMAKE_CONFIG_FLAGS= -G %CMAKE_CONF% %GENERAL_CMAKE_CONFIG_FLAGS% ^
-DBUILD_DOCS:BOOL=FALSE ^
-DBUILD_TESTS:BOOL=FALSE ^
-DBUILD_opencv_apps:BOOL=FALSE ^
-DBUILD_opencv_java:BOOL=FALSE ^
-DBUILD_opencv_python2:BOOL=FALSE ^
-DBUILD_opencv_python3:BOOL=FALSE ^
-DBUILD_opencv_python_bindings_generator:BOOL=FALSE ^
-DBUILD_opencv_python_tests:BOOL=FALSE ^
-DBUILD_opencv_ts:BOOL=FALSE ^
-DBUILD_WITH_DEBUG_INFO:BOOL=FALSE ^
-DBUILD_WITH_STATIC_CRT:BOOL=FALSE ^
-DWITH_OPENGL:BOOL=FALSE ^
-DCMAKE_DISABLE_FIND_PACKAGE_PNG:BOOL=TRUE ^
-DCMAKE_IGNORE_PATH:STRING="C:/python-virt/python37/Library;C:/python-virt/python37/Library/include;C:/python-virt/python37/Library/lib" ^
-DVIDEOIO_PLUGIN_LIST:STRING="ffmpeg"
REM -DCMAKE_DISABLE_FIND_PACKAGE_ZLIB:BOOL=TRUE ^
REM -DWITH_VULKAN:BOOL=TRUE ^
REM -DCMAKE_DISABLE_FIND_PACKAGE_BZip2:BOOL=TRUE ^
REM For Freetype, removed the "d" postfix for debug mode.
REM SET EMGU_CV_CMAKE_CONFIG_FLAGS=%EMGU_CV_CMAKE_CONFIG_FLAGS% ^
REM -DDISABLE_FORCE_DEBUG_POSTFIX:BOOL=TRUE
REM Setup the contrib modules
IF "%2%"=="mini" GOTO CONFIG_MINI
IF "%2%"=="core" GOTO CONFIG_CORE
:CONFIG_FULL
cd ..
REM Don't build freetype or HDF for ARM.
IF "%1%"=="arm" GOTO END_BUILD_HDF
IF "%1%"=="arm64" GOTO END_BUILD_HDF
:BUILD_FREETYPE
cd 3rdParty
cd freetype2
IF NOT EXIST %BUILD_FOLDER% mkdir %BUILD_FOLDER%
cd %BUILD_FOLDER%
%CMAKE% -G %CMAKE_CONF% %GENERAL_CMAKE_CONFIG_FLAGS% ^
-DCMAKE_DISABLE_FIND_PACKAGE_ZLIB:BOOL=TRUE ^
-DCMAKE_DISABLE_FIND_PACKAGE_BZip2:BOOL=TRUE ^
-DCMAKE_DISABLE_FIND_PACKAGE_PNG:BOOL=TRUE ^
-DCMAKE_DISABLE_FIND_PACKAGE_HarfBuzz:BOOL=TRUE ^
..
%CMAKE% --build . --config Release --target INSTALL
cd ..
cd ..
cd ..
SET FREETYPE_DIR=%cd%\3rdParty\freetype2\%BUILD_FOLDER%
REM SET EMGU_CV_CMAKE_CONFIG_FLAGS=%EMGU_CV_CMAKE_CONFIG_FLAGS% -DFreetype_DIR:STRING=%FREETYPE_DIR%
:BUILD_HARBUZZ
cd harfbuzz
IF NOT EXIST %BUILD_FOLDER% mkdir %BUILD_FOLDER%
cd %BUILD_FOLDER%
%CMAKE% -G %CMAKE_CONF% %GENERAL_CMAKE_CONFIG_FLAGS% -DHB_HAVE_FREETYPE:BOOL=TRUE ..
%CMAKE% --build . --config Release --target INSTALL
cd ..
cd ..
REM SET HARFBUZZ_DIR=%cd%\harfbuzz\%BUILD_FOLDER%
REM SET EMGU_CV_CMAKE_CONFIG_FLAGS=%EMGU_CV_CMAKE_CONFIG_FLAGS% -DHarfbuzz_DIR:STRING=%HARFBUZZ_DIR%
IF "%3%"=="WindowsStore10" GOTO END_BUILD_HDF
REM IF NOT "%3%"=="WindowsStore10" GOTO BUILD_HDF
REM SET HDF5_WIN_STORE10_FLAGS=-DH5_LDOUBLE_TO_LONG_SPECIAL_RUN:STRING="FAILED_TO_RUN" -DH5_LDOUBLE_TO_LONG_SPECIAL_RUN__TRYRUN_OUTPUT:STRING=""
REM SET HDF5_WIN_STORE10_FLAGS=%HDF5_WIN_STORE10_FLAGS% -DH5_LONG_TO_LDOUBLE_SPECIAL_RUN:STRING="FAILED_TO_RUN" -DH5_LONG_TO_LDOUBLE_SPECIAL_RUN__TRYRUN_OUTPUT:STRING=""
REM SET HDF5_WIN_STORE10_FLAGS=%HDF5_WIN_STORE10_FLAGS% -DH5_LDOUBLE_TO_LLONG_ACCURATE_RUN:STRING="FAILED_TO_RUN" -DH5_LDOUBLE_TO_LLONG_ACCURATE_RUN__TRYRUN_OUTPUT:STRING=""
REM SET HDF5_WIN_STORE10_FLAGS=%HDF5_WIN_STORE10_FLAGS% -DH5_LLONG_TO_LDOUBLE_CORRECT_RUN:STRING="FAILED_TO_RUN" -DH5_LLONG_TO_LDOUBLE_CORRECT_RUN__TRYRUN_OUTPUT:STRING=""
REM SET HDF5_WIN_STORE10_FLAGS=%HDF5_WIN_STORE10_FLAGS% -DH5_NO_ALIGNMENT_RESTRICTIONS_RUN:STRING="FAILED_TO_RUN" -DH5_NO_ALIGNMENT_RESTRICTIONS_RUN__TRYRUN_OUTPUT:STRING=""
:BUILD_HDF
cd hdf5
IF NOT EXIST %BUILD_FOLDER% mkdir %BUILD_FOLDER%
cd %BUILD_FOLDER%
%CMAKE% -G %CMAKE_CONF% %GENERAL_CMAKE_CONFIG_FLAGS% -DBUILD_SHARED_LIBS:BOOL=FALSE -DBUILD_TESTING:BOOL=FALSE -DHDF5_BUILD_EXAMPLES:BOOL=FALSE -DHDF5_BUILD_TOOLS:BOOL=FALSE ..
%CMAKE% --build . --config Release --target INSTALL
cd ..
cd ..
SET HDF5_DIR=%BUILD_FOLDER%\install\cmake
:END_BUILD_HDF
cd %BUILD_FOLDER%
SET OPENCV_EXTRA_MODULES_DIR=%cd%\..\opencv_contrib\modules
SET EMGU_CV_CMAKE_CONFIG_FLAGS=%EMGU_CV_CMAKE_CONFIG_FLAGS% -DOPENCV_EXTRA_MODULES_PATH:String="%OPENCV_EXTRA_MODULES_DIR:\=/%"
SET EMGU_CV_CMAKE_CONFIG_FLAGS=%EMGU_CV_CMAKE_CONFIG_FLAGS% -DEMGU_CV_WITH_TESSERACT:BOOL=TRUE
IF %NETFX_CORE%=="TRUE" GOTO END_BUILD_VTK
IF "%1%"=="arm" GOTO END_BUILD_VTK
IF "%1%"=="arm64" GOTO END_BUILD_VTK
IF "%3%"=="inf" GOTO BUILD_VTK
IF "%3%"=="intel_inf" GOTO BUILD_VTK
GOTO END_BUILD_VTK
:BUILD_VTK
cd ..
cd vtk
IF NOT EXIST %BUILD_FOLDER% mkdir %BUILD_FOLDER%
cd %BUILD_FOLDER%
SET VTK_BUILD_DIR=%cd%
%CMAKE% -G %CMAKE_CONF% %GENERAL_CMAKE_CONFIG_FLAGS% -DBUILD_TESTING:BOOL=FALSE -DBUILD_SHARED_LIBS:BOOL=TRUE -DVTK_MODULE_ENABLE_VTK_RenderingContext2D:STRING="YES" -DVTK_MODULE_ENABLE_VTK_IOImage:STRING="YES" -DVTK_MODULE_ENABLE_VTK_IOGeometry:STRING="YES" -DVTK_MODULE_ENABLE_VTK_IOExport:STRING="YES" -DVTK_MODULE_ENABLE_VTK_RenderingFreeType:STRING="YES" -DVTK_MODULE_ENABLE_VTK_png:STRING="YES" ..
%CMAKE% --build . --config Release --target INSTALL
cd ..
cd ..
cd %BUILD_FOLDER%
SET EMGU_CV_CMAKE_CONFIG_FLAGS=%EMGU_CV_CMAKE_CONFIG_FLAGS% -DVTK_DIR:String="%VTK_BUILD_DIR:\=/%"
REM SET EMGU_CV_CMAKE_CONFIG_FLAGS=%EMGU_CV_CMAKE_CONFIG_FLAGS% -DDEPTHAI_OPENCV_SUPPORT:BOOL=TRUE
:END_BUILD_VTK
GOTO END_CONFIG_CORE
:CONFIG_MINI
SET EMGU_CV_CMAKE_CONFIG_FLAGS=%EMGU_CV_CMAKE_CONFIG_FLAGS% -DBUILD_opencv_3d:BOOL=FALSE -DBUILD_opencv_calib:BOOL=FALSE -DBUILD_opencv_dnn:BOOL=FALSE -DBUILD_opencv_ml:BOOL=FALSE -DBUILD_opencv_photo:BOOL=FALSE -DBUILD_opencv_features2d:BOOL=FALSE -DBUILD_opencv_gapi:BOOL=FALSE -DBUILD_opencv_flann:BOOL=FALSE -DBUILD_opencv_video:BOOL=FALSE
:END_CONFIG_MINI
:CONFIG_CORE
SET EMGU_CV_CMAKE_CONFIG_FLAGS=%EMGU_CV_CMAKE_CONFIG_FLAGS% -DEMGU_CV_WITH_TESSERACT:BOOL=FALSE -DEMGU_CV_WITH_FREETYPE:BOOL=FALSE
SET DEPTHAI_BUILD_FLAG=-DEMGU_CV_WITH_DEPTHAI:BOOL=FALSE
:END_CONFIG_CORE
SET EMGU_CV_CMAKE_CONFIG_FLAGS=%EMGU_CV_CMAKE_CONFIG_FLAGS% %DEPTHAI_BUILD_FLAG%
SET BUILD_TYPE=OPEN_SOURCE
REM GPU performance test on windows cause compilation error, skipping it now
IF "%2%"=="gpu" GOTO NO_PERFORMANCE_TEST
REM Intel compiler performance test on windows cause compilation error, skipping it now
IF "%3%"=="intel" GOTO NO_PERFORMANCE_TEST
IF "%3%"=="intel_inf" GOTO NO_PERFORMANCE_TEST
REM NETFX_CORE performance test cause compilation issue, skipping it now
IF %NETFX_CORE%=="" GOTO WITH_PERFORMANCE_TEST
:NO_PERFORMANCE_TEST
REM BUILD WITHOUT PERFORMANCE TEST
SET EMGU_CV_CMAKE_CONFIG_FLAGS=%EMGU_CV_CMAKE_CONFIG_FLAGS% ^
-DBUILD_opencv_ts:BOOL=OFF ^
-DBUILD_PERF_TESTS:BOOL=OFF
GOTO END_PERFORMANCE_TEST
:WITH_PERFORMANCE_TEST
REM BUDILD WITH PERFORMANCE TEST
SET EMGU_CV_CMAKE_CONFIG_FLAGS=%EMGU_CV_CMAKE_CONFIG_FLAGS% ^
-DBUILD_opencv_ts:BOOL=ON ^
-DBUILD_PERF_TESTS:BOOL=ON
:END_PERFORMANCE_TEST
IF NOT "%4%"=="openni" GOTO END_OF_OPENNI
:WITH_OPENNI
SET OPENNI_LIB_DIR=%OPEN_NI_LIB%
IF "%OS_MODE%"==" Win64" SET OPENNI_LIB_DIR=%OPEN_NI_LIB64%
SET OPENNI_PS_BIN_DIR=%OPENNI_LIB_DIR%\..\..\PrimeSense\Sensor\Bin
IF "%OS_MODE%"==" Win64" SET OPENNI_PS_BIN_DIR=%OPENNI_LIB_DIR%\..\..\PrimeSense\Sensor\Bin64
IF EXIST "%OPENNI_LIB_DIR%" SET EMGU_CV_CMAKE_CONFIG_FLAGS=%EMGU_CV_CMAKE_CONFIG_FLAGS% ^
-DWITH_OPENNI:BOOL=TRUE ^
-DOPENNI_INCLUDE_DIR:String="%OPEN_NI_INCLUDE:\=/%" ^
-DOPENNI_LIB_DIR:String="%OPENNI_LIB_DIR:\=/%" ^
-DOPENNI_PRIME_SENSOR_MODULE_BIN_DIR:String="%OPENNI_PS_BIN_DIR:\=/%"
:END_OF_OPENNI
IF NOT "%4%"=="nonfree" GOTO END_OF_NONFREE
:WITH_NONFREE
SET EMGU_CV_CMAKE_CONFIG_FLAGS=%EMGU_CV_CMAKE_CONFIG_FLAGS% ^
-DOPENCV_ENABLE_NONFREE:BOOL=TRUE
:END_OF_NONFREE
IF NOT "%4%"=="depthai" GOTO END_OF_DEPTHAI
:WITH_DEPTHAI
SET EMGU_CV_CMAKE_CONFIG_FLAGS=%EMGU_CV_CMAKE_CONFIG_FLAGS% ^
-DEMGU_CV_WITH_DEPTHAI:BOOL=TRUE
:END_OF_DEPTHAI
IF "%5%"=="doc" ^
SET EMGU_CV_CMAKE_CONFIG_FLAGS=%EMGU_CV_CMAKE_CONFIG_FLAGS% -DEMGU_CV_DOCUMENTATION_BUILD:BOOL=TRUE
REM IF "%5%"=="htmldoc" ^
REM SET EMGU_CV_CMAKE_CONFIG_FLAGS=%EMGU_CV_CMAKE_CONFIG_FLAGS% -DEMGU_CV_DOCUMENTATION_BUILD:BOOL=TRUE
cd ..
SET EMGU_CV_CMAKE_CONFIG_FLAGS=%EMGU_CV_CMAKE_CONFIG_FLAGS% -DCMAKE_INSTALL_PREFIX:STRING="%INSTALL_FOLDER:\=/%"
cd eigen
IF NOT EXIST %BUILD_FOLDER% mkdir %BUILD_FOLDER%
cd %BUILD_FOLDER%
%CMAKE% -G %CMAKE_CONF% %GENERAL_CMAKE_CONFIG_FLAGS% ..
%CMAKE% --build . --config Release --target INSTALL
SET EIGEN_DIR=%cd%
cd ..
cd ..
REM SET EMGU_CV_CMAKE_CONFIG_FLAGS=%EMGU_CV_CMAKE_CONFIG_FLAGS% -DEigen3_DIR:STRING=%EIGEN_DIR%
cd %BUILD_FOLDER%
IF NOT "%2%"=="gpu" GOTO WITHOUT_GPU
REM IF %DEVENV%==%VS2012% GOTO END_OF_GPU
REM IF %DEVENV%==%VS2013% GOTO END_OF_GPU
:WITH_GPU
REM SET CUDA_HOST_COMPILER=%DEVENV%
IF %DEVENV%==%VS2008% SET CUDA_HOST_COMPILER=%VS90COMNTOOLS%..\..\VC\bin\cl.exe
IF %DEVENV%==%VS2010% SET CUDA_HOST_COMPILER=%VS100COMNTOOLS%..\..\VC\bin\cl.exe
IF %DEVENV%==%VS2012% SET CUDA_HOST_COMPILER=%VS110COMNTOOLS%..\..\VC\bin\cl.exe
IF %DEVENV%==%VS2013% SET CUDA_HOST_COMPILER=%VS120COMNTOOLS%..\..\VC\bin\cl.exe
IF %DEVENV%==%VS2015% SET CUDA_HOST_COMPILER=%VS140COMNTOOLS%..\..\VC\bin\cl.exe
for /d %%i in ( "%VS2017_DIR%\VC\Tools\MSVC\*" ) do SET VS2017_CUDA_HOST_COMPILER=%%i\bin\Hostx64\x64\cl.exe
IF %DEVENV%==%VS2017% SET CUDA_HOST_COMPILER=%VS2017_CUDA_HOST_COMPILER%
for /d %%i in ( "%VS2019_DIR%\VC\Tools\MSVC\*" ) do SET VS2019_CUDA_HOST_COMPILER=%%i\bin\Hostx64\x64\cl.exe
IF %DEVENV%==%VS2019% SET CUDA_HOST_COMPILER=%VS2019_CUDA_HOST_COMPILER%
for /d %%i in ( "%VS2022_DIR%\VC\Tools\MSVC\*" ) do SET VS2022_CUDA_HOST_COMPILER=%%i\bin\Hostx64\x64\cl.exe
IF %DEVENV%==%VS2022% SET CUDA_HOST_COMPILER=%VS2022_CUDA_HOST_COMPILER%
for /d %%i in ( "%BUILD_TOOLS_FOLDER%\VC\Tools\MSVC\14.2*" ) do SET BUILDTOOLS_CUDA_HOST_COMPILER=%%i\bin\Hostx64\x64\cl.exe
IF %DEVENV%=="%MSBUILD_BUILDTOOLS%" SET CUDA_HOST_COMPILER=%BUILDTOOLS_CUDA_HOST_COMPILER%
REM Find cuda. Use latest Cuda release for 64 bit and Cuda 6.5 for 32bit
REM We cannot use latest Cuda release for 32 bit because the 32bit version of npp has been depreciated from Cuda 7
IF "%OS_MODE%"==" Win64" GOTO WITH_GPU_64
:WITH_GPU_32
SET CUDA_SDK_DIR=%CUDA_PATH_V6_5%
SET CUDA_64_MODE=-DCUDA_64_BIT_DEVICE_CODE:BOOL=FALSE
GOTO END_GPU_ARCH
:WITH_GPU_64
REM If you are using CUDA 9 with Open CV 3.3 release you will need to create an nppi.lib file with instructions from here:
REM https://stackoverflow.com/questions/45525377/installing-opencv-3-3-0-with-contrib-modules-using-cmake-cuda-9-0-rc-and-visual
SET CUDA_SDK_DIR=%CUDA_PATH%
IF NOT EXIST "%CUDA_SDK_DIR%" SET CUDA_SDK_DIR=%CUDA_PATH_V12_0%
IF NOT EXIST "%CUDA_SDK_DIR%" SET CUDA_SDK_DIR=%CUDA_PATH_V11_8%
IF NOT EXIST "%CUDA_SDK_DIR%" SET CUDA_SDK_DIR=%CUDA_PATH_V11_6%
IF NOT EXIST "%CUDA_SDK_DIR%" SET CUDA_SDK_DIR=%CUDA_PATH_V11_3%
IF NOT EXIST "%CUDA_SDK_DIR%" SET CUDA_SDK_DIR=%CUDA_PATH_V11_1%
IF NOT EXIST "%CUDA_SDK_DIR%" SET CUDA_SDK_DIR=%CUDA_PATH_V11_0%
IF NOT EXIST "%CUDA_SDK_DIR%" SET CUDA_SDK_DIR=%CUDA_PATH_V10_1%
IF NOT EXIST "%CUDA_SDK_DIR%" SET CUDA_SDK_DIR=%CUDA_PATH_V10_0%
IF NOT EXIST "%CUDA_SDK_DIR%" SET CUDA_SDK_DIR=%CUDA_PATH_V9_1%
IF NOT EXIST "%CUDA_SDK_DIR%" SET CUDA_SDK_DIR=%CUDA_PATH_V9_0%
IF NOT EXIST "%CUDA_SDK_DIR%" SET CUDA_SDK_DIR=%CUDA_PATH_V8_0%
IF NOT EXIST "%CUDA_SDK_DIR%" SET CUDA_SDK_DIR=%CUDA_PATH_V7_5%
SET CUDA_64_MODE=-DCUDA_64_BIT_DEVICE_CODE:BOOL=TRUE
SET CUDA_NVCUVID_HEADER="%CUDA_SDK_DIR%\include\nvcuvid.h"
IF EXIST %CUDA_NVCUVID_HEADER% SET EMGU_CV_CMAKE_CONFIG_FLAGS=%EMGU_CV_CMAKE_CONFIG_FLAGS% ^
-DWITH_NVCUVID:BOOL=TRUE
REM -DCUDA_nvcuvenc_LIBRARY:String=%CUDA_NVCUVENC_DIR:\=/% ^
:END_GPU_ARCH
REM IF "%CUDA_SDK_DIR%"=="%CUDA_PATH_V9_1%" IF %DEVENV%==%VS2017% GOTO START_FIND_CL
REM IF "%CUDA_SDK_DIR%"=="%CUDA_PATH_V9_0%" IF %DEVENV%==%VS2017% GOTO START_FIND_CL
REM GOTO END_FIND_CL
REM :START_FIND_CL
REM SET MSVC_14_11=%VS2017_DIR%\VC\Tools\MSVC\14.11.25503\bin\Hostx64\x64\cl.exe
REM SET MSVC_14_12=%VS2017_DIR%\VC\Tools\MSVC\14.14.12.25827\bin\Hostx64\x64\cl.exe
REM CUDA 9.0 or 9.1 is not compatible with MSVC_14_12 in VS2017, forcing it to use 14.11
REM IF EXIST "%MSVC_14_11%" SET CUDA_HOST_COMPILER=%MSVC_14_11%
REM pushd "%VS2017_DIR%\VC\Auxiliary\Build\"
REM call vcvars64.bat -vcvars_ver=14.11
REM popd
REM SET EMGU_CV_CMAKE_CONFIG_FLAGS=%EMGU_CV_CMAKE_CONFIG_FLAGS% -DCUDA_HOST_COMPILER:String="%CUDA_HOST_COMPILER%"
SET EMGU_CV_CMAKE_CONFIG_FLAGS=%EMGU_CV_CMAKE_CONFIG_FLAGS% -DCUDA_HOST_COMPILER:String="%CUDA_HOST_COMPILER:\=/%"
REM :END_FIND_CL
IF NOT "%9%"=="" GOTO GPU_ARCH_BIN_SPECIFIED
SET CUDA_ARCH_BIN_OPTION=""
IF EXIST "%CUDA_SDK_DIR%" SET CUDA_ARCH_BIN_OPTION="5.2 6.1 7.5"
IF "%CUDA_SDK_DIR%" == "%CUDA_PATH_V8_0%" SET CUDA_ARCH_BIN_OPTION="6.0 6.1"
IF "%CUDA_SDK_DIR%" == "%CUDA_PATH_V9_0%" SET CUDA_ARCH_BIN_OPTION="6.0 6.1 7.0"
IF "%CUDA_SDK_DIR%" == "%CUDA_PATH_V9_1%" SET CUDA_ARCH_BIN_OPTION="6.0 6.1 7.0"
IF "%CUDA_SDK_DIR%" == "%CUDA_PATH_V10_0%" SET CUDA_ARCH_BIN_OPTION="6.0 6.1 7.0 7.5"
IF "%CUDA_SDK_DIR%" == "%CUDA_PATH_V10_1%" SET CUDA_ARCH_BIN_OPTION="6.0 6.1 7.0 7.5"
IF "%CUDA_SDK_DIR%" == "%CUDA_PATH_V11_0%" SET CUDA_ARCH_BIN_OPTION="6.0 6.1 7.0 7.5 8.0"
IF "%CUDA_SDK_DIR%" == "%CUDA_PATH_V11_1%" SET CUDA_ARCH_BIN_OPTION="5.2 6.0 6.1 7.0 7.5 8.0 8.6"
IF "%CUDA_SDK_DIR%" == "%CUDA_PATH_V11_2%" SET CUDA_ARCH_BIN_OPTION="5.2 6.0 6.1 7.0 7.5 8.0 8.6"
IF "%CUDA_SDK_DIR%" == "%CUDA_PATH_V11_3%" SET CUDA_ARCH_BIN_OPTION="5.2 6.0 6.1 7.0 7.5 8.0 8.6"
IF "%CUDA_SDK_DIR%" == "%CUDA_PATH_V11_6%" SET CUDA_ARCH_BIN_OPTION="5.2 6.0 6.1 7.0 7.5 8.0 8.6"
IF "%CUDA_SDK_DIR%" == "%CUDA_PATH_V11_8%" SET CUDA_ARCH_BIN_OPTION="5.2 6.0 6.1 7.0 7.5 8.0 8.6 8.9 9.0"
IF "%CUDA_SDK_DIR%" == "%CUDA_PATH_V12_0%" SET CUDA_ARCH_BIN_OPTION="5.2 6.0 6.1 7.0 7.5 8.0 8.6 8.9 9.0"
IF "%CUDA_SDK_DIR%" == "%CUDA_PATH_V12_6%" SET CUDA_ARCH_BIN_OPTION="5.2 6.0 6.1 7.0 7.5 8.0 8.6 8.9 9.0"
GOTO END_GPU_ARCH_BIN
:GPU_ARCH_BIN_SPECIFIED
SET CUDA_ARCH_BIN_OPTION="%9%"
:END_GPU_ARCH_BIN
IF EXIST "%CUDA_SDK_DIR%" SET EMGU_CV_CMAKE_CONFIG_FLAGS=%EMGU_CV_CMAKE_CONFIG_FLAGS% ^
%CUDA_64_MODE% ^
-DWITH_CUDA:BOOL=TRUE ^
-DCUDA_VERBOSE_BUILD:BOOL=TRUE ^
-DCUDA_TOOLKIT_ROOT_DIR:String="%CUDA_SDK_DIR:\=/%" ^
-DCUDA_SDK_ROOT_DIR:String="%CUDA_SDK_DIR:\=/%" ^
-DWITH_CUBLAS:BOOL=TRUE ^
-DBUILD_SHARED_LIBS:BOOL=TRUE ^
-DOPENCV_SKIP_DLLMAIN_GENERATION=ON ^
-DCUDA_ARCH_BIN:STRING=%CUDA_ARCH_BIN_OPTION% ^
-DBUILD_opencv_world:BOOL=TRUE
GOTO END_OF_GPU
:WITHOUT_GPU
SET EMGU_CV_CMAKE_CONFIG_FLAGS=%EMGU_CV_CMAKE_CONFIG_FLAGS% ^
-DWITH_CUDA:BOOL=FALSE ^
-DBUILD_SHARED_LIBS:BOOL=FALSE
:END_OF_GPU
IF "%3%"=="inf" GOTO WITH_OPENVINO
IF "%3%"=="intel_inf" GOTO WITH_OPENVINO
GOTO WITHOUT_OPENVINO
:WITH_OPENVINO
cd ..
cd 3rdParty
cd openvino
IF NOT EXIST %BUILD_FOLDER% mkdir %BUILD_FOLDER%
cd %BUILD_FOLDER%
%CMAKE% -G %CMAKE_CONF% %GENERAL_CMAKE_CONFIG_FLAGS% ..
REM -DCMAKE_CXX_FLAGS:STRING="-D_SILENCE_ALL_CXX17_DEPRECATION_WARNINGS" -DCMAKE_C_FLAGS:STRING="-D_SILENCE_ALL_CXX17_DEPRECATION_WARNINGS"
%CMAKE% --build . --config Release --target INSTALL
cd ..
cd ..
cd ..
cd %BUILD_FOLDER%
REM SET OPENVINO_DIR=
REM IF EXIST "%PROGRAMFILES_DIR_X86%\Intel\openvino" SET OPENVINO_DIR=%PROGRAMFILES_DIR_X86%\Intel\openvino
REM IF EXIST "%PROGRAMFILES_DIR_X86%\Intel\openvino_2021" SET OPENVINO_DIR=%PROGRAMFILES_DIR_X86%\Intel\openvino_2021
REM IF NOT EXIST "%OPENVINO_DIR%" GOTO WITHOUT_OPENVINO
REM call "%OPENVINO_DIR%\bin\setupvars.bat"
@echo on
SET EMGU_CV_CMAKE_CONFIG_FLAGS=%EMGU_CV_CMAKE_CONFIG_FLAGS% ^
-DWITH_OPENVINO:BOOL=TRUE ^
-DOPENCV_DNN_OPENVINO:BOOL=TRUE ^
-DDNN_PLUGIN_LIST:STRING=all ^
-DOpenVINO_DIR:STRING=%OPENVINO_INSTALL_DIR% ^
-Dngraph_DIR:STRING=%OPENVINO_INSTALL_DIR% ^
-DTBB_DIR:STRING=%TBB_INSTALL_DIR% ^
-DENABLE_CXX11:BOOL=TRUE
REM -DOpenVINO_DIR:STRING="%OPENVINO_DIR:\=/%"
SET BUILD_TYPE=COMMERCIAL
GOTO END_OF_OPENVINO
:WITHOUT_OPENVINO
SET EMGU_CV_CMAKE_CONFIG_FLAGS=%EMGU_CV_CMAKE_CONFIG_FLAGS% -DWITH_OPENVINO:BOOL=FALSE
:END_OF_OPENVINO
IF "%3%"=="intel" GOTO INTEL_COMPILER
IF "%3%"=="intel_inf" GOTO INTEL_COMPILER
:NOT_INTEL_COMPILER
IF "%3%"=="commercial" SET BUILD_TYPE=COMMERCIAL
SET EMGU_CV_CMAKE_CONFIG_FLAGS=%EMGU_CV_CMAKE_CONFIG_FLAGS% -DWITH_LAPACK:BOOL=FALSE
GOTO VISUAL_STUDIO
:INTEL_COMPILER
REM Find Intel Compiler
SET INTEL_COMPILER_DIR=%ICPP_COMPILER20%
SET INTEL_DIR=%INTEL_COMPILER_DIR%bin
SET INTEL_ENV=%INTEL_DIR%\iclvars.bat
SET INTEL_ICL=%INTEL_DIR%\ia32\icl.exe
IF "%OS_MODE%"==" Win64" SET INTEL_ICL=%INTEL_DIR%\intel64\icl.exe
SET INTEL_TBB=%INTEL_COMPILER_DIR%tbb\include
REM SET INTEL_MKL_ROOT=%INTEL_COMPILER_DIR%mkl
SET INTEL_ARCH=ia32
IF "%OS_MODE%"==" Win64" SET INTEL_ARCH=intel64
SET INTEL_DEV_ENV=""
IF %DEVENV%==%VS2012% SET INTEL_DEV_ENV=vs2012
IF %DEVENV%==%VS2013% SET INTEL_DEV_ENV=vs2013
IF %DEVENV%==%VS2015% SET INTEL_DEV_ENV=vs2015
IF %DEVENV%==%VS2017% SET INTEL_DEV_ENV=vs2017
IF %DEVENV%==%VS2019% SET INTEL_DEV_ENV=vs2019
IF %DEVENV%==%VS2022% SET INTEL_DEV_ENV=vs2022
call "%INTEL_COMPILER_DIR%tbb\bin\tbbvars.bat" %INTEL_ARCH% %INTEL_DEV_ENV%
REM call "%INTEL_COMPILER_DIR%mkl\bin\mklvars.bat" %INTEL_ARCH% %INTEL_DEV_ENV%
REM initiate the compiler enviroment
@echo on
IF EXIST "%INTEL_DIR%" SET BUILD_TYPE=COMMERCIAL
IF EXIST "%INTEL_DIR%" SET EMGU_CV_CMAKE_CONFIG_FLAGS=%EMGU_CV_CMAKE_CONFIG_FLAGS% ^
-DWITH_TBB:BOOL=TRUE ^
-DMKL_WITH_TBB:BOOL=TRUE ^
-DTBB_INCLUDE_DIR:String="%INTEL_TBB:\=/%" ^
-DCV_ICC:BOOL=TRUE
REM -DMKL_ROOT_DIR:String="%INTEL_MKL_ROOT:\=/%"
REM IF NOT "%2%"=="gpu" GOTO END_OF_INTEL_GPU
REM SET CUDA_HOST_COMPILER=%VS110COMNTOOLS%..\..\VC\bin
REM IF "%OS_MODE%"==" Win64" SET CUDA_HOST_COMPILER=%CUDA_HOST_COMPILER%\amd64
REM IF EXIST %VS2012% SET EMGU_CV_CMAKE_CONFIG_FLAGS=-DCUDA_HOST_COMPILER:String="%CUDA_HOST_COMPILER%" %EMGU_CV_CMAKE_CONFIG_FLAGS%
REM IF "%OS_MODE%"==" Win64" SET EMGU_CV_CMAKE_CONFIG_FLAGS=-DCUDA_64_BIT_DEVICE_CODE:BOOL=ON %EMGU_CV_CMAKE_CONFIG_FLAGS%
REM :END_OF_INTEL_GPU
SET EMGU_CV_CMAKE_CONFIG_FLAGS=%EMGU_CV_CMAKE_CONFIG_FLAGS% ^
-DWITH_OPENCL:BOOL=TRUE ^
-DWITH_MSMF:BOOL=TRUE
GOTO CONFIG_ARM
:VISUAL_STUDIO
SET EMGU_CV_CMAKE_CONFIG_FLAGS=%EMGU_CV_CMAKE_CONFIG_FLAGS% %IPP_BUILD_FLAGS%
IF "%3%"=="WindowsStore10" GOTO CONFIGURE_WINDOWS_STORE_10
REM Windows Desktop Build
SET EMGU_CV_CMAKE_CONFIG_FLAGS=%EMGU_CV_CMAKE_CONFIG_FLAGS% ^
-DWITH_OPENCL:BOOL=TRUE ^
-DWITH_MSMF:BOOL=TRUE
GOTO CONFIG_ARM
:CONFIGURE_WINDOWS_STORE_10
SET EMGU_CV_CMAKE_CONFIG_FLAGS=%EMGU_CV_CMAKE_CONFIG_FLAGS% ^
-DNETFX_CORE:BOOL=TRUE ^
-DWITH_DIRECTX:BOOL=FALSE ^
-DWITH_OPENEXR:BOOL=FALSE ^
-DWITH_TIFF:BOOL=FALSE ^
-DEMGU_CV_WITH_TIFF:BOOL=FALSE ^
-DWITH_PNG:BOOL=TRUE ^
-DWITH_DSHOW:BOOL=FALSE ^
-DWITH_WIN32UI:BOOL=FALSE ^
-DWITH_VFW:BOOL=FALSE ^
-DWITH_MSMF:BOOL=FALSE ^
-DWITH_FFMPEG:BOOL=FALSE ^
-DWITH_OPENCL:BOOL=FALSE ^
-DWITH_EIGEN:BOOL=TRUE ^
-DEigen3_DIR:STRING=%EIGEN_DIR% ^
-DEMGU_ENABLE_SSE:BOOL=FALSE
:CONFIG_ARM
IF "%1%"=="arm" GOTO WITH_ARM
IF "%1%"=="arm64" GOTO WITH_ARM
:WITHOUT_ARM
SET EMGU_CV_CMAKE_CONFIG_FLAGS=%EMGU_CV_CMAKE_CONFIG_FLAGS% -DEMGU_ENABLE_SSE:BOOL=TRUE
SET CPU_DISPATCH_FLAGS=
IF "%BUILD_TYPE%"=="COMMERCIAL" GOTO CONFIGURE_COMMERCIAL
GOTO CONFIGURE_OPENSOURCE
:CONFIGURE_COMMERCIAL
SET IPP_BUILD_FLAGS=-DWITH_IPP:BOOL=TRUE
IF "%1%"=="x86" SET CPU_DISPATCH_FLAGS=SSE4_1;SSE4_2
IF "%1%"=="x86_64" SET CPU_DISPATCH_FLAGS=SSE4_1;SSE4_2;AVX;AVX2;AVX512F
GOTO END_CONFIG_COMMERCIAL_OR_OPENSOURCE
:CONFIGURE_OPENSOURCE
SET IPP_BUILD_FLAGS=-DWITH_IPP:BOOL=FALSE
:END_CONFIG_COMMERCIAL_OR_OPENSOURCE
SET EMGU_CV_CMAKE_CONFIG_FLAGS=%EMGU_CV_CMAKE_CONFIG_FLAGS% %IPP_BUILD_FLAGS% -DCPU_DISPATCH:STRING="%CPU_DISPATCH_FLAGS%"
GOTO END_WITH_ARM
:WITH_ARM
IF "%BUILD_TYPE%"=="COMMERCIAL" GOTO CONFIGURE_COMMERCIAL_ARM
GOTO CONFIGURE_OPENSOURCE_ARM
:CONFIGURE_COMMERCIAL_ARM
SET EMGU_CV_CMAKE_CONFIG_FLAGS=%EMGU_CV_CMAKE_CONFIG_FLAGS% ^
-DCV_ENABLE_INTRINSICS:BOOL=ON ^
-DCPU_BASELINE:STRING="NEON"
GOTO END_CONFIG_COMMERCIAL_OR_OPENSOURCE_ARM
:CONFIGURE_OPENSOURCE_ARM
SET EMGU_CV_CMAKE_CONFIG_FLAGS=%EMGU_CV_CMAKE_CONFIG_FLAGS% ^
-DCV_ENABLE_INTRINSICS:BOOL=OFF ^
-DCPU_BASELINE:STRING=""
:END_CONFIG_COMMERCIAL_OR_OPENSOURCE_ARM
SET EMGU_CV_CMAKE_CONFIG_FLAGS=%EMGU_CV_CMAKE_CONFIG_FLAGS% ^
-DEMGU_ENABLE_SSE:BOOL=FALSE ^
-DWITH_IPP:BOOL=OFF ^
-DEMGU_CV_WITH_FREETYPE:BOOL=OFF ^
-DBUILD_opencv_freetype:BOOL=OFF
:END_WITH_ARM
:RUN_CMAKE
@echo on
%CMAKE% %EMGU_CV_CMAKE_CONFIG_FLAGS% ..\
:BUILD
IF NOT "%7%"=="build" GOTO END
SET CMAKE_BUILD_TARGET=cvextern
IF NOT "%6%"=="package" GOTO CHECK_DOC_BUILD
SET CMAKE_BUILD_TARGET=%CMAKE_BUILD_TARGET% PACKAGE
:CHECK_DOC_BUILD
IF NOT "%5%"=="doc" GOTO CHECK_NUGET_BUILD
SET CMAKE_BUILD_TARGET=%CMAKE_BUILD_TARGET% Emgu.CV.Document
:CHECK_NUGET_BUILD
IF NOT "%8%"=="nuget" GOTO END_SET_BUILD_TARGET
SET CMAKE_BUILD_TARGET=%CMAKE_BUILD_TARGET% Emgu.CV.runtime.windows.nuget
:END_SET_BUILD_TARGET
REM echo CMAKE_BUILD_TARGET=%CMAKE_BUILD_TARGET% Emgu.CV.nuget
REM Don't build with parallel at this time. Multiple Example demo projects building in parallel will results in build errors.
REM %CMAKE% --build . --config Release --parallel --target %CMAKE_BUILD_TARGET%
%CMAKE% --build . --config Release --target %CMAKE_BUILD_TARGET%
REM IF "%2%"=="gpu" ^
REM call %DEVENV% %BUILD_TYPE% emgucv.sln /project Emgu.CV.CUDA.nuget
:END
popd