# 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 $ $ ) 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 ( )