diff --git a/.gitmodules b/.gitmodules index 19d788d..37e8830 100644 --- a/.gitmodules +++ b/.gitmodules @@ -1,3 +1,3 @@ [submodule "cmake/modules"] path = cmake/modules - url = https://git.bergmann89.de/cpp/CmakeModules.git + url = b3rgmann@git.bergmann89.de:cpp/CMakeModules.git diff --git a/CMakeLists.txt b/CMakeLists.txt index 6e565e2..95376c2 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1,63 +1,63 @@ # Initialize CMake ################################################################################ -CMake_Minimum_Required ( VERSION 3.12.0 FATAL_ERROR ) +CMake_Minimum_Required ( VERSION 3.12.0 FATAL_ERROR ) # Set CMAKE_BUILD_TYPE -If ( NOT CMAKE_BUILD_TYPE ) - Set ( CMAKE_BUILD_TYPE "Release" CACHE STRING "Choose the type of build!" FORCE ) -EndIf ( NOT CMAKE_BUILD_TYPE ) -Set_Property ( CACHE CMAKE_BUILD_TYPE PROPERTY STRINGS Debug Release RelWithDebInfo MinSizeRel ) +If ( NOT CMAKE_BUILD_TYPE ) + Set ( CMAKE_BUILD_TYPE "Release" CACHE STRING "Choose the type of build!" FORCE ) +EndIf ( NOT CMAKE_BUILD_TYPE ) +Set_Property ( CACHE CMAKE_BUILD_TYPE PROPERTY STRINGS Debug Release RelWithDebInfo MinSizeRel ) # Set CMAKE_MODULE_PATH -If ( EXISTS "${CMAKE_CURRENT_SOURCE_DIR}/cmake/" ) - Set ( CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} - "${CMAKE_CURRENT_SOURCE_DIR}/cmake/" ) -EndIf ( ) -If ( EXISTS "${CMAKE_CURRENT_SOURCE_DIR}/cmake/" ) - Set ( CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} - "${CMAKE_CURRENT_SOURCE_DIR}/cmake/modules" ) -EndIf ( ) +If ( EXISTS "${CMAKE_CURRENT_SOURCE_DIR}/cmake/" ) + Set ( CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} + "${CMAKE_CURRENT_SOURCE_DIR}/cmake/" ) +EndIf ( ) +If ( EXISTS "${CMAKE_CURRENT_SOURCE_DIR}/cmake/modules/cmake" ) + Set ( CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} + "${CMAKE_CURRENT_SOURCE_DIR}/cmake/modules/cmake" ) +EndIf ( ) # Project ######################################################################################### -Include ( GNUInstallDirs ) -Include ( ${CMAKE_CURRENT_SOURCE_DIR}/cmake/cppmp-options.cmake ) -Include ( ${CMAKE_CURRENT_SOURCE_DIR}/cmake/cppmp-const.cmake ) -Include ( ${CMAKE_CURRENT_SOURCE_DIR}/cmake/cppmp-var.cmake ) -Project ( ${CPPMP_PROJECT_NAME} - DESCRIPTION "${CPPMP_PROJECT_DESCRIPTION}" - VERSION "${CPPMP_VERSION}" ) -Include ( CTest ) +Include ( GNUInstallDirs ) +Include ( ${CMAKE_CURRENT_SOURCE_DIR}/cmake/cppmp-options.cmake ) +Include ( ${CMAKE_CURRENT_SOURCE_DIR}/cmake/cppmp-const.cmake ) +Include ( ${CMAKE_CURRENT_SOURCE_DIR}/cmake/cppmp-var.cmake ) +Project ( ${CPPMP_PROJECT_NAME} + DESCRIPTION "${CPPMP_PROJECT_DESCRIPTION}" + VERSION "${CPPMP_VERSION}" ) +Include ( CTest ) # Subdirectories -Add_SubDirectory ( ${CMAKE_CURRENT_SOURCE_DIR}/src ) -Add_SubDirectory ( ${CMAKE_CURRENT_SOURCE_DIR}/test ) +Add_SubDirectory ( ${CMAKE_CURRENT_SOURCE_DIR}/src ) +Add_SubDirectory ( ${CMAKE_CURRENT_SOURCE_DIR}/test ) # Install -If ( NOT CPPMP_HAS_EXPORT - OR NOT CPPMP_INSTALL_PACKAGE ) - Return ( ) -EndIf ( ) - -Include ( CMakePackageConfigHelpers ) -Write_Basic_Package_Version_File ( "${CMAKE_CURRENT_BINARY_DIR}/cmake/cppmp-config-version.cmake" - VERSION ${CPPMP_VERSION} - COMPATIBILITY AnyNewerVersion ) -Configure_File ( "${CMAKE_CURRENT_SOURCE_DIR}/cmake/cppmp-config.cmake" - "${CMAKE_CURRENT_BINARY_DIR}/cmake/cppmp-config.cmake" - @ONLY ) - -Set ( ConfigPackageLocation "${CPPMP_INSTALL_DIR_SHARE}/cmake" ) -Install ( EXPORT - cppmp - NAMESPACE - cppmp:: - DESTINATION - ${ConfigPackageLocation} ) -Install ( FILES +If ( NOT CPPMP_HAS_EXPORT + OR NOT CPPMP_INSTALL_PACKAGE ) + Return ( ) +EndIf ( ) + +Include ( CMakePackageConfigHelpers ) +Write_Basic_Package_Version_File ( "${CMAKE_CURRENT_BINARY_DIR}/cmake/cppmp-config-version.cmake" + VERSION ${CPPMP_VERSION} + COMPATIBILITY AnyNewerVersion ) +Configure_File ( "${CMAKE_CURRENT_SOURCE_DIR}/cmake/cppmp-config.cmake" "${CMAKE_CURRENT_BINARY_DIR}/cmake/cppmp-config.cmake" - "${CMAKE_CURRENT_BINARY_DIR}/cmake/cppmp-config-version.cmake" - DESTINATION - ${ConfigPackageLocation} - COMPONENT - Devel ) + @ONLY ) + +Set ( ConfigPackageLocation "${CPPMP_INSTALL_DIR_SHARE}/cmake" ) +Install ( EXPORT + cppmp + NAMESPACE + cppmp:: + DESTINATION + ${ConfigPackageLocation} ) +Install ( FILES + "${CMAKE_CURRENT_BINARY_DIR}/cmake/cppmp-config.cmake" + "${CMAKE_CURRENT_BINARY_DIR}/cmake/cppmp-config-version.cmake" + DESTINATION + ${ConfigPackageLocation} + COMPONENT + Devel ) diff --git a/README.md b/README.md new file mode 100644 index 0000000..680cf9f --- /dev/null +++ b/README.md @@ -0,0 +1,3 @@ +# cppmp + +C++ meta programming library. diff --git a/cmake/cppmp-const.cmake b/cmake/cppmp-const.cmake index a848bd1..1ac120f 100644 --- a/cmake/cppmp-const.cmake +++ b/cmake/cppmp-const.cmake @@ -1,28 +1,28 @@ # This file contains constant variables that are fixed to this project # Version -Set ( CPPMP_VERSION_MAJOR 1 ) -Set ( CPPMP_VERSION_MINOR 0 ) -Set ( CPPMP_VERSION_PATCH 0 ) -Set ( CPPMP_VERSION_BUILD 0 ) -Set ( CPPMP_VERSION_HASH "" ) -Set ( CPPMP_VERSION_BEHIND 0 ) -Set ( CPPMP_VERSION_DIRTY 0 ) +Set ( CPPMP_VERSION_MAJOR 1 ) +Set ( CPPMP_VERSION_MINOR 0 ) +Set ( CPPMP_VERSION_PATCH 0 ) +Set ( CPPMP_VERSION_BUILD 0 ) +Set ( CPPMP_VERSION_HASH "" ) +Set ( CPPMP_VERSION_BEHIND 0 ) +Set ( CPPMP_VERSION_DIRTY 0 ) # Names -Set ( CPPMP_PROJECT_NAME "cppmp" ) -Set ( CPPMP_PROJECT_DESCRIPTION "Meta programming library" ) +Set ( CPPMP_PROJECT_NAME "cppmp" ) +Set ( CPPMP_PROJECT_DESCRIPTION "C++ meta programming library" ) # Include generated variables for further usage -Include ( ${CMAKE_CURRENT_LIST_DIR}/cppmp-var.cmake ) +Include ( ${CMAKE_CURRENT_LIST_DIR}/cppmp-var.cmake ) # Install directories -Set ( CPPMP_INSTALL_DIR_INCLUDE "${CMAKE_INSTALL_INCLUDEDIR}/${CPPMP_NAME}" ) -Set ( CPPMP_INSTALL_DIR_LIB "${CMAKE_INSTALL_LIBDIR}" ) -Set ( CPPMP_INSTALL_DIR_SHARE "${CMAKE_INSTALL_DATAROOTDIR}/${CPPMP_NAME}" ) +Set ( CPPMP_INSTALL_DIR_INCLUDE "${CMAKE_INSTALL_INCLUDEDIR}/${CPPMP_NAME}" ) +Set ( CPPMP_INSTALL_DIR_LIB "${CMAKE_INSTALL_LIBDIR}" ) +Set ( CPPMP_INSTALL_DIR_SHARE "${CMAKE_INSTALL_DATAROOTDIR}/${CPPMP_NAME}" ) # C Standard -Set ( CMAKE_C_STANDARD 11 ) -Set ( CMAKE_CXX_STANDARD 14 ) -Set ( CMAKE_C_STANDARD_REQUIRED ON ) -Set ( CMAKE_CXX_STANDARD_REQUIRED ON ) +Set ( CMAKE_C_STANDARD 11 ) +Set ( CMAKE_CXX_STANDARD 14 ) +Set ( CMAKE_C_STANDARD_REQUIRED ON ) +Set ( CMAKE_CXX_STANDARD_REQUIRED ON ) diff --git a/cmake/cppmp-options.cmake b/cmake/cppmp-options.cmake index 997b964..204e456 100644 --- a/cmake/cppmp-options.cmake +++ b/cmake/cppmp-options.cmake @@ -1,11 +1,11 @@ # This file contains options that can be passed to the cmake command -Option ( CPPMP_INSTALL_HEADER - "Install headers of cppmp." - ON ) -Option ( CPPMP_INSTALL_PACKAGE - "Install the cmake package of cppmp." - ON ) -Option ( CPPMP_USE_GIT_VERSION - "Read the git tags to get the version of cppmp" - ON ) +Option ( CPPMP_INSTALL_HEADER + "Install headers of cppmp." + ON ) +Option ( CPPMP_INSTALL_PACKAGE + "Install the cmake package of cppmp." + ON ) +Option ( CPPMP_USE_GIT_VERSION + "Read the git tags to get the version of cppmp" + ON ) diff --git a/cmake/cppmp-var.cmake b/cmake/cppmp-var.cmake index db3db04..fdad17e 100644 --- a/cmake/cppmp-var.cmake +++ b/cmake/cppmp-var.cmake @@ -1,26 +1,32 @@ # This file contains generated variables that are needed for the project # Git Version -If ( CPPMP_USE_GIT_VERSION ) - Include ( git_helper OPTIONAL RESULT_VARIABLE HAS_GIT_HELPER ) - If ( HAS_GIT_HELPER ) - GitGetVersion ( ${CMAKE_CURRENT_LIST_DIR}/.. - CPPMP_VERSION_MAJOR - CPPMP_VERSION_MINOR - CPPMP_VERSION_PATCH - CPPMP_VERSION_BUILD - CPPMP_VERSION_HASH - CPPMP_VERSION_BEHIND - CPPMP_VERSION_DIRTY ) - EndIf ( ) -EndIf ( ) +If ( CPPMP_USE_GIT_VERSION ) + Include ( git_helper OPTIONAL RESULT_VARIABLE HAS_GIT_HELPER ) + If ( HAS_GIT_HELPER ) + GitGetVersion ( ${CMAKE_CURRENT_LIST_DIR}/.. + CPPMP_VERSION_MAJOR + CPPMP_VERSION_MINOR + CPPMP_VERSION_PATCH + CPPMP_VERSION_BUILD + CPPMP_VERSION_HASH + CPPMP_VERSION_BEHIND + CPPMP_VERSION_DIRTY ) + EndIf ( ) +EndIf ( ) # Strings -Set ( CPPMP_VERSION_SHORT "${CPPMP_VERSION_MAJOR}.${CPPMP_VERSION_MINOR}" ) -Set ( CPPMP_VERSION "${CPPMP_VERSION_SHORT}.${CPPMP_VERSION_PATCH}.${CPPMP_VERSION_BUILD}" ) -Set ( CPPMP_VERSION_COMPLETE "${CPPMP_VERSION}" ) -Set ( CPPMP_NAME "${CPPMP_PROJECT_NAME}-${CPPMP_VERSION_SHORT}" ) -Set ( CPPMP_OUTPUTNAME "${CPPMP_PROJECT_NAME}" ) -If ( CPPMP_VERSION_BEHIND ) - Set ( CPPMP_VERSION_COMPLETE "${CPPMP_VERSION_COMPLETE}+${CPPMP_VERSION_BEHIND}" ) -EndIf ( ) +Set ( CPPMP_VERSION_SHORT + "${CPPMP_VERSION_MAJOR}.${CPPMP_VERSION_MINOR}" ) +Set ( CPPMP_VERSION + "${CPPMP_VERSION_SHORT}.${CPPMP_VERSION_PATCH}.${CPPMP_VERSION_BUILD}" ) +Set ( CPPMP_VERSION_COMPLETE + "${CPPMP_VERSION}" ) +Set ( CPPMP_NAME + "${CPPMP_PROJECT_NAME}-${CPPMP_VERSION_SHORT}" ) +Set ( CPPMP_OUTPUTNAME + "${CPPMP_PROJECT_NAME}" ) +If ( CPPMP_VERSION_BEHIND ) + Set ( CPPMP_VERSION_COMPLETE + "${CPPMP_VERSION_COMPLETE}+${CPPMP_VERSION_BEHIND}" ) +EndIf ( ) diff --git a/cmake/modules b/cmake/modules index ebbae4f..94b9877 160000 --- a/cmake/modules +++ b/cmake/modules @@ -1 +1 @@ -Subproject commit ebbae4fbb42d671331b4c6e9d1d142f41dcacc1b +Subproject commit 94b9877d65e46c9d8169ebc46f163d02e4d9dcf3 diff --git a/include/cppmp.h b/include/cppmp.h index e0a0150..00f2960 100644 --- a/include/cppmp.h +++ b/include/cppmp.h @@ -1,5 +1,6 @@ #pragma once +#include "cppmp/config.h" #include "cppmp/core.h" #include "cppmp/misc.h" #include "cppmp/traits.h" diff --git a/include/cppmp/core/checker.h b/include/cppmp/core/checker.h index 7595806..1e8bf1d 100644 --- a/include/cppmp/core/checker.h +++ b/include/cppmp/core/checker.h @@ -1,8 +1,8 @@ #pragma once -#include "types.h" -#include "../config.h" +#include +#include "types.h" #define cppmp_define_checker(name) \ template \ diff --git a/include/cppmp/core/conditionals.h b/include/cppmp/core/conditionals.h index 82ef7a0..321e97a 100644 --- a/include/cppmp/core/conditionals.h +++ b/include/cppmp/core/conditionals.h @@ -1,5 +1,7 @@ #pragma once +#include + #include "types.h" namespace cppmp diff --git a/include/cppmp/core/constants.h b/include/cppmp/core/constants.h index 34e8cb3..72aad54 100644 --- a/include/cppmp/core/constants.h +++ b/include/cppmp/core/constants.h @@ -1,5 +1,7 @@ #pragma once +#include + #include "types.h" namespace cppmp diff --git a/include/cppmp/core/modifier.h b/include/cppmp/core/modifier.h index be37d2c..6f980fb 100644 --- a/include/cppmp/core/modifier.h +++ b/include/cppmp/core/modifier.h @@ -1,5 +1,7 @@ #pragma once +#include + #include #define cppmp_define_modifier(name) \ diff --git a/include/cppmp/core/types.h b/include/cppmp/core/types.h index 4f2f8ff..9ce00a3 100644 --- a/include/cppmp/core/types.h +++ b/include/cppmp/core/types.h @@ -3,6 +3,8 @@ #include #include +#include + namespace cppmp { diff --git a/include/cppmp/misc/generic_predicate.h b/include/cppmp/misc/generic_predicate.h index 0aec78f..12edc22 100644 --- a/include/cppmp/misc/generic_predicate.h +++ b/include/cppmp/misc/generic_predicate.h @@ -1,6 +1,8 @@ #pragma once #include + +#include #include #include diff --git a/include/cppmp/misc/getter.h b/include/cppmp/misc/getter.h index 0e40242..148db3f 100644 --- a/include/cppmp/misc/getter.h +++ b/include/cppmp/misc/getter.h @@ -1,5 +1,7 @@ #pragma once +#include + #include "generic_predicate.h" namespace cppmp diff --git a/include/cppmp/misc/setter.h b/include/cppmp/misc/setter.h index 24e0333..f0e9b09 100644 --- a/include/cppmp/misc/setter.h +++ b/include/cppmp/misc/setter.h @@ -1,5 +1,7 @@ #pragma once +#include + #include "generic_predicate.h" namespace cppmp diff --git a/include/cppmp/traits/lambda_traits.h b/include/cppmp/traits/lambda_traits.h index 66886b3..157d3ef 100644 --- a/include/cppmp/traits/lambda_traits.h +++ b/include/cppmp/traits/lambda_traits.h @@ -1,5 +1,7 @@ #pragma once +#include + namespace cppmp { diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index 2bc2e04..d8b290d 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -1,30 +1,30 @@ # Initialize ###################################################################################### -Include ( cotire OPTIONAL RESULT_VARIABLE HAS_COTIRE ) -Include ( pedantic OPTIONAL RESULT_VARIABLE HAS_PEDANTIC ) -Include ( strip_symbols OPTIONAL RESULT_VARIABLE HAS_STRIP_SYMBOLS ) +Include ( cotire OPTIONAL RESULT_VARIABLE HAS_COTIRE ) +Include ( pedantic OPTIONAL RESULT_VARIABLE HAS_PEDANTIC ) +Include ( strip_symbols OPTIONAL RESULT_VARIABLE HAS_STRIP_SYMBOLS ) # Interface Library ############################################################################### -Set ( CPPMP_INCLUDE_DIR ${CMAKE_CURRENT_SOURCE_DIR}/../include ) -Add_Library ( cppmp INTERFACE ) -Target_Include_Directories ( cppmp - INTERFACE - $ - $ ) +Set ( CPPMP_INCLUDE_DIR ${CMAKE_CURRENT_SOURCE_DIR}/../include ) +Add_Library ( cppmp INTERFACE ) +Target_Include_Directories ( cppmp + INTERFACE + $ + $ ) # Install ######################################################################################### -Set ( CPPMP_HAS_EXPORT False PARENT_SCOPE ) +Set ( CPPMP_HAS_EXPORT False PARENT_SCOPE ) # Header -If ( CPPMP_INSTALL_HEADER ) - Set ( CPPMP_HAS_EXPORT True PARENT_SCOPE ) - Install ( FILES ${CPPMP_INCLUDE_DIR}/cppmp.h - DESTINATION ${CPPMP_INSTALL_DIR_INCLUDE} ) - Install ( DIRECTORY ${CPPMP_INCLUDE_DIR}/cppmp - DESTINATION ${CPPMP_INSTALL_DIR_INCLUDE} ) - Install ( TARGETS cppmp - EXPORT cppmp - DESTINATION ${CPPMP_INSTALL_DIR_INCLUDE} ) -EndIf ( ) +If ( CPPMP_INSTALL_HEADER ) + Set ( CPPMP_HAS_EXPORT True PARENT_SCOPE ) + Install ( FILES ${CPPMP_INCLUDE_DIR}/cppmp.h + DESTINATION ${CPPMP_INSTALL_DIR_INCLUDE} ) + Install ( DIRECTORY ${CPPMP_INCLUDE_DIR}/cppmp + DESTINATION ${CPPMP_INSTALL_DIR_INCLUDE} ) + Install ( TARGETS cppmp + EXPORT cppmp + DESTINATION ${CPPMP_INSTALL_DIR_INCLUDE} ) +EndIf ( ) diff --git a/test/CMakeLists.txt b/test/CMakeLists.txt index 868e672..72731ac 100644 --- a/test/CMakeLists.txt +++ b/test/CMakeLists.txt @@ -1,52 +1,59 @@ # Initialize ###################################################################################### -Include ( cotire OPTIONAL RESULT_VARIABLE HAS_COTIRE ) -Include ( pedantic OPTIONAL RESULT_VARIABLE HAS_PEDANTIC ) -Include ( cmake_tests OPTIONAL RESULT_VARIABLE HAS_CMAKE_TESTS ) +Include ( cotire OPTIONAL RESULT_VARIABLE HAS_COTIRE ) +Include ( pedantic OPTIONAL RESULT_VARIABLE HAS_PEDANTIC ) +Include ( cmake_tests OPTIONAL RESULT_VARIABLE HAS_CMAKE_TESTS ) + +Find_Package ( Sanitizers QUIET ) # Test ############################################################################################ -Find_Package ( GTest ) -If ( NOT "${GTest_FOUND}" ) - Return ( ) -EndIf ( ) +Find_Package ( GTest ) +If ( NOT "${GTest_FOUND}" ) + Return ( ) +EndIf ( ) -File ( GLOB_RECURSE CPPMP_TEST_HEADER_FILES - ${CMAKE_CURRENT_SOURCE_DIR}/*.h ) -File ( GLOB_RECURSE CPPMP_TEST_INLINE_FILES - ${CMAKE_CURRENT_SOURCE_DIR}/*.inl ) -File ( GLOB_RECURSE CPPMP_TEST_SOURCE_FILES - RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} - ${CMAKE_CURRENT_SOURCE_DIR}/*.cpp ) +File ( GLOB_RECURSE CPPMP_TEST_HEADER_FILES + ${CMAKE_CURRENT_SOURCE_DIR}/*.h ) +File ( GLOB_RECURSE CPPMP_TEST_INLINE_FILES + ${CMAKE_CURRENT_SOURCE_DIR}/*.inl ) +File ( GLOB_RECURSE CPPMP_TEST_SOURCE_FILES + RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} + ${CMAKE_CURRENT_SOURCE_DIR}/*.cpp ) -ForEach ( FILE IN LISTS CPPMP_TEST_SOURCE_FILES ) +ForEach ( FILE IN LISTS CPPMP_TEST_SOURCE_FILES ) # add test - Get_Filename_Component ( TEST_DIR ${FILE} DIRECTORY ) - Get_Filename_Component ( TEST_NAME ${FILE} NAME_WE ) - Set ( TEST_NAME "${TEST_DIR}/${TEST_NAME}" ) - String ( REPLACE "\\" "-" TEST_NAME "${TEST_NAME}" ) - String ( REPLACE "/" "-" TEST_NAME "${TEST_NAME}" ) - String ( REPLACE "_" "-" TEST_NAME "${TEST_NAME}" ) - Set ( TEST_NAME "test-${TEST_NAME}" ) - Add_Executable ( ${TEST_NAME} - EXCLUDE_FROM_ALL - ${CPPMP_TEST_HEADER_FILES} - ${CPPMP_TEST_INLINE_FILES} - ${FILE} ) - Target_Link_Libraries ( ${TEST_NAME} - PUBLIC - cppmp - GTest::Main ) + Get_Filename_Component ( TEST_DIR ${FILE} DIRECTORY ) + Get_Filename_Component ( TEST_NAME ${FILE} NAME_WE ) + Set ( TEST_NAME "${TEST_DIR}/${TEST_NAME}" ) + String ( REPLACE "\\" "-" TEST_NAME "${TEST_NAME}" ) + String ( REPLACE "/" "-" TEST_NAME "${TEST_NAME}" ) + String ( REPLACE "_" "-" TEST_NAME "${TEST_NAME}" ) + Set ( TEST_NAME "test-${TEST_NAME}" ) + Add_Executable ( ${TEST_NAME} + EXCLUDE_FROM_ALL + ${CPPMP_TEST_HEADER_FILES} + ${CPPMP_TEST_INLINE_FILES} + ${FILE} ) + Target_Link_Libraries ( ${TEST_NAME} + PUBLIC + cppmp + GTest::Main ) + + # Sanitizers + If ( Sanitizers_FOUND ) + Add_Sanitizers ( ${TEST_NAME} ) + EndIf ( ) # pedantic - If ( HAS_PEDANTIC ) - Pedantic_Apply_Flags_Target ( ${TEST_NAME} ALL ) - EndIf ( ) + If ( HAS_PEDANTIC ) + Pedantic_Apply_Flags_Target ( ${TEST_NAME} ALL ) + EndIf ( ) # test - If ( HAS_CMAKE_TESTS ) - Add_CMake_Test ( NAME ${TEST_NAME} TARGET ${TEST_NAME} GROUP cppmp ) - Else ( ) - Add_Test ( NAME ${TEST_NAME} COMMAND ${TEST_NAME} WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR} ) - EndIf ( ) -EndForEach ( ) + If ( HAS_CMAKE_TESTS ) + Add_CMake_Test ( NAME ${TEST_NAME} TARGET ${TEST_NAME} GROUP cppmp ) + Else ( ) + Add_Test ( NAME ${TEST_NAME} COMMAND ${TEST_NAME} WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR} ) + EndIf ( ) +EndForEach ( )