diff options
Diffstat (limited to 'test/unit/CMakeLists.txt')
| -rw-r--r-- | test/unit/CMakeLists.txt | 72 |
1 files changed, 59 insertions, 13 deletions
diff --git a/test/unit/CMakeLists.txt b/test/unit/CMakeLists.txt index 899aec9b..35c2c29d 100644 --- a/test/unit/CMakeLists.txt +++ b/test/unit/CMakeLists.txt @@ -1,13 +1,59 @@ -#SET(CATCH2_INCLUDE ../catch.hpp) -#include_directories(..) - -#SET(BASIC_TEST_SRC basic_test.cpp) -#add_executable(basic_test ${BASIC_TEST_SRC} ${CATCH2_INCLUDE}) -#target_link_libraries(basic_test ${PROJ_LIBRARIES} ${TEST_MAIN_LIBRARIES}) -#set_target_properties(basic_test -# PROPERTIES -# LINKER_LANGUAGE CXX) -# -#add_test( NAME basic_test -# WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}/test -# COMMAND basic_test ) +# CMake configuration for PROJ unit tests + +# FIXME: Deal with our old-school CMakeLists.txt behaving badly +set(_save_c_flags "${CMAKE_C_FLAGS}") +set(_save_cxx_flags "${CMAKE_CXX_FLAGS}") +string(REGEX REPLACE "\\-W[a-z\\-]+" "" CMAKE_C_FLAGS ${CMAKE_C_FLAGS}) +string(REGEX REPLACE "\\-W[a-z\\-]+" "" CMAKE_CXX_FLAGS ${CMAKE_CXX_FLAGS}) + +# +# Build Google Test +# +# Source https://github.com/google/googletest/blob/master/googletest/README.md +# Download and unpack googletest at configure time +configure_file( + ${CMAKE_SOURCE_DIR}/test/googletest/CMakeLists.txt.in + ${CMAKE_BINARY_DIR}/googletest-download/CMakeLists.txt) +execute_process(COMMAND ${CMAKE_COMMAND} -G "${CMAKE_GENERATOR}" . + RESULT_VARIABLE result + WORKING_DIRECTORY ${CMAKE_BINARY_DIR}/googletest-download ) +if(result) + message(FATAL_ERROR "CMake step for googletest failed: ${result}") +endif() +execute_process(COMMAND ${CMAKE_COMMAND} --build . + RESULT_VARIABLE result + WORKING_DIRECTORY ${CMAKE_BINARY_DIR}/googletest-download) +if(result) + message(FATAL_ERROR "Build step for googletest failed: ${result}") +endif() +# Prevent overriding the parent project's compiler/linker +# settings on Windows +set(gtest_force_shared_crt ON CACHE BOOL "" FORCE) +# Add googletest directly to our build. This defines +# the gtest and gtest_main targets. +add_subdirectory(${CMAKE_BINARY_DIR}/googletest-src + ${CMAKE_BINARY_DIR}/googletest-build + EXCLUDE_FROM_ALL) +# The gtest/gtest_main targets carry header search path +# dependencies automatically when using CMake 2.8.11 or +# later. Otherwise we have to add them here ourselves. +if (CMAKE_VERSION VERSION_LESS 2.8.11) + include_directories("${gtest_SOURCE_DIR}/include") +endif() + +# FIXME: Deal with our old-school CMakeLists.txt behaving badly +set(CMAKE_C_FLAGS "${_save_c_flags}") +set(CMAKE_CXX_FLAGS "${_save_cxx_flags}") +unset(_save_c_flags) +unset(_save_cxx_flags) + +# +# Build PROJ unit tests +# +add_executable(proj_test_unit + main.cpp + basic_test.cpp) +target_link_libraries(proj_test_unit + gtest + ${PROJ_LIBRARIES}) +add_test(NAME proj_test_unit COMMAND proj_test_unit) |
