Skip to content

Commit

Permalink
Add option for building tests and docs
Browse files Browse the repository at this point in the history
  • Loading branch information
tmigimatsu committed Jul 19, 2019
1 parent 0904da8 commit 8abe69e
Show file tree
Hide file tree
Showing 3 changed files with 53 additions and 33 deletions.
21 changes: 15 additions & 6 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,8 @@ project(dbot)
# Options #
############################
option(DBOT_BUILD_GPU "Compile CUDA enabled trackers" ON)
option(DBOT_BUILD_TESTS "Compile tests" OFF)
option(DBOT_BUILD_DOCS "Compile docs" OFF)

############################
# Flags #
Expand Down Expand Up @@ -131,10 +133,8 @@ if(catkin_FOUND)
list(APPEND dbot_INCLUDE_DIRS ${catkin_INCLUDE_DIRS})
else(catkin_FOUND)
find_package(fl REQUIRED)
find_package(osr REQUIRED)

list(APPEND dbot_INCLUDE_DIRS ${fl_INCLUDE_DIRS})
list(APPEND dbot_INCLUDE_DIRS ${osr_INCLUDE_DIRS})
list(APPEND dbot_INCLUDE_DIRS ${fl_INCLUDE_DIRS} source)
endif(catkin_FOUND)

############################
Expand Down Expand Up @@ -196,6 +196,15 @@ endif(DBOT_BUILD_GPU)
############################
# Tests #
############################
enable_testing()
include(${CMAKE_MODULE_PATH}/gtest.cmake)
include(utests.cmake)
if(DBOT_BUILD_TESTS)
enable_testing()
include(${CMAKE_MODULE_PATH}/gtest.cmake)
include(utests.cmake)
endif()

############################
# Documentation #
############################
if(DBOT_BUILD_DOCS)
include(cmake/doxygen.cmake)
endif()
61 changes: 37 additions & 24 deletions cmake/doxygen.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -25,6 +25,9 @@ set(TARGET_FAILED_SCRIPT
set(VERSION_SCRIPT
${CMAKE_CURRENT_SOURCE_DIR}/cmake/version.cmake)

find_package(Doxygen)
configure_file(${CMAKE_CURRENT_SOURCE_DIR}/doc/Doxyfile.in ${CMAKE_BINARY_DIR}/Doxyfile)

if(DOXYGEN_FOUND)
execute_process(COMMAND "${DOXYGEN_EXECUTABLE}" "--version"
OUTPUT_VARIABLE DOXYGEN_VERSION
Expand All @@ -45,36 +48,44 @@ if(DOXYGEN_FOUND)
${TARGET_FAILED_SCRIPT_TEMPLATE}
${TARGET_FAILED_SCRIPT} @ONLY)

add_custom_target(doc_osr
COMMAND ${CMAKE_COMMAND} -P ${TARGET_FAILED_SCRIPT})
add_custom_target(doc_osr_and_sync
COMMAND ${CMAKE_COMMAND} -P ${TARGET_FAILED_SCRIPT})
if(NOT TARGET doc_osr)
add_custom_target(doc_osr
COMMAND ${CMAKE_COMMAND} -P ${TARGET_FAILED_SCRIPT})
endif()
if(NOT TARGET doc_osr_and_sync)
add_custom_target(doc_osr_and_sync
COMMAND ${CMAKE_COMMAND} -P ${TARGET_FAILED_SCRIPT})
endif()
else(DOXYGEN_VERSION VERSION_LESS MIN_DOXYGEN_VERSION)
# doc_osr target
add_custom_target(doc_osr
COMMAND ${CMAKE_COMMAND}
-D PROJECT_SOURCE_DIR:string=${PROJECT_SOURCE_DIR}
-D PROJECT_BINARY_DIR:string=${PROJECT_BINARY_DIR}
-P ${VERSION_SCRIPT}
COMMAND ${DOXYGEN_EXECUTABLE} ${CMAKE_CURRENT_BINARY_DIR}/Doxyfile
WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}
COMMENT "Generating API documentation with Doxygen" VERBATIM)
if(NOT TARGET doc_osr)
add_custom_target(doc_osr
COMMAND ${CMAKE_COMMAND}
-D PROJECT_SOURCE_DIR:string=${PROJECT_SOURCE_DIR}
-D PROJECT_BINARY_DIR:string=${PROJECT_BINARY_DIR}
-P ${VERSION_SCRIPT}
COMMAND ${DOXYGEN_EXECUTABLE} ${CMAKE_CURRENT_BINARY_DIR}/Doxyfile
WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}
COMMENT "Generating API documentation with Doxygen" VERBATIM)
endif()

