@@ -10,14 +10,24 @@ project(
1010 DESCRIPTION "Simple C++ wrapper to pthread functions (${GIT_LOG} )" )
1111
1212option (BUILD_TESTS "enable/disable tests (default is enabled)" ON )
13- set (CMAKE_CXX_STANDARD 11 )
13+ option (GCOV "Activate GCOV options" )
1414
15- configure_file (src/config.h.in ${CMAKE_CURRENT_SOURCE_DIR} /src/config.h)
15+ if ( GCOV )
16+ if ("${CMAKE_CXX_COMPILER_ID} " STREQUAL "GNU" )
17+ message (STATUS "Setting GCOV compiler options" )
18+ add_compile_options (--coverage)
19+ else ()
20+ message (SEND_ERROR "The GCOV option is only supported when using GNU..." )
21+ endif ()
22+ endif ()
23+
24+ find_package (GTestExt PATHS cmake)
1625
17- # this works because we've extended CMAKE_MODULE_PATH
18- # uncomment if you have a conanfile.txt and run 'conan install ...' include(conan_paths)
19- #find_package(Git CONFIG)
20- #find_package(Conan)
26+ # This part MUST be executed before the loading of the CMake package
27+ set (SONAR_PROPERTIES_FILE ${CMAKE_CURRENT_BINARY_DIR} /sonar-project.properties)
28+ message (STATUS "Generating SONAR properties file ${SONAR_PROPERTIES_FILE} " )
29+ configure_file (${CMAKE_CURRENT_LIST_DIR} /sonar-project.properties.in ${SONAR_PROPERTIES_FILE} )
30+ find_package (SonarCloud PATHS cmake)
2131
2232# main targets --------------------------------------------------
2333#
3545 endif ()
3646endif ()
3747
48+ configure_file (src/config.h.in ${CMAKE_CURRENT_SOURCE_DIR} /src/config.h)
49+
3850# project's public headers
3951include_directories (include src)
4052
@@ -48,6 +60,9 @@ set(PTHREAD_SOURCE_CODE
4860 src/thread.cpp
4961 src/mutex.cpp
5062 )
63+
64+ set (CMAKE_CXX_STANDARD 11)
65+
5166add_library (cpp-pthread-static STATIC ${PTHREAD_SOURCE_CODE} )
5267target_link_libraries (cpp-pthread-static pthread)
5368set_target_properties (cpp-pthread-static PROPERTIES OUTPUT_NAME cpp-pthread)
@@ -60,23 +75,21 @@ set_target_properties(cpp-pthread-shared PROPERTIES OUTPUT_NAME cpp-pthread)
6075# Testing -------------------------------------------------------
6176#
6277
63- # Load and compile GTest
64- # Aliases: GTest::GTest, GTest::gtest_main, GMock::GMock
65- find_package (GTest PATHS cmake)
66- if (GTest_FOUND)
78+ if (GTestExt_FOUND AND BUILD_TESTS)
6779 enable_testing ()
80+ message (STATUS "Adding project's unit tests (in ./tests)..." )
6881 add_subdirectory (tests)
6982endif ()
7083
7184# doxygen -------------------------------------------------------
7285#
7386find_package (Doxygen REQUIRED dot OPTIONAL_COMPONENTS mscgen dia)
7487if (Doxygen_FOUND)
75- # set(DOXYGEN_OUTPUT_DIRECTORY doxygen)
76- # set(DOXYGEN_GENERATE_MAN YES)
77- # set(DOXYGEN_GENERATE_HTML YES)
88+
89+ set (DOXYGEN_PROJECT_NUMBER ${CPP_PTHREAD_VERSION} )
7890 set (DOXYGEN_EXAMPLE_PATH tests)
79- set (DOXYGEN_PROJECT_BRIEF "Simple C++ wrapper to pthread functions." )
91+ set (DOXYGEN_EXTRACT_ALL yes )
92+ set (DOXYGEN_PROJECT_BRIEF ${PROJECT_DESCRIPTION} )
8093 set (DOXYGEN_USE_MDFILE_AS_MAINPAGE "${CMAKE_SOURCE_DIR} /README.md" )
8194 doxygen_add_docs(doxygen README.md src include COMMENT "generate on-line documentation" )
8295
@@ -86,7 +99,7 @@ endif()
8699#
87100install ( TARGETS cpp-pthread-static cpp-pthread-shared DESTINATION lib )
88101install ( DIRECTORY include DESTINATION include COMPONENT Devel)
89- # install( DIRECTORY ${CMAKE_CURRENT_BINARY_DIR }/html DESTINATION share/ doc)
102+ install ( DIRECTORY ${PROJECT_BINARY_DIR } /html/ DESTINATION doc /cpp-pthread COMPONENT Documentation )
90103
91104# CPACK ---------------------------------------------------------
92105#
@@ -99,7 +112,3 @@ set(CPACK_PACKAGE_VENDOR "Urbix Software")
99112set (CPACK_PACKAGING_INSTALL_PREFIX ${CMAKE_INSTALL_PREFIX} )
100113
101114include (CPack)
102-
103- # misc ------------------------------------------------------------
104- #
105- find_program (RM rm)
0 commit comments