changed: support system installed gtest
This commit is contained in:
parent
6784897dcc
commit
6df2fd3084
|
@ -61,7 +61,6 @@ set(IFEM_INCLUDES
|
|||
${PROJECT_SOURCE_DIR}/src/Utility
|
||||
${PROJECT_SOURCE_DIR}/3rdparty
|
||||
${PROJECT_SOURCE_DIR}/3rdparty/expreval
|
||||
${PROJECT_SOURCE_DIR}/3rdparty/gtest/include
|
||||
${PROJECT_BINARY_DIR}
|
||||
)
|
||||
|
||||
|
@ -195,6 +194,7 @@ else()
|
|||
configure_file(cmake/Templates/IFEMConfig.cmake.in IFEMConfig.cmake @ONLY)
|
||||
install(FILES ${CMAKE_BINARY_DIR}/IFEMConfigVersion.cmake
|
||||
${CMAKE_BINARY_DIR}/IFEMConfig.cmake
|
||||
cmake/Modules/FindTestLib.cmake
|
||||
cmake/Scripts/CheckCommits.cmake
|
||||
cmake/Scripts/DownloadGTest.cmake
|
||||
cmake/Scripts/UseMultiArch.cmake
|
||||
|
|
|
@ -77,8 +77,7 @@ else()
|
|||
${IFEM_PATH}/src/LinAlg
|
||||
${IFEM_PATH}/src/SIM
|
||||
${IFEM_PATH}/src/Utility
|
||||
${IFEM_PATH}/3rdparty
|
||||
${IFEM_PATH}/3rdparty/gtest/include)
|
||||
${IFEM_PATH}/3rdparty)
|
||||
|
||||
find_library(IFEM_LIBRARIES
|
||||
NAMES IFEM
|
||||
|
@ -155,8 +154,5 @@ set(IFEM_CXX_FLAGS "${IFEM_CXX_FLAGS} -DReal=double")
|
|||
list(APPEND IFEM_DEFINITIONS -DReal=double)
|
||||
|
||||
set(IFEM_CONFIGURED 1)
|
||||
if(NOT IFEM_TESTING_INCLUDED)
|
||||
include(../Scripts/IFEMTesting)
|
||||
endif()
|
||||
|
||||
include(../Scripts/IFEMDoxy)
|
||||
|
|
|
@ -55,6 +55,7 @@ ENDIF(IFEM_WHOLE_PROG_OPTIM)
|
|||
FIND_PACKAGE(GoTools REQUIRED)
|
||||
FIND_PACKAGE(GoTrivariate REQUIRED)
|
||||
FIND_PACKAGE(ARPACK REQUIRED)
|
||||
find_package(TestLib REQUIRED)
|
||||
|
||||
set(CMAKE_CXX_STANDARD 17)
|
||||
set(CMAKE_CXX_STANDARD_REQUIRED ON)
|
||||
|
|
27
cmake/Modules/FindTestLib.cmake
Normal file
27
cmake/Modules/FindTestLib.cmake
Normal file
|
@ -0,0 +1,27 @@
|
|||
find_package(GTest QUIET)
|
||||
if(NOT TestLib_FOUND)
|
||||
if(GTest_FOUND)
|
||||
set(TESTLIB_LIBRARY GTest::GTest)
|
||||
else()
|
||||
find_package(Threads REQUIRED)
|
||||
if(IFEM_INTREE_BUILD OR IFEM_LIBRARY_BUILD OR IFEM_AS_SUBMODULE)
|
||||
add_subdirectory(${IFEM_PATH}/3rdparty/gtest gtest EXCLUDE_FROM_ALL)
|
||||
add_library(GTest::GTest UNKNOWN IMPORTED)
|
||||
set_target_properties(GTest::GTest PROPERTIES
|
||||
IMPORTED_LOCATION ${PROJECT_BINARY_DIR}/gtest/libgtest.a
|
||||
INTERFACE_LINK_LIBRARIES Threads::Threads
|
||||
INTERFACE_INCLUDE_DIRECTORIES ${IFEM_PATH}/3rdparty/gtest/include)
|
||||
add_dependencies(GTest::GTest gtest)
|
||||
else()
|
||||
include(DownloadGTest)
|
||||
endif()
|
||||
get_target_property(TESTLIB_LIBRARY GTest::GTest IMPORTED_LOCATION)
|
||||
endif()
|
||||
endif()
|
||||
|
||||
include(FindPackageHandleStandardArgs)
|
||||
find_package_handle_standard_args(TestLib DEFAULT_MSG
|
||||
TESTLIB_LIBRARY)
|
||||
if(TestLib_FOUND)
|
||||
set(GTest_FOUND CACHE BOOL "" FORCE)
|
||||
endif()
|
|
@ -25,8 +25,11 @@ set(GTEST_INCLUDE_DIRS ${source_dir}/googletest/include)
|
|||
# Library
|
||||
externalproject_get_property(googletest binary_dir)
|
||||
set(GTEST_LIBRARIES ${binary_dir}/googlemock/gtest/${CMAKE_FIND_LIBRARY_PREFIXES}gtest.a)
|
||||
add_library(gtest UNKNOWN IMPORTED)
|
||||
set_property(TARGET gtest PROPERTY IMPORTED_LOCATION
|
||||
${GTEST_LIBRARIES})
|
||||
add_library(GTest::GTest UNKNOWN IMPORTED)
|
||||
file(MAKE_DIRECTORY ${GTEST_INCLUDE_DIRS})
|
||||
set_target_properties(GTest::GTest PROPERTIES
|
||||
IMPORTED_LOCATION ${GTEST_LIBRARIES}
|
||||
INTERFACE_INCLUDE_DIRECTORIES ${GTEST_INCLUDE_DIRS}
|
||||
INTERFACE_LINK_LIBRARIES Threads::Threads)
|
||||
set_property(TARGET googletest PROPERTY EXCLUDE_FROM_ALL 1)
|
||||
add_dependencies(gtest googletest)
|
||||
add_dependencies(GTest::GTest googletest)
|
||||
|
|
|
@ -4,6 +4,11 @@ macro(IFEM_add_test_app path workdir name parallel)
|
|||
else()
|
||||
set(TEST_SRCS ${path})
|
||||
endif()
|
||||
if(IFEM_BUILD_TESTING)
|
||||
set(EXCL_ALL)
|
||||
else()
|
||||
set(EXCL_ALL EXCLUDE_FROM_ALL)
|
||||
endif()
|
||||
add_executable(${name}-test ${EXCL_ALL} ${IFEM_PATH}/src/IFEM-test.C ${TEST_SRCS})
|
||||
if(${parallel} GREATER 0)
|
||||
set_property(TARGET ${name}-test PROPERTY
|
||||
|
@ -14,7 +19,7 @@ macro(IFEM_add_test_app path workdir name parallel)
|
|||
WORKING_DIRECTORY ${workdir}
|
||||
NO_PRETTY_VALUES)
|
||||
list(APPEND TEST_APPS ${name}-test)
|
||||
target_link_libraries(${name}-test ${ARGN} gtest pthread)
|
||||
target_link_libraries(${name}-test GTest::GTest ${ARGN})
|
||||
endmacro()
|
||||
|
||||
macro(IFEM_add_unittests IFEM_PATH)
|
||||
|
@ -122,9 +127,6 @@ macro(add_check_target)
|
|||
if(IFEM_AS_SUBMODULE OR IFEM_LIBRARY_BUILD)
|
||||
ifem_add_unittests(${IFEM_PATH})
|
||||
endif()
|
||||
if(NOT TARGET gtest)
|
||||
add_subdirectory(${IFEM_PATH}/3rdparty/gtest gtest ${EXCL_ALL})
|
||||
endif()
|
||||
add_dependencies(check ${TEST_APPS})
|
||||
add_custom_target(testapps DEPENDS ${TEST_APPS})
|
||||
|
||||
|
@ -179,19 +181,7 @@ endif()
|
|||
set(MEMORYCHECK_COMMAND_OPTIONS "--leak-check=yes")
|
||||
include(CTest)
|
||||
|
||||
set(IFEM_TESTING_INCLUDED 1)
|
||||
if(IFEM_INTREE_BUILD)
|
||||
include_directories(${IFEM_PATH}/3rdparty/gtest/include)
|
||||
elseif(NOT IFEM_AS_SUBMODULE AND NOT IFEM_LIBRARY_BUILD
|
||||
AND NOT TARGET gtest)
|
||||
if (EXISTS ${PROJECT_SOURCE_DIR}/../gtest)
|
||||
add_subdirectory(${PROJECT_SOURCE_DIR}/../gtest gtest)
|
||||
include_directories(${PROJECT_SOURCE_DIR}/../gtest/include)
|
||||
else()
|
||||
include(DownloadGTest)
|
||||
include_directories(${GTEST_INCLUDE_DIRS})
|
||||
endif()
|
||||
endif()
|
||||
find_package(TestLib REQUIRED)
|
||||
|
||||
find_program(VTFLS_COMMAND vtfls)
|
||||
find_program(H5LS_COMMAND h5ls)
|
||||
|
@ -202,8 +192,4 @@ configure_file(${IFEM_CLANG_CHECK_TEST_SCRIPT} clang-check-test.sh @ONLY)
|
|||
configure_file(${IFEM_CPPCHECK_TEST_SCRIPT} cppcheck-test.sh @ONLY)
|
||||
configure_file(${IFEM_IOTEST_SCRIPT} iotest.sh @ONLY)
|
||||
|
||||
if(IFEM_BUILD_TESTING)
|
||||
set(EXCL_ALL)
|
||||
else()
|
||||
set(EXCL_ALL EXCLUDE_FROM_ALL)
|
||||
endif()
|
||||
set(IFEM_TESTING_INCLUDED 1 CACHE BOOL "" FORCE)
|
||||
|
|
|
@ -104,11 +104,12 @@ function build_module {
|
|||
test $? -eq 0 || exit 2
|
||||
njob=$(( $nproc / 2 ))
|
||||
nomp=$(( $nproc > 1 ? 2 : 1))
|
||||
CTEST_OP=${CTEST_OP:-Test}
|
||||
if test -z "$CTEST_CONFIGURATION"
|
||||
then
|
||||
OMP_NUM_THREADS=$nomp ctest -T Test --test-timeout 180 --no-compress-output -j$njob
|
||||
OMP_NUM_THREADS=$nomp ctest -T ${CTEST_OP} --test-timeout 180 --no-compress-output -j$njob
|
||||
else
|
||||
OMP_NUM_THREADS=$nomp ctest -C $CTEST_CONFIGURATION -T Test --test-timeout 180 --no-compress-output -j$njob
|
||||
OMP_NUM_THREADS=$nomp ctest -C $CTEST_CONFIGURATION -T ${CTEST_OP} --test-timeout 180 --no-compress-output -j$njob
|
||||
for log in Testing/Temporary/MemoryCheck.*.log
|
||||
do
|
||||
if ! grep -q "ERROR SUMMARY: 0 errors" $log
|
||||
|
|
Loading…
Reference in New Issue
Block a user