gnucash maint: Improve test building with the Xcode generator.
John Ralls
jralls at code.gnucash.org
Mon Mar 23 20:56:41 EDT 2020
Updated via https://github.com/Gnucash/gnucash/commit/33902a67 (commit)
from https://github.com/Gnucash/gnucash/commit/8fc901fb (commit)
commit 33902a6793dd11f4ee64189a47d735a548948a7d
Author: John Ralls <jralls at ceridwen.us>
Date: Mon Mar 23 17:52:26 2020 -0700
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.
diff --git a/common/cmake_modules/GncAddTest.cmake b/common/cmake_modules/GncAddTest.cmake
index 31cc76217..cf75f23ec 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/$<CONFIGURATION>/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/$<CONFIGURATION>/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 df1e599c2..941e61828 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 49d4b89f9..dea5049fb 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)
#################################################
Summary of changes:
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(-)
More information about the gnucash-changes
mailing list