aboutsummaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
authorEgor Tensin <Egor.Tensin@gmail.com>2019-12-09 08:50:34 +0300
committerEgor Tensin <Egor.Tensin@gmail.com>2019-12-09 09:21:31 +0300
commit8706fa3939a82975f6e627900f52680de2ddbb49 (patch)
tree8741b1f2af1df0403ce66a842074866f06a613d8
parentupdate cmake-common (diff)
downloadmath-server-8706fa3939a82975f6e627900f52680de2ddbb49.tar.gz
math-server-8706fa3939a82975f6e627900f52680de2ddbb49.zip
use CMake's install() for predictable paths
This will allow to merge the scripts for the two CIs in the future, hopefully.
Diffstat (limited to '')
-rw-r--r--.appveyor/build.ps112
-rw-r--r--.appveyor/test.ps173
-rwxr-xr-x.travis/build.sh6
-rw-r--r--CMakeLists.txt1
-rw-r--r--appveyor.yml3
-rw-r--r--client/CMakeLists.txt2
-rw-r--r--server/main/CMakeLists.txt2
-rw-r--r--test/unit_tests/CMakeLists.txt2
8 files changed, 22 insertions, 79 deletions
diff --git a/.appveyor/build.ps1 b/.appveyor/build.ps1
index 94918bd..43ed2e8 100644
--- a/.appveyor/build.ps1
+++ b/.appveyor/build.ps1
@@ -1,5 +1,6 @@
param(
[string] $BuildDir = $null,
+ [string] $InstallDir = $null,
[string] $ProjectDir = $null,
[string] $Platform = $null,
[string] $Generator = $null,
@@ -37,6 +38,7 @@ function Test-AppVeyor {
function Set-AppVeyorDefaults {
$script:ProjectDir = $env:APPVEYOR_BUILD_FOLDER
$script:BuildDir = 'C:\Projects\build'
+ $script:InstallDir = 'C:\Projects\install'
$script:Generator = switch ($env:APPVEYOR_BUILD_WORKER_IMAGE) {
'Visual Studio 2017' { 'Visual Studio 15 2017' }
'Visual Studio 2019' { 'Visual Studio 16 2019' }
@@ -55,6 +57,8 @@ function Build-Project {
[Parameter(Mandatory=$true)]
[string] $BuildDir,
[Parameter(Mandatory=$true)]
+ [string] $InstallDir,
+ [Parameter(Mandatory=$true)]
[string] $Generator,
[Parameter(Mandatory=$true)]
[string] $Platform,
@@ -74,13 +78,18 @@ function Build-Project {
Invoke-Exe { cmake.exe `
-G $Generator -A $Platform `
+ -D "CMAKE_INSTALL_PREFIX=$InstallDir" `
-D "BOOST_ROOT=$BoostDir" `
-D "BOOST_LIBRARYDIR=$BoostLibraryDir" `
-D ENABLE_TESTS=ON `
$ProjectDir
}
- Invoke-Exe { cmake.exe --build . --config $Configuration -- /m }
+ Invoke-Exe { cmake.exe --build . --config $Configuration --target install -- /m }
+
+ cd $InstallDir
+
+ Invoke-Exe { .\bin\unit_tests.exe --log_level=all }
}
function Build-ProjectAppVeyor {
@@ -93,6 +102,7 @@ function Build-ProjectAppVeyor {
Build-Project `
-ProjectDir $script:ProjectDir `
-BuildDir $script:BuildDir `
+ -InstallDir $script:InstallDir `
-Generator $script:Generator `
-Platform $script:Platform `
-Configuration $script:Configuration `
diff --git a/.appveyor/test.ps1 b/.appveyor/test.ps1
deleted file mode 100644
index 7701645..0000000
--- a/.appveyor/test.ps1
+++ /dev/null
@@ -1,73 +0,0 @@
-param(
- [string] $BuildDir = $null,
- [string] $Platform = $null
-)
-
-$ErrorActionPreference = "Stop";
-Set-PSDebug -Strict
-
-function Invoke-Exe {
- param(
- [ScriptBlock] $Cmd,
- [int[]] $AllowedExitCodes = @(0)
- )
-
- $backupErrorActionPreference = $script:ErrorActionPreference
- $script:ErrorActionPreference = 'Continue'
-
- try {
- & $Cmd
- if ($AllowedExitCodes -notcontains $LastExitCode) {
- throw "External command failed with exit code ${LastExitCode}: $Cmd"
- }
- } finally {
- $script:ErrorActionPreference = $backupErrorActionPreference
- }
-}
-
-function Test-AppVeyor {
- return Test-Path env:APPVEYOR
-}
-
-function Get-AppVeyorBuildDir {
- return 'C:\Projects\build'
-}
-
-function Set-AppVeyorDefaults {
- $script:BuildDir = Get-AppVeyorBuildDir
- $script:Configuration = $env:CONFIGURATION
-}
-
-function Run-ProjectTests {
- param(
- [Parameter(Mandatory=$true)]
- [string] $BuildDir,
- [Parameter(Mandatory=$true)]
- [string] $Configuration
- )
-
- $unit_tests_dir = "$BuildDir\test\unit_tests\$Configuration"
- cd $unit_tests_dir
-
- Invoke-Exe { .\unit_tests.exe --log_level=all }
-}
-
-function Run-ProjectTestsAppVeyor {
- if (Test-AppVeyor) {
- Set-AppVeyorDefaults
- $appveyor_cwd = pwd
- }
-
- try {
- Run-ProjectTests `
- -BuildDir $script:BuildDir `
- -Configuration $script:Configuration
- } finally {
- if (Test-AppVeyor) {
- cd $appveyor_cwd
- Set-PSDebug -Off
- }
- }
-}
-
-Run-ProjectTestsAppVeyor
diff --git a/.travis/build.sh b/.travis/build.sh
index 5c86ac0..021ec97 100755
--- a/.travis/build.sh
+++ b/.travis/build.sh
@@ -7,6 +7,7 @@ readonly boost_dir="$HOME/$boost_fs"
readonly boost_librarydir="$boost_dir/stage/$arch/$build_type/lib"
readonly build_dir="$HOME/build"
+readonly install_dir="$HOME/install"
main() {
mkdir -p -- "$build_dir"
@@ -14,12 +15,13 @@ main() {
cmake \
-D "CMAKE_BUILD_TYPE=$build_type" \
-D "CMAKE_CXX_STANDARD_LIBRARIES=-lpthread" \
+ -D "CMAKE_INSTALL_PREFIX=$install_dir" \
-D "BOOST_ROOT=$boost_dir" \
-D "BOOST_LIBRARYDIR=$boost_librarydir" \
-D ENABLE_TESTS=ON \
"$TRAVIS_BUILD_DIR"
- cmake --build . -- -j
- ./test/unit_tests/unit_tests --log_level=all
+ cmake --build . --config "$build_type" --target install -- -j
+ "$install_dir/bin/unit_tests" --log_level=all
}
main
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 0c9c0a8..e20d3d1 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -11,6 +11,7 @@ include(cmake/common.cmake)
add_subdirectory(client)
add_subdirectory(server)
+
if(ENABLE_TESTS)
add_subdirectory(test)
endif()
diff --git a/appveyor.yml b/appveyor.yml
index f3701fe..5834b8c 100644
--- a/appveyor.yml
+++ b/appveyor.yml
@@ -18,9 +18,6 @@ install:
build_script:
- ps: .\.appveyor\build.ps1
-test_script:
- - ps: .\.appveyor\test.ps1
-
for:
- matrix:
only:
diff --git a/client/CMakeLists.txt b/client/CMakeLists.txt
index 01a86df..6bebf27 100644
--- a/client/CMakeLists.txt
+++ b/client/CMakeLists.txt
@@ -4,3 +4,5 @@ add_executable(client main.cpp)
target_include_directories(client SYSTEM PRIVATE ${Boost_INCLUDE_DIRS})
target_link_libraries(client PRIVATE ${Boost_LIBRARIES})
target_compile_definitions(client PRIVATE BOOST_DATE_TIME_NO_LIB BOOST_REGEX_NO_LIB)
+
+install(TARGETS client RUNTIME DESTINATION bin)
diff --git a/server/main/CMakeLists.txt b/server/main/CMakeLists.txt
index e8df7cb..eefb969 100644
--- a/server/main/CMakeLists.txt
+++ b/server/main/CMakeLists.txt
@@ -12,3 +12,5 @@ target_compile_definitions(server PRIVATE BOOST_DATE_TIME_NO_LIB BOOST_REGEX_NO_
if(DEBUG_ASIO)
target_compile_definitions(server PRIVATE BOOST_ASIO_ENABLE_HANDLER_TRACKING)
endif()
+
+install(TARGETS server RUNTIME DESTINATION bin)
diff --git a/test/unit_tests/CMakeLists.txt b/test/unit_tests/CMakeLists.txt
index 1d68318..db731ee 100644
--- a/test/unit_tests/CMakeLists.txt
+++ b/test/unit_tests/CMakeLists.txt
@@ -6,3 +6,5 @@ target_include_directories(unit_tests PRIVATE ../..)
target_include_directories(unit_tests SYSTEM PRIVATE ${Boost_INCLUDE_DIRS})
target_link_libraries(unit_tests PRIVATE ${Boost_LIBRARIES})
+
+install(TARGETS unit_tests RUNTIME DESTINATION bin)