-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathbuild.sh
executable file
·65 lines (52 loc) · 2.28 KB
/
build.sh
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
# export LDFLAGS="-L/opt/homebrew/opt/llvm/lib -fdiagnostics-color"
export CPPFLAGS="-I/opt/homebrew/opt/llvm/include '-fdiagnostics-color"
export LDFLAGS="-L/opt/homebrew/opt/llvm/lib -fdiagnostics-color -L/opt/homebrew/opt/llvm/lib/c++ -Wl,-rpath,/opt/homebrew/opt/llvm/lib/c++"
export CC=/opt/homebrew/opt/llvm/bin/clang
export CXX=/opt/homebrew/opt/llvm/bin/clang++
export CXXFLAGS='-fdiagnostics-color'
export CFLAGS='-fdiagnostics-color'
# export PATH="/opt/homebrew/opt/llvm/bin:$PATH"
export EXTRA='-DBUILD_TEST:BOOL=false'
export OUT='Build/Temp'
# Проверяем передан ли аргумент
if [ -z "$1" ]; then
# Если аргумент не передан, задаем значение по умолчанию
build_type="Debug"
else
if [ "$1" == "Tests" ]; then
EXTRA='-DBUILD_TEST:BOOL=true'
OUT='Tests/Temp'
echo "RUN TESTS..."
else
echo "RUN $1 Build..."
fi
# Иначе, используем переданный аргумент
build_type="$1"
fi
export OUT="Build/Temp/${build_type}"
# export LDFLAGS="-L/opt/homebrew/opt/llvm/lib"
# export CPPFLAGS="-I/opt/homebrew/opt/llvm/include"
cmake -B "${OUT}" -S . -DCMAKE_EXPORT_COMPILE_COMMANDS=1 -DCMAKE_TOOLCHAIN_FILE=vcpkg/scripts/buildsystems/vcpkg.cmake -G Ninja -DCMAKE_BUILD_TYPE="${build_type}" "${EXTRA}"
cmake --build "${OUT}"
retVal=$?
if [ $retVal -ne 0 ]; then
echo "Error"
exit $retVal
fi
mv "${OUT}/compile_commands.json" ./Build/compile_commands.json
if [ "${build_type}" = "Tests" ]; then
./Build/Temp/SatTests
fi
echo Done
# cmake -B Build -S . -DCMAKE_TOOLCHAIN_FILE=vcpkg/scripts/buildsystems/vcpkg.cmake
# cmake --build Build
# To use the bundled libc++ please add the following LDFLAGS
# LDFLAGS="-L/opt/homebrew/opt/llvm/lib/c++ -Wl,-rpath,/opt/homebrew/opt/llvm/lib/c++"
# llvm is keg-only, which means it was not symlinked into /opt/homebrew,
# because macOS already provides this software and installing another version in
# parallel can cause all kinds of trouble.
# If you need to have llvm first in your PATH, run:
# echo 'export PATH="/opt/homebrew/opt/llvm/bin:$PATH"' >> ~/.zshrc
# For compilers to find llvm you may need to set:
# export LDFLAGS="-L/opt/homebrew/opt/llvm/lib"
# export CPPFLAGS="-I/opt/homebrew/opt/llvm/include"