this repo has no description
1[CmdletBinding()]
2param(
3 [Parameter()]
4 [Alias("f")]
5 [switch]$Fresh,
6
7
8 [Parameter()]
9 [Alias("p")]
10 [switch]$Pro,
11
12 [Parameter()]
13 [Alias("d")]
14 [switch]$bDebug,
15
16 [Parameter()]
17 [Alias("x")]
18 [switch]$Win32,
19
20 [Parameter()]
21 [Alias("m")]
22 [switch]$Msys2,
23
24 [Parameter()]
25 [Alias("s")]
26 [switch]$Static,
27
28 [Parameter()]
29 [Alias("w")]
30 [switch]$Warnings
31)
32
33$BUILD_TYPE = "MinSizeRel"
34$SDLGPU_FLAG = "-DBUILD_SDLGPU=On"
35$PRO_VERSION_FLAG = ""
36$ARCH_FLAGS = "-A x64"
37$CMAKE_GENERATOR = ""
38$DEBUG_FLAGS = ""
39$STATIC_FLAG = ""
40$COMPILER_FLAGS = ""
41
42if ($Fresh) {
43 Remove-Item -Path .cache, CMakeCache.txt, CMakeFiles, cmake_install.cmake -Force -Recurse -ErrorAction SilentlyContinue
44 Remove-Item -Path ".\build\" -Force -Recurse -ErrorAction Stop
45 Remove-Item -Path ".\vendor\janet\src\conf\janetconf.h" -Force -ErrorAction SilentlyContinue
46 git restore '.\build\*'
47 git submodule deinit -f -- .\vendor\janet
48 git submodule update --init --recursive
49}
50
51if ($Pro) {
52 $PRO_VERSION_FLAG = "-DBUILD_PRO=On"
53}
54
55if ($bDebug) {
56 $BUILD_TYPE = "Debug"
57}
58
59if ($Static) {
60 $STATIC_FLAG = "-DBUILD_STATIC=On"
61}
62
63if ($Warnings) {
64 if ($Msys2) {
65 # MinGW uses GCC-style flags
66 $WARNING_FLAGS = "-Wall -Wextra"
67 $COMPILER_FLAGS = "$COMPILER_FLAGS -DCMAKE_C_FLAGS=`"$WARNING_FLAGS`" -DCMAKE_CXX_FLAGS=`"$WARNING_FLAGS`""
68 } else {
69 # Visual Studio uses different flags
70 $COMPILER_FLAGS = "$COMPILER_FLAGS -DCMAKE_C_FLAGS=`"/W4`" -DCMAKE_CXX_FLAGS=`"/W4`""
71 }
72}
73
74if ($Win32) {
75 $ARCH_FLAGS = "-A Win32 -T v141_xp"
76 Copy-Item -Path "build\janet\janetconf.h" -Destination "vendor\janet\src\conf\janetconf.h" -Force
77 $SDLGPU_FLAG = ""
78}
79
80if ($Msys2) {
81 $ARCH_FLAGS = ""
82 $CMAKE_GENERATOR = '-G "MinGW Makefiles"'
83} else {
84 $CMAKE_GENERATOR = '-G "Visual Studio 16 2019"'
85}
86
87Write-Host
88Write-Host "+--------------------------------+-------+"
89Write-Host "| Build Options | Value |"
90Write-Host "+--------------------------------+-------+"
91Write-Host "| Fresh build (-f, -fresh) | $(if ($Fresh) { "Yes" } else { "No " }) |"
92Write-Host "| Pro version (-p, -pro) | $(if ($Pro) { "Yes" } else { "No " }) |"
93Write-Host "| Debug build (-d, -bdebug) | $(if ($bDebug) { "Yes" } else { "No " }) |"
94Write-Host "| Win32 (-x, -win32) | $(if ($Win32) { "Yes" } else { "No " }) |"
95Write-Host "| MSYS2 (-m, -msys2) | $(if ($Msys2) { "Yes" } else { "No " }) |"
96Write-Host "| Static build (-s, -static) | $(if ($Static) { "Yes" } else { "No " }) |"
97Write-Host "| Warnings (-w, -warnings) | $(if ($Warnings) { "Yes" } else { "No " }) |"
98Write-Host "+--------------------------------+-------+"
99Write-Host
100
101Set-Location -Path ./build -ErrorAction Stop
102
103$cmakeCommand = "cmake $CMAKE_GENERATOR " +
104 "$ARCH_FLAGS " +
105 "-DCMAKE_BUILD_TYPE=$BUILD_TYPE " +
106 "$PRO_VERSION_FLAG " +
107 "$SDLGPU_FLAG " +
108 "$DEBUG_FLAGS " +
109 "$COMPILER_FLAGS " +
110 "$STATIC_FLAG " +
111 "-DBUILD_WITH_ALL=On " +
112 "-DCMAKE_EXPORT_COMPILE_COMMANDS=On " +
113 "-DCMAKE_POLICY_VERSION_MINIMUM=3.5 " +
114 ".."
115
116Write-Host "Executing CMake Command: $cmakeCommand"
117Invoke-Expression $cmakeCommand
118
119$numCPUs = [Environment]::ProcessorCount
120
121if ($LASTEXITCODE -eq 0) {
122 if ($Msys2) {
123 mingw32-make "-j$numCPUs"
124 } else {
125 cmake --build . --config "$BUILD_TYPE" --parallel
126 }
127} else {
128 Write-Host "(C)Make failed. Exiting."
129 exit 1
130}
131
132Set-Location -Path .. -ErrorAction Stop