diff --git a/hueplusplus/test/CMakeLists.txt b/hueplusplus/test/CMakeLists.txt index 081db63..2df4ba7 100755 --- a/hueplusplus/test/CMakeLists.txt +++ b/hueplusplus/test/CMakeLists.txt @@ -49,36 +49,42 @@ add_custom_target("unittest" COMMAND "${CMAKE_BINARY_DIR}/hueplusplus/test/test_HuePlusPlus" ) -# GCov -include(CodeCoverage.cmake) -add_executable(testcov_HuePlusPlus ${TEST_SOURCES} ${hueplusplus_SOURCES}) -target_link_libraries(testcov_HuePlusPlus gtest gmock) -# prevent Main.cpp from defining main() -target_compile_definitions(testcov_HuePlusPlus PUBLIC MAIN_CPP_NO_MAIN_FUNCTION) -target_include_directories(testcov_HuePlusPlus PUBLIC ${GTest_INCLUDE_DIRS}) -target_include_directories(testcov_HuePlusPlus PUBLIC ${HuePlusPlus_INCLUDE_DIR}) -set_property(TARGET testcov_HuePlusPlus PROPERTY CXX_STANDARD 14) -set_property(TARGET testcov_HuePlusPlus PROPERTY CXX_EXTENSIONS OFF) -# this will be already done by APPEND_COVERAGE_COMPILER_FLAGS() -#set_target_properties( -# testcov_HuePlusPlus PROPERTIES -# COMPILE_FLAGS "-O0 -g -fprofile-arcs -ftest-coverage" -#) -# Normally this would be -lgcov, but on mac only -Lgcov works -#set_target_properties( -# testcov_HuePlusPlus PROPERTIES -# LINK_FLAGS "-O0 -g -Lgcov -fprofile-arcs -ftest-coverage" -#) -set(COVERAGE_EXCLUDES - '/usr/*' # unix - '*/build/*' - '*/json*' - '*/test/*' - '*/v1/*' # iOS -) -APPEND_COVERAGE_COMPILER_FLAGS() -SETUP_TARGET_FOR_COVERAGE( - NAME "coveragetest" - EXECUTABLE testcov_HuePlusPlus - DEPENDENCIES testcov_HuePlusPlus -) +# Check for prerequisites +find_program( GCOV_PATH gcov ) +find_program( LCOV_PATH lcov ) + +if(LCOV_PATH AND GCOV_PATH) + # GCov + include(CodeCoverage.cmake) + add_executable(testcov_HuePlusPlus ${TEST_SOURCES} ${hueplusplus_SOURCES}) + target_link_libraries(testcov_HuePlusPlus gtest gmock) + # prevent Main.cpp from defining main() + target_compile_definitions(testcov_HuePlusPlus PUBLIC MAIN_CPP_NO_MAIN_FUNCTION) + target_include_directories(testcov_HuePlusPlus PUBLIC ${GTest_INCLUDE_DIRS}) + target_include_directories(testcov_HuePlusPlus PUBLIC ${HuePlusPlus_INCLUDE_DIR}) + set_property(TARGET testcov_HuePlusPlus PROPERTY CXX_STANDARD 14) + set_property(TARGET testcov_HuePlusPlus PROPERTY CXX_EXTENSIONS OFF) + # this will be already done by APPEND_COVERAGE_COMPILER_FLAGS() + #set_target_properties( + # testcov_HuePlusPlus PROPERTIES + # COMPILE_FLAGS "-O0 -g -fprofile-arcs -ftest-coverage" + #) + # Normally this would be -lgcov, but on mac only -Lgcov works + #set_target_properties( + # testcov_HuePlusPlus PROPERTIES + # LINK_FLAGS "-O0 -g -Lgcov -fprofile-arcs -ftest-coverage" + #) + set(COVERAGE_EXCLUDES + '/usr/*' # unix + '*/build/*' + '*/json*' + '*/test/*' + '*/v1/*' # iOS + ) + APPEND_COVERAGE_COMPILER_FLAGS() + SETUP_TARGET_FOR_COVERAGE( + NAME "coveragetest" + EXECUTABLE testcov_HuePlusPlus + DEPENDENCIES testcov_HuePlusPlus + ) +endif()