From c00e4a638283152e5e436f97deb35d4157319abd Mon Sep 17 00:00:00 2001 From: Paolo Andreetto Date: Fri, 10 May 2019 09:08:26 +0000 Subject: [PATCH] Fixes for doxygen and unit tests --- CMake/uLibGenerateDoc.cmake | 25 ++++++++++++++++++------- CMake/uLibTargetMacros.cmake | 24 ++++++++---------------- CMakeLists.txt | 35 ++++++----------------------------- 3 files changed, 32 insertions(+), 52 deletions(-) diff --git a/CMake/uLibGenerateDoc.cmake b/CMake/uLibGenerateDoc.cmake index 4988151..a1057fd 100644 --- a/CMake/uLibGenerateDoc.cmake +++ b/CMake/uLibGenerateDoc.cmake @@ -1,3 +1,10 @@ +find_package(Doxygen) + +set(doxydirlist "") +foreach(modname ${ULIB_SELECTED_MODULES}) + set(doxydirlist "${CMAKE_CURRENT_SOURCE_DIR}/src/${modname} ${doxydirlist}") +endforeach(modname) + file(WRITE ${CMAKE_CURRENT_BINARY_DIR}/doxygen.cfg "PROJECT_NAME=${CMAKE_PROJECT_NAME}-${PACKAGE_VERSION}\n" "OUTPUT_DIRECTORY=${CMAKE_CURRENT_BINARY_DIR}\n" @@ -44,7 +51,7 @@ file(WRITE ${CMAKE_CURRENT_BINARY_DIR}/doxygen.cfg "WARN_IF_UNDOCUMENTED=YES\n" "WARN_IF_DOC_ERROR=YES\n" "WARN_FORMAT=\"$file:$line: $text\"\n" - "INPUT=${CMAKE_CURRENT_SOURCE_DIR}/src\n" + "INPUT=${doxydirlist}\n" "FILE_PATTERNS=*.h *.hpp\n" "ENABLE_PREPROCESSING=YES\n" "MACRO_EXPANSION=YES\n" @@ -76,11 +83,15 @@ file(WRITE ${CMAKE_CURRENT_BINARY_DIR}/doxygen.cfg "GENERATE_AUTOGEN_DEF=NO\n" "GENERATE_PERLMOD=NO\n") -add_custom_command(OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/html/index.html - COMMAND doxygen ${CMAKE_CURRENT_BINARY_DIR}/doxygen.cfg) +option(NODOXYGEN "Disable the creation of the API documentation") +if(NODOXYGEN OR (NOT DOXYGEN_FOUND)) + message("Doxygen is disabled or not installed") +else(NODOXYGEN OR (NOT DOXYGEN_FOUND)) + add_custom_command(OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/html/index.html + COMMAND doxygen ${CMAKE_CURRENT_BINARY_DIR}/doxygen.cfg) -add_custom_target(doxygen ALL DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/html/index.html) - -install(DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/html - DESTINATION usr/share/doc/${PACKAGE_NAME}) + add_custom_target(doxygen ALL DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/html/index.html) + install(DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/html + DESTINATION share/doc/${PACKAGE_NAME}) +endif(NODOXYGEN OR (NOT DOXYGEN_FOUND)) diff --git a/CMake/uLibTargetMacros.cmake b/CMake/uLibTargetMacros.cmake index 3ee4087..e646165 100644 --- a/CMake/uLibTargetMacros.cmake +++ b/CMake/uLibTargetMacros.cmake @@ -81,25 +81,17 @@ ENDMACRO(uLib_add_target) # TESTS and LIBRARIES must be defined macro(uLib_add_tests name) - foreach(tn ${TESTS}) - add_executable(${tn} EXCLUDE_FROM_ALL ${tn}.cpp) - add_test(${tn} ${tn}) + foreach(tn ${TESTS}) + add_executable(${tn} EXCLUDE_FROM_ALL ${tn}.cpp) + add_test(NAME ${tn} COMMAND ${tn}) - # adds dependencies to all selected modules in uLib - # foreach(module ${ULIB_SELECTED_MODULES}) - # add_dependencies(${tn} ${project_name}${module}) - # endforeach(module) + target_link_libraries(${tn} ${LIBRARIES}) - # adds libraries dependencies - foreach(library ${LIBRARIES}) - target_link_libraries(${tn} ${library}) - endforeach(library) + endforeach(tn) - endforeach(tn) - - # custom target to compile all tests - add_custom_target(all-${name}-tests) - add_dependencies(all-${name}-tests ${TESTS}) + # custom target to compile all tests + add_custom_target(all-${name}-tests) + add_dependencies(all-${name}-tests ${TESTS}) endmacro(uLib_add_tests name) diff --git a/CMakeLists.txt b/CMakeLists.txt index f970e3d..8697333 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -37,8 +37,6 @@ include(uLibMacros) include(uLibDebugMacro) include(uLibTargetMacros) include(uLibGenerateRMake) -include(uLibGenerateRPMS) -#include(uLibGenerateDoc) ## GLOBALS ------------------------------------------------------------------ ## @@ -75,6 +73,11 @@ if(ULIB_USE_VTK) LIST(APPEND ULIB_SELECTED_MODULES Vtk) endif(ULIB_USE_VTK) +## Documentation and packages + +include(uLibGenerateRPMS) +include(uLibGenerateDoc) + ## this gets ulib modules into a variable ## function(uLib_modules result) set(out) @@ -96,7 +99,7 @@ endforeach(module) ## SINGLE LIBRARY LINKING ## (work in progress ... ) option(ULIB_SINGLELIBRARY "Link everything to a single library" OFF) -if(ULIB_SINGLELIBRARY) +if(ULIB_SINGLELIBRARY) # set(modgrp) # foreach(module ${ULIB_SELECTED_MODULES}) # set(grpn srcgrp_${module}) @@ -201,32 +204,6 @@ install(EXPORT "${PROJECT_NAME}Targets" DESTINATION install(FILES ${PROJECT_SOURCE_DIR}/ulib.h DESTINATION ${PACKAGE_INSTALL_INC_DIR}) - -## dummy main executable ---------------------------------------------------- ## - -message("Sara's debug....") -message(${ROOT_LIBRARIES}) - -# add the executable -add_executable(Coretest test.cpp) -target_link_libraries(Coretest ${PACKAGE_LIBPREFIX}Core) -#target_link_libraries(Coretest ${Boost_SERIALIZATION_LIBRARY}) -#target_link_libraries(Coretest ${Boost_SIGNALS_LIBRARY}) -#target_link_libraries(Coretest ${Boost_PROGRAM_OPTIONS_LIBRARY}) -#target_link_libraries(Coretest ${Geant4_LIBRARIES}) -target_link_libraries(Coretest ${ROOT_LIBRARIES}) -target_link_libraries(Coretest ${VTK_LIBRARIES}) - -#message( "---------------------------------------------------------------------" ) -#execute_process(COMMAND -# "ls" -## "cmake --find-package -DNAME=uLib -DLANGUAGE=C -DCOMPILER_ID=GNU -DMODE=COMPILE" -# ) -#message( "---------------------------------------------------------------------" ) - -## -------------------------------------------------------------------------- ## - - # TODO clean also subdirectories add_custom_target(clean-cmake-files COMMAND ${CMAKE_COMMAND} -P ${ULIB_CMAKE_DIR}/clean-all.cmake