forked from ramakarl/Flock2
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathbuild_all.bat
95 lines (76 loc) · 2.13 KB
/
build_all.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
@echo off
echo ### FLOCK2
echo ### Rama Hoetzlein (c) 2023-2024
echo ### Flock2: A model for orientation-based social flocking
echo.
echo ### This script requires Git, Cmake and Visual Studio to be install before proceeding.
echo ### Also install CUDA Toolkit 10.2 or higher for GPU support.
echo.
echo ### Stop and edit this .bat file to set your own Visual Studio path (if not using VS2019)
echo.
path=%path%;C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\MSBuild\Current\Bin
echo ### Would you like to enable GPU build?
echo An NVIDIA GPU and CUDA Toolkit 10.2+ must be pre-installed for GPU support.
echo Select 'Y' to build for GPU. 'N' to build for CPU only.
setlocal
:PROMPT
SET /P USEGPU=Build Flock2 with GPU support (Y/[N])?
IF /I "%USEGPU%" NEQ "Y" GOTO GPU_OFF
:GPU_ON
endlocal
set CUDAOPT=-DBUILD_CUDA^=TRUE
GOTO PROCEED
:GPU_OFF
endlocal
set CUDAOPT=-DBUILD_CUDA^=FALSE
GOTO PROCEED
echo ### Proceeding with Flock2 install
:PROCEED
echo ### CUDA Option: %CUDAOPT%
echo.
echo ####### Folder structure created
echo #
echo # \Flock2 - flock2 repository
echo # \libmin - libmin repository
echo # \build
echo # \flock2 - flock2 compiled
echo # \libmin - libmin compiled
echo #
echo # Assume this .bat file started in \Flock2 repository
echo.
echo ##################### Cloning or updating \libmin repository
echo.
cd ..
git clone https://github.com/ramakarl/libmin.git
cd libmin
git pull
cd ..
echo.
echo ##################### Compiling Libmin to \build\libmin
echo.
@echo on
cmake -S libmin -B build/libmin %CUDAOPT%
cd build/libmin
msbuild libmin.sln /p:Configuration=Debug
msbuild libmin.sln /p:Configuration=Release
@echo off
echo.
echo #################### Updating \Flock2 repository
echo.
cd ../../flock2
git pull
cd ..
echo.
echo ####### Compile Flock2 to \build\flock2
echo.
@echo on
cmake -S flock2 -B build/flock2 -DLIBMIN_INSTALL=build/libmin %CUDAOPT%
cd build/flock2
msbuild flock2.sln /p:Configuration=Debug
msbuild flock2.sln /p:Configuration=Release
@echo off
echo ######## DONE
echo ### Update and build complete.
echo ### Current directory is now \build\flock2
echo ### Type flock2.exe to run it!
echo.