Merge commit '8e97373d883c06e1c73791849561d1311c880bc0' as 'libs/loguru'
This commit is contained in:
45
libs/loguru/test/build_and_run.cmake
Normal file
45
libs/loguru/test/build_and_run.cmake
Normal file
@@ -0,0 +1,45 @@
|
||||
#!/usr/bin/env cmake -P
|
||||
|
||||
# for lack of an equivalent of `set -e` in bash
|
||||
macro(EXEC_CMD_CHECK)
|
||||
message("running ${ARGN}")
|
||||
execute_process(COMMAND ${ARGN} RESULT_VARIABLE CMD_RESULT)
|
||||
if(CMD_RESULT)
|
||||
message(FATAL_ERROR "Error running ${ARGN}")
|
||||
endif()
|
||||
endmacro()
|
||||
|
||||
# Read the configuration from the environement
|
||||
if(NOT DEFINED Configuration AND DEFINED ENV{Configuration})
|
||||
set(Configuration $ENV{Configuration})
|
||||
endif()
|
||||
# to override the default configuration: ex. -DConfiguration=Release
|
||||
if(DEFINED Configuration)
|
||||
list(APPEND CMAKE_EXTRA_ARGS "-DCMAKE_BUILD_TYPE=${Configuration}")
|
||||
set(CMAKE_BUILD_EXTRA_ARGS --config ${Configuration})
|
||||
set(CTEST_EXTRA_ARGS -C ${Configuration})
|
||||
endif()
|
||||
|
||||
# The generator also, if we have an entry in the envirnoment
|
||||
if(NOT DEFINED Generator AND DEFINED ENV{Generator})
|
||||
set(Generator $ENV{Generator})
|
||||
endif()
|
||||
# to override the default generator: ex. -DGenerator=Ninja
|
||||
if(DEFINED Generator)
|
||||
list(APPEND CMAKE_EXTRA_ARGS "-G${Generator}")
|
||||
endif()
|
||||
|
||||
if(NOT DEFINED BUILD_DIR)
|
||||
set(BUILD_DIR ${CMAKE_CURRENT_LIST_DIR}/build)
|
||||
endif()
|
||||
file(MAKE_DIRECTORY ${BUILD_DIR})
|
||||
|
||||
# cd build && cmake .. && cd -
|
||||
EXEC_CMD_CHECK(${CMAKE_COMMAND} ${CMAKE_EXTRA_ARGS} ${CMAKE_CURRENT_LIST_DIR}
|
||||
WORKING_DIRECTORY ${BUILD_DIR})
|
||||
|
||||
# platform-independent equivalent of `make`
|
||||
EXEC_CMD_CHECK(${CMAKE_COMMAND} --build ${BUILD_DIR} ${CMAKE_BUILD_EXTRA_ARGS})
|
||||
|
||||
EXEC_CMD_CHECK(${CMAKE_CTEST_COMMAND} ${CTEST_EXTRA_ARGS} --output-on-failure
|
||||
WORKING_DIRECTORY ${BUILD_DIR})
|
||||
Reference in New Issue
Block a user