# doc_osr_and_sync target
configure_file(
${CMAKE_CURRENT_SOURCE_DIR}/cmake/sync_doc.cmake.in
${CMAKE_CURRENT_BINARY_DIR}/cmake/sync_doc.cmake @ONLY)

add_custom_target(doc_osr_and_sync
COMMAND ${CMAKE_COMMAND}
-D PROJECT_SOURCE_DIR:string=${PROJECT_SOURCE_DIR}
-D PROJECT_BINARY_DIR:string=${PROJECT_BINARY_DIR}
-P ${VERSION_SCRIPT}
COMMAND ${DOXYGEN_EXECUTABLE} ${CMAKE_CURRENT_BINARY_DIR}/Doxyfile
COMMAND ${CMAKE_COMMAND} -P
${CMAKE_CURRENT_BINARY_DIR}/cmake/sync_doc.cmake
WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}
COMMENT "Generating API documentation with Doxygen" VERBATIM)
if(NOT TARGET doc_osr_and_sync)
add_custom_target(doc_osr_and_sync
COMMAND ${CMAKE_COMMAND}
-D PROJECT_SOURCE_DIR:string=${PROJECT_SOURCE_DIR}
-D PROJECT_BINARY_DIR:string=${PROJECT_BINARY_DIR}
-P ${VERSION_SCRIPT}
COMMAND ${DOXYGEN_EXECUTABLE} ${CMAKE_CURRENT_BINARY_DIR}/Doxyfile
COMMAND ${CMAKE_COMMAND} -P
${CMAKE_CURRENT_BINARY_DIR}/cmake/sync_doc.cmake
WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}
COMMENT "Generating API documentation with Doxygen" VERBATIM)
endif()

endif(DOXYGEN_VERSION VERSION_LESS MIN_DOXYGEN_VERSION)
else(DOXYGEN_FOUND)
Expand All @@ -86,6 +97,8 @@ else(DOXYGEN_FOUND)
${TARGET_FAILED_SCRIPT_TEMPLATE}
${TARGET_FAILED_SCRIPT} @ONLY)

add_custom_target(doc_osr
COMMAND ${CMAKE_COMMAND} -P ${TARGET_FAILED_SCRIPT})
if(NOT TARGET doc_osr)
add_custom_target(doc_osr
COMMAND ${CMAKE_COMMAND} -P ${TARGET_FAILED_SCRIPT})
endif()
endif(DOXYGEN_FOUND)
4 changes: 1 addition & 3 deletions doc/Doxyfile.in
Original file line number Diff line number Diff line change
Expand Up @@ -753,9 +753,7 @@ WARN_LOGFILE =
# spaces.
# Note: If this tag is empty the current directory is searched.

INPUT = @PROJECT_SOURCE_DIR@/doc \
@PROJECT_SOURCE_DIR@/include/fl \
@PROJECT_SOURCE_DIR@/include/ff
INPUT = @PROJECT_SOURCE_DIR@/source

# This tag can be used to specify the character encoding of the source files
# that doxygen parses. Internally doxygen uses the UTF-8 encoding. Doxygen uses
Expand Down

0 comments on commit 8abe69e

Please sign in to comment.