From 33902a6793dd11f4ee64189a47d735a548948a7d Mon Sep 17 00:00:00 2001 From: John Ralls Date: Mon, 23 Mar 2020 17:52:26 -0700 Subject: [PATCH] Improve test building with the Xcode generator. Add CONFIGURATIONS keyword to unadorned tests, enables tests with multi-config generators. Add CONFIGURATION generator expression to libgtest.a and libgmock.a build directory specs when building with Xcode so that it can find them when building tests. --- common/cmake_modules/GncAddTest.cmake | 14 +++++++++++--- libgnucash/backend/xml/test/CMakeLists.txt | 1 + libgnucash/engine/test/CMakeLists.txt | 2 +- 3 files changed, 13 insertions(+), 4 deletions(-) diff --git a/common/cmake_modules/GncAddTest.cmake b/common/cmake_modules/GncAddTest.cmake index 31cc762170..cf75f23ec3 100644 --- a/common/cmake_modules/GncAddTest.cmake +++ b/common/cmake_modules/GncAddTest.cmake @@ -78,7 +78,7 @@ function(gnc_add_test _TARGET _SOURCE_FILES TEST_INCLUDE_VAR_NAME TEST_LIBS_VAR_ ) set_tests_properties(${_TARGET} PROPERTIES ENVIRONMENT "GNC_UNINSTALLED=YES;GNC_BUILDDIR=${CMAKE_BINARY_DIR};${ARGN}") else() - add_test(NAME ${_TARGET} COMMAND ${_TARGET}) + add_test(NAME ${_TARGET} COMMAND ${_TARGET} CONFIGURATIONS Debug;Release) set_tests_properties(${_TARGET} PROPERTIES ENVIRONMENT "GNC_UNINSTALLED=YES;GNC_BUILDDIR=${CMAKE_BINARY_DIR}") endif() add_dependencies(check ${_TARGET}) @@ -133,7 +133,11 @@ function(gnc_gtest_configure) "${GTEST_SRC_DIR}/src/gtest_main.cc" "${GTEST_SRC_DIR}/src/gtest-all.cc" PARENT_SCOPE) - set(GTEST_LIB "${CMAKE_BINARY_DIR}/common/test-core/libgtest.a" PARENT_SCOPE) + if (CMAKE_GENERATOR STREQUAL Xcode) + set(GTEST_LIB "${CMAKE_BINARY_DIR}/common/test-core/$/libgtest.a" PARENT_SCOPE) + else() + set(GTEST_LIB "${CMAKE_BINARY_DIR}/common/test-core/libgtest.a" PARENT_SCOPE) + endif() endif() else() message(FATAL_ERROR "GTEST not found. Please install it or set GTEST_ROOT or GMOCK_ROOT") @@ -163,7 +167,11 @@ function(gnc_gtest_configure) unset(GMOCK_SRC_DIR CACHE) else() set(GMOCK_SRC "${GMOCK_MAIN_SRC_DIR}/gmock-all.cc" PARENT_SCOPE) - set(GMOCK_LIB "${CMAKE_BINARY_DIR}/common/test-core/libgmock.a" PARENT_SCOPE) + if (CMAKE_GENERATOR STREQUAL Xcode) + set(GMOCK_LIB "${CMAKE_BINARY_DIR}/common/test-core/$/libgmock.a" PARENT_SCOPE) + else() + set(GMOCK_LIB "${CMAKE_BINARY_DIR}/common/test-core/libgmock.a" PARENT_SCOPE) + endif() endif() else() message(FATAL_ERROR "GMOCK not found. Please install it or set GMOCK_ROOT") diff --git a/libgnucash/backend/xml/test/CMakeLists.txt b/libgnucash/backend/xml/test/CMakeLists.txt index df1e599c2f..941e61828a 100644 --- a/libgnucash/backend/xml/test/CMakeLists.txt +++ b/libgnucash/backend/xml/test/CMakeLists.txt @@ -98,5 +98,6 @@ set(test-real-data-env add_test(NAME test-real-data COMMAND ${CMAKE_COMMAND} -E env ${SHELL} ${CMAKE_CURRENT_SOURCE_DIR}/test-real-data.sh + CONFIGURATIONS Debug;Release ) set_tests_properties(test-real-data PROPERTIES ENVIRONMENT "${test-real-data-env}") diff --git a/libgnucash/engine/test/CMakeLists.txt b/libgnucash/engine/test/CMakeLists.txt index 49d4b89f95..dea5049fb7 100644 --- a/libgnucash/engine/test/CMakeLists.txt +++ b/libgnucash/engine/test/CMakeLists.txt @@ -19,7 +19,7 @@ endmacro() add_executable(test-link EXCLUDE_FROM_ALL test-link.c) target_link_libraries(test-link gnc-core-utils) -add_test(NAME test-link COMMAND test-link) +add_test(NAME test-link COMMAND test-link CONFIGURATIONS Debug;Release) add_dependencies(check test-link) #################################################