Merge pull request #292 from ethereum/appveyor-ninja

ci: Use Ninja on AppVeyor
This commit is contained in:
Paweł Bylica 2019-05-15 20:38:08 +02:00 committed by GitHub
commit d01eb47add
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
4 changed files with 48 additions and 47 deletions

View File

@ -1,4 +1,5 @@
version: "{build}" version: "{build}"
image: Visual Studio 2017
branches: branches:
only: only:
- master - master
@ -9,28 +10,23 @@ configuration:
- Release - Release
environment: environment:
matrix: matrix:
- APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2017 - VS: 2015
GENERATOR: "Visual Studio 15 2017 Win64" - VS: 2017
- APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2015
GENERATOR: "Visual Studio 14 2015 Win64"
- GO: true - GO: true
cache: cache:
- C:\.hunter\_Base\Cache -> cmake\Hunter\init.cmake - C:\.hunter\_Base\Cache -> cmake\Hunter\init.cmake
before_build: before_build:
- ps: >- # Add ninja to PATH. This is done for VS2017 by vsdevcmd, but not for VS2015.
if ($env:GENERATOR) { - set PATH=%PATH%;%ProgramFiles(x86)%\Microsoft Visual Studio\2017\Community\Common7\IDE\CommonExtensions\Microsoft\CMake\Ninja
if (!(test-path build)) { mkdir build } - if "%VS%" == "2017" (call "%ProgramFiles(x86)%\Microsoft Visual Studio\2017\Community\Common7\Tools\vsdevcmd" -arch=amd64)
cd build - if "%VS%" == "2015" (call "%ProgramFiles(x86)%\Microsoft Visual Studio 14.0\VC\vcvarsall" x64)
cmake -Wno-dev -G "$env:GENERATOR" .. -DTOOLCHAIN=cxx17-pic -DEVMC_TESTING=ON -DCMAKE_INSTALL_PREFIX=C:\install - if defined VS cmake -S . -B build -G Ninja -Wno-dev -DCMAKE_INSTALL_PREFIX=C:\install -DTOOLCHAIN=cxx17-pic -DEVMC_TESTING=ON
}
build_script: build_script:
- ps: >- - ps: >-
if ($env:GENERATOR) { if ($env:VS) {
cmake --build . --config $env:CONFIGURATION --target install cmake --build build --target install
} }
elseif ($env:GO) { elseif ($env:GO) {
$env:PATH = "C:\msys64\mingw64\bin;$env:PATH" $env:PATH = "C:\msys64\mingw64\bin;$env:PATH"
@ -53,6 +49,7 @@ build_script:
after_build: after_build:
- ps: >- - ps: >-
if ($env:GENERATOR) { if ($env:VS) {
cd build
ctest -C $env:CONFIGURATION -j4 --schedule-random --output-on-failure ctest -C $env:CONFIGURATION -j4 --schedule-random --output-on-failure
} }

View File

@ -9,42 +9,44 @@ set(use_instructions_build_dir ${CMAKE_CURRENT_BINARY_DIR}/use_instructions)
file(MAKE_DIRECTORY ${build_dir} ${use_evmc_build_dir} ${use_instructions_build_dir}) file(MAKE_DIRECTORY ${build_dir} ${use_evmc_build_dir} ${use_instructions_build_dir})
set(prefix ${PROJECT_NAME}/cmake_packge)
add_test( add_test(
NAME cmake_package/configure NAME ${prefix}/configure
COMMAND ${CMAKE_COMMAND} ${PROJECT_SOURCE_DIR} -DCMAKE_INSTALL_PREFIX=${install_dir} COMMAND ${CMAKE_COMMAND} -G ${CMAKE_GENERATOR} ${PROJECT_SOURCE_DIR} -DCMAKE_INSTALL_PREFIX=${install_dir}
WORKING_DIRECTORY ${build_dir} WORKING_DIRECTORY ${build_dir}
) )
add_test( add_test(
NAME cmake_package/install NAME ${prefix}/install
COMMAND ${CMAKE_COMMAND} --build ${build_dir} --target install COMMAND ${CMAKE_COMMAND} --build ${build_dir} --target install
) )
set_tests_properties(cmake_package/install PROPERTIES DEPENDS cmake_package/configure) set_tests_properties(${prefix}/install PROPERTIES DEPENDS ${prefix}/configure)
add_test( add_test(
NAME cmake_package/use_evmc/configure NAME ${prefix}/use_evmc/configure
COMMAND ${CMAKE_COMMAND} ${PROJECT_SOURCE_DIR}/examples/use_evmc_in_cmake -DCMAKE_PREFIX_PATH=${install_dir} COMMAND ${CMAKE_COMMAND} -G ${CMAKE_GENERATOR} ${PROJECT_SOURCE_DIR}/examples/use_evmc_in_cmake -DCMAKE_PREFIX_PATH=${install_dir}
WORKING_DIRECTORY ${use_evmc_build_dir} WORKING_DIRECTORY ${use_evmc_build_dir}
) )
set_tests_properties(cmake_package/use_evmc/configure PROPERTIES DEPENDS cmake_package/install) set_tests_properties(${prefix}/use_evmc/configure PROPERTIES DEPENDS ${prefix}/install)
add_test( add_test(
NAME cmake_package/use_evmc/build NAME ${prefix}/use_evmc/build
COMMAND ${CMAKE_COMMAND} --build ${use_evmc_build_dir} COMMAND ${CMAKE_COMMAND} --build ${use_evmc_build_dir}
) )
set_tests_properties(cmake_package/use_evmc/build PROPERTIES DEPENDS cmake_package/use_evmc/configure) set_tests_properties(${prefix}/use_evmc/build PROPERTIES DEPENDS ${prefix}/use_evmc/configure)
add_test( add_test(
NAME cmake_package/use_instructions/configure NAME ${prefix}/use_instructions/configure
COMMAND ${CMAKE_COMMAND} ${PROJECT_SOURCE_DIR}/examples/use_instructions_in_cmake -DCMAKE_PREFIX_PATH=${install_dir} COMMAND ${CMAKE_COMMAND} -G ${CMAKE_GENERATOR} ${PROJECT_SOURCE_DIR}/examples/use_instructions_in_cmake -DCMAKE_PREFIX_PATH=${install_dir}
WORKING_DIRECTORY ${use_instructions_build_dir} WORKING_DIRECTORY ${use_instructions_build_dir}
) )
set_tests_properties(cmake_package/use_instructions/configure PROPERTIES DEPENDS cmake_package/install) set_tests_properties(${prefix}/use_instructions/configure PROPERTIES DEPENDS ${prefix}/install)
add_test( add_test(
NAME cmake_package/use_instructions/build NAME ${prefix}/use_instructions/build
COMMAND ${CMAKE_COMMAND} --build ${use_instructions_build_dir} COMMAND ${CMAKE_COMMAND} --build ${use_instructions_build_dir}
) )
set_tests_properties(cmake_package/use_instructions/build PROPERTIES DEPENDS cmake_package/use_instructions/configure) set_tests_properties(${prefix}/use_instructions/build PROPERTIES DEPENDS ${prefix}/use_instructions/configure)

View File

@ -20,4 +20,4 @@ add_executable(
target_link_libraries(evmc-unittests PRIVATE loader-mocked evmc-example-vm-static evmc-example-host instructions GTest::gtest GTest::main) target_link_libraries(evmc-unittests PRIVATE loader-mocked evmc-example-vm-static evmc-example-host instructions GTest::gtest GTest::main)
set_target_properties(evmc-unittests PROPERTIES RUNTIME_OUTPUT_DIRECTORY ..) set_target_properties(evmc-unittests PROPERTIES RUNTIME_OUTPUT_DIRECTORY ..)
gtest_add_tests(TARGET evmc-unittests TEST_PREFIX unittests/) gtest_add_tests(TARGET evmc-unittests TEST_PREFIX ${PROJECT_NAME}/unittests/)

View File

@ -7,31 +7,33 @@ include(GNUInstallDirs)
add_executable(evmc-vmtester vmtester.hpp vmtester.cpp tests.cpp) add_executable(evmc-vmtester vmtester.hpp vmtester.cpp tests.cpp)
set_target_properties(evmc-vmtester PROPERTIES RUNTIME_OUTPUT_DIRECTORY ..) set_target_properties(evmc-vmtester PROPERTIES RUNTIME_OUTPUT_DIRECTORY ..)
target_link_libraries(evmc-vmtester PRIVATE evmc loader evmc-example-host GTest::gtest) target_link_libraries(evmc-vmtester PRIVATE evmc loader evmc-example-host GTest::gtest)
set_source_files_properties(vmtester.cpp PROPERTIES COMPILE_DEFINITIONS PROJECT_VERSION=\"${PROJECT_VERSION}\") set_source_files_properties(vmtester.cpp PROPERTIES COMPILE_DEFINITIONS PROJECT_VERSION="${PROJECT_VERSION}")
install(TARGETS evmc-vmtester RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}) install(TARGETS evmc-vmtester RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR})
add_test(NAME vmtester/examplevm COMMAND evmc-vmtester $<TARGET_FILE:evmc-example-vm>) set(prefix ${PROJECT_NAME}/vmtester)
add_test(NAME vmtester/example_precompiles_vm COMMAND evmc-vmtester $<TARGET_FILE:evmc-example-precompiles-vm>)
add_test(NAME vmtester/help COMMAND evmc-vmtester --version --help) add_test(NAME ${prefix}/examplevm COMMAND evmc-vmtester $<TARGET_FILE:evmc-example-vm>)
set_tests_properties(vmtester/help PROPERTIES PASS_REGULAR_EXPRESSION "Usage:") add_test(NAME ${prefix}/example_precompiles_vm COMMAND evmc-vmtester $<TARGET_FILE:evmc-example-precompiles-vm>)
add_test(NAME vmtester/nonexistingvm COMMAND evmc-vmtester nonexistingvm) add_test(NAME ${prefix}/help COMMAND evmc-vmtester --version --help)
set_tests_properties(vmtester/nonexistingvm PROPERTIES PASS_REGULAR_EXPRESSION "[Cc]annot open") set_tests_properties(${prefix}/help PROPERTIES PASS_REGULAR_EXPRESSION "Usage:")
add_test(NAME vmtester/noarg COMMAND evmc-vmtester) add_test(NAME ${prefix}/nonexistingvm COMMAND evmc-vmtester nonexistingvm)
set_tests_properties(vmtester/noarg PROPERTIES PASS_REGULAR_EXPRESSION "is required") set_tests_properties(${prefix}/nonexistingvm PROPERTIES PASS_REGULAR_EXPRESSION "[Cc]annot open")
add_test(NAME vmtester/too-many-args COMMAND evmc-vmtester a b) add_test(NAME ${prefix}/noarg COMMAND evmc-vmtester)
set_tests_properties(vmtester/too-many-args PROPERTIES PASS_REGULAR_EXPRESSION "Unexpected") set_tests_properties(${prefix}/noarg PROPERTIES PASS_REGULAR_EXPRESSION "is required")
add_test(NAME vmtester/version COMMAND evmc-vmtester --version) add_test(NAME ${prefix}/too-many-args COMMAND evmc-vmtester a b)
set_tests_properties(vmtester/version PROPERTIES PASS_REGULAR_EXPRESSION ${PROJECT_VERSION}) set_tests_properties(${prefix}/too-many-args PROPERTIES PASS_REGULAR_EXPRESSION "Unexpected")
add_test(NAME vmtester/unknown-option COMMAND evmc-vmtester --verbose) add_test(NAME ${prefix}/version COMMAND evmc-vmtester --version)
set_tests_properties(vmtester/unknown-option PROPERTIES PASS_REGULAR_EXPRESSION "Unknown") set_tests_properties(${prefix}/version PROPERTIES PASS_REGULAR_EXPRESSION ${PROJECT_VERSION})
add_test(NAME vmtester/option-long-prefix COMMAND evmc-vmtester ---) add_test(NAME ${prefix}/unknown-option COMMAND evmc-vmtester --verbose)
set_tests_properties(vmtester/option-long-prefix PROPERTIES PASS_REGULAR_EXPRESSION "Unknown") set_tests_properties(${prefix}/unknown-option PROPERTIES PASS_REGULAR_EXPRESSION "Unknown")
add_test(NAME ${prefix}/option-long-prefix COMMAND evmc-vmtester ---)
set_tests_properties(${prefix}/option-long-prefix PROPERTIES PASS_REGULAR_EXPRESSION "Unknown")