Skip to content
Snippets Groups Projects
Commit 7b2fafac authored by Marc-Olivier Andrez's avatar Marc-Olivier Andrez
Browse files

build: simplify management of dependencies on object libraries in CMake `gtest` function

This commits changes the `gtest` function to `target_add_libraries`
library object targets `${lib}` directly instead of
`$<TARGET_OBJECTS:${lib}>`. As a consequence, the
`target_include_directories` from the object target `${lib}` are
also passed to the target to compile and including them in the caller of
`gtest` is not needed anymore.
parent 48bbbaad
No related branches found
No related tags found
1 merge request!250build: simplify management of dependencies on object libraries in CMake `gtest` function
Pipeline #129465 failed
...@@ -92,24 +92,18 @@ endfunction() ...@@ -92,24 +92,18 @@ endfunction()
function(gtest target test_source_files linktarget) function(gtest target test_source_files linktarget)
if (BUILD_TESTS) if (BUILD_TESTS)
unset(libs)
FOREACH (lib ${linktarget}) FOREACH (lib ${linktarget})
if (NOT ${lib} STREQUAL "") if (NOT ${lib} STREQUAL "")
get_target_property(target_type ${lib} TYPE) list(APPEND libs "${lib}")
if (target_type STREQUAL "OBJECT_LIBRARY")
list(APPEND OBJECT "$<TARGET_OBJECTS:${lib}>")
else ()
list(APPEND libs "${lib}")
endif ()
endif () endif ()
ENDFOREACH () ENDFOREACH ()
add_executable(test-${target} ${test_source_files} ${OBJECT}) add_executable(test-${target} ${test_source_files})
if (NOT ${libs} STREQUAL "") if (libs)
target_link_libraries(test-${target} ${libs}) target_link_libraries(test-${target} ${libs})
endif () endif ()
target_link_libraries(test-${target} ${GTEST_LIBS} ${CMAKE_THREAD_LIBS_INIT}) target_link_libraries(test-${target} ${GTEST_LIBS} ${CMAKE_THREAD_LIBS_INIT})
GET_PROPERTY(ASAPO_COMMON_IO_LIBRARIES GLOBAL PROPERTY ASAPO_COMMON_IO_LIBRARIES) GET_PROPERTY(ASAPO_COMMON_IO_LIBRARIES GLOBAL PROPERTY ASAPO_COMMON_IO_LIBRARIES)
......
...@@ -17,5 +17,4 @@ target_include_directories(${TARGET_NAME} PUBLIC ${ASAPO_CXX_COMMON_INCLUDE_DIR} ...@@ -17,5 +17,4 @@ target_include_directories(${TARGET_NAME} PUBLIC ${ASAPO_CXX_COMMON_INCLUDE_DIR}
set(TEST_SOURCE_FILES ../../unittests/data_structs/test_data_structs.cpp) set(TEST_SOURCE_FILES ../../unittests/data_structs/test_data_structs.cpp)
set(TEST_LIBRARIES "${TARGET_NAME};json_parser;system_io") set(TEST_LIBRARIES "${TARGET_NAME};json_parser;system_io")
include_directories(${ASAPO_CXX_COMMON_INCLUDE_DIR})
gtest(${TARGET_NAME} "${TEST_SOURCE_FILES}" "${TEST_LIBRARIES}") gtest(${TARGET_NAME} "${TEST_SOURCE_FILES}" "${TEST_LIBRARIES}")
...@@ -26,6 +26,4 @@ target_compile_definitions (${TARGET_NAME} PRIVATE "${MONGOC_STATIC_DEFINITIONS} ...@@ -26,6 +26,4 @@ target_compile_definitions (${TARGET_NAME} PRIVATE "${MONGOC_STATIC_DEFINITIONS}
set(TEST_SOURCE_FILES ../../unittests/database/test_encoding.cpp) set(TEST_SOURCE_FILES ../../unittests/database/test_encoding.cpp)
set(TEST_LIBRARIES "${TARGET_NAME}") set(TEST_LIBRARIES "${TARGET_NAME}")
include_directories(${ASAPO_CXX_COMMON_INCLUDE_DIR})
gtest(${TARGET_NAME} "${TEST_SOURCE_FILES}" "${TEST_LIBRARIES}" "nocov") gtest(${TARGET_NAME} "${TEST_SOURCE_FILES}" "${TEST_LIBRARIES}" "nocov")
...@@ -8,8 +8,8 @@ set(SOURCE_FILES ...@@ -8,8 +8,8 @@ set(SOURCE_FILES
################################ ################################
add_library(${TARGET_NAME} OBJECT ${SOURCE_FILES}) add_library(${TARGET_NAME} OBJECT ${SOURCE_FILES})
target_include_directories(${TARGET_NAME} PUBLIC ${ASAPO_CXX_COMMON_INCLUDE_DIR} target_include_directories(${TARGET_NAME} PUBLIC ${ASAPO_CXX_COMMON_INCLUDE_DIR})
${CMAKE_SOURCE_DIR}/3d_party/rapidjson/include) target_include_directories(${TARGET_NAME} SYSTEM PUBLIC ${CMAKE_SOURCE_DIR}/3d_party/rapidjson/include)
################################ ################################
# Testing # Testing
...@@ -19,7 +19,4 @@ target_include_directories(${TARGET_NAME} PUBLIC ${ASAPO_CXX_COMMON_INCLUDE_DIR} ...@@ -19,7 +19,4 @@ target_include_directories(${TARGET_NAME} PUBLIC ${ASAPO_CXX_COMMON_INCLUDE_DIR}
set(TEST_SOURCE_FILES ../../unittests/json_parser/test_json_parser.cpp) set(TEST_SOURCE_FILES ../../unittests/json_parser/test_json_parser.cpp)
set(TEST_LIBRARIES "${TARGET_NAME};system_io") set(TEST_LIBRARIES "${TARGET_NAME};system_io")
include_directories(${ASAPO_CXX_COMMON_INCLUDE_DIR})
include_directories(SYSTEM ${CMAKE_SOURCE_DIR}/3d_party/rapidjson/include)
gtest(${TARGET_NAME} "${TEST_SOURCE_FILES}" "${TEST_LIBRARIES}") gtest(${TARGET_NAME} "${TEST_SOURCE_FILES}" "${TEST_LIBRARIES}")
...@@ -22,6 +22,4 @@ set(TEST_SOURCE_FILES ../../unittests/logger/test_logger.cpp ...@@ -22,6 +22,4 @@ set(TEST_SOURCE_FILES ../../unittests/logger/test_logger.cpp
link_libraries(CURL::libcurl ${CMAKE_THREAD_LIBS_INIT}) link_libraries(CURL::libcurl ${CMAKE_THREAD_LIBS_INIT})
set(TEST_LIBRARIES "${TARGET_NAME};curl_http_client;system_io") set(TEST_LIBRARIES "${TARGET_NAME};curl_http_client;system_io")
include_directories(${ASAPO_CXX_COMMON_INCLUDE_DIR})
include_directories(SYSTEM ${CMAKE_SOURCE_DIR}/3d_party/spd_log/include)
gtest(${TARGET_NAME} "${TEST_SOURCE_FILES}" "${TEST_LIBRARIES}") gtest(${TARGET_NAME} "${TEST_SOURCE_FILES}" "${TEST_LIBRARIES}")
...@@ -21,5 +21,4 @@ set(TEST_SOURCE_FILES ../../unittests/request/test_request_pool.cpp ...@@ -21,5 +21,4 @@ set(TEST_SOURCE_FILES ../../unittests/request/test_request_pool.cpp
link_libraries(CURL::libcurl ${CMAKE_THREAD_LIBS_INIT} ) link_libraries(CURL::libcurl ${CMAKE_THREAD_LIBS_INIT} )
set(TEST_LIBRARIES "${TARGET_NAME};system_io;logger;curl_http_client") set(TEST_LIBRARIES "${TARGET_NAME};system_io;logger;curl_http_client")
include_directories(${ASAPO_CXX_COMMON_INCLUDE_DIR})
gtest(${TARGET_NAME} "${TEST_SOURCE_FILES}" "${TEST_LIBRARIES}") gtest(${TARGET_NAME} "${TEST_SOURCE_FILES}" "${TEST_LIBRARIES}")
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment