forked from sinojelly/mockcpp
-
Notifications
You must be signed in to change notification settings - Fork 0
/
build.ps1
46 lines (35 loc) · 1.9 KB
/
build.ps1
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
# This is a Windows PowerShell script
# On windows 7, open cmd.exe, input powershell, hit enter, then you can run this script.
# If you use powershell the first time, excute this cmd first: set-executionpolicy remotesigned
# Build mockcpp and it's tests, and at last run all tests.
# $args[0] --- [optional] compiler index in table $global:SUPPORTED_COMPILER in tools\build_functions.ps1
# $args[1] --- [optional] if it is "test" then only run tests without compiling.
$global:USER_CHOICE=$null
$global:SUPPORTED_COMPILER=$null
. "$PSScriptRoot\tools\build_functions.ps1"
# If no input parameter
if (-not $args[0]) {
# Detect the compiler
cmake -B build tools
ReadUserChoice
} else {
$global:USER_CHOICE=$args[0]
}
$global:MY_OS_NAME=$null
$global:MY_CXX_COMPILER_NAME=$null
$global:MY_CXX_COMPILER_MAJOR_VERSION=$null
$global:CMAKE_COMPILER_PARAM=$null
$global:MAKE_BUILD_TYPE=$null
InitEnviroment $global:SUPPORTED_COMPILER[$global:USER_CHOICE].name $global:SUPPORTED_COMPILER[$global:USER_CHOICE].major_ver $global:SUPPORTED_COMPILER[$global:USER_CHOICE].cmake_param
$BUILD_DIR="build_$global:MY_CXX_COMPILER_NAME"
$OS_COMPILER="$global:MY_OS_NAME\$global:MY_CXX_COMPILER_NAME\$global:MY_CXX_COMPILER_MAJOR_VERSION"
echo "OS_COMPILER in Powershell : $OS_COMPILER"
if (-not ($args[1] -eq "test")) {
Invoke-Expression "cmake $global:CMAKE_COMPILER_PARAM -S . -B $BUILD_DIR/mockcpp"
Invoke-Expression "cmake $global:CMAKE_COMPILER_PARAM -S tests/3rdparty/testngpp -B $BUILD_DIR/mockcpp_testngpp"
Invoke-Expression "cmake $global:CMAKE_COMPILER_PARAM -S tests -B $BUILD_DIR/mockcpp_tests"
CompileProject $global:MY_CXX_COMPILER_NAME $BUILD_DIR/mockcpp
CompileProject $global:MY_CXX_COMPILER_NAME $BUILD_DIR/mockcpp_testngpp
CompileProject $global:MY_CXX_COMPILER_NAME $BUILD_DIR/mockcpp_tests
}
RunTests $BUILD_DIR mockcpp_tests $global:MAKE_BUILD_TYPE mockcpp_testngpp