diff options
author | Egor Tensin <Egor.Tensin@gmail.com> | 2019-12-09 08:50:34 +0300 |
---|---|---|
committer | Egor Tensin <Egor.Tensin@gmail.com> | 2019-12-09 09:21:31 +0300 |
commit | 8706fa3939a82975f6e627900f52680de2ddbb49 (patch) | |
tree | 8741b1f2af1df0403ce66a842074866f06a613d8 | |
parent | update cmake-common (diff) | |
download | math-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.
-rw-r--r-- | .appveyor/build.ps1 | 12 | ||||
-rw-r--r-- | .appveyor/test.ps1 | 73 | ||||
-rwxr-xr-x | .travis/build.sh | 6 | ||||
-rw-r--r-- | CMakeLists.txt | 1 | ||||
-rw-r--r-- | appveyor.yml | 3 | ||||
-rw-r--r-- | client/CMakeLists.txt | 2 | ||||
-rw-r--r-- | server/main/CMakeLists.txt | 2 | ||||
-rw-r--r-- | test/unit_tests/CMakeLists.txt | 2 |
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) |