You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
|
- # Initialize ######################################################################################
-
- 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 ( GTest )
- If ( NOT "${GTest_FOUND}" )
- Return ( )
- EndIf ( )
-
- # Test Helper #####################################################################################
-
- File ( GLOB_RECURSE SOURCE_FILES ${CMAKE_CURRENT_SOURCE_DIR}/helper/*.cpp )
- Add_Library ( cppmicrohttpd-test-helper STATIC ${SOURCE_FILES} )
- Target_Include_Directories ( cppmicrohttpd-test-helper
- PUBLIC
- $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/helper>
- $<INSTALL_INTERFACE:${cppmicrohttpd_INSTALL_DIR_INCLUDE}> )
- Target_Include_Directories ( cppmicrohttpd-test-helper
- SYSTEM PUBLIC
- ${MICROHTTPD_INCLUDE_DIRS} )
- Target_Link_Libraries ( cppmicrohttpd-test-helper
- PUBLIC
- cppmicrohttpd-objects
- GMock::GMock )
-
- # Test ############################################################################################
-
- File ( GLOB_RECURSE CPPMICROHTTPD_TEST_HEADER_FILES
- ${CMAKE_CURRENT_SOURCE_DIR}/*.h )
- File ( GLOB_RECURSE CPPMICROHTTPD_TEST_INLINE_FILES
- ${CMAKE_CURRENT_SOURCE_DIR}/*.inl )
- File ( GLOB_RECURSE CPPMICROHTTPD_TEST_SOURCE_FILES
- RELATIVE ${CMAKE_CURRENT_SOURCE_DIR}
- ${CMAKE_CURRENT_SOURCE_DIR}/cppmicrohttpd/*.cpp )
-
- ForEach ( FILE IN LISTS CPPMICROHTTPD_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
- ${CPPMICROHTTPD_TEST_HEADER_FILES}
- ${CPPMICROHTTPD_TEST_INLINE_FILES}
- ${FILE} )
- Target_Link_Libraries ( ${TEST_NAME}
- PUBLIC
- cppmicrohttpd-test-helper
- GMock::Main )
-
- # pedantic
- 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 cppmicrohttpd )
- Else ( )
- Add_Test ( NAME ${TEST_NAME} COMMAND ${TEST_NAME} WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR} )
- EndIf ( )
- EndForEach ( )
|