Skip to content

Commit

Permalink
Ran CMake format
Browse files Browse the repository at this point in the history
  • Loading branch information
marip8 committed Nov 13, 2023
1 parent 6616c1d commit 8159577
Show file tree
Hide file tree
Showing 8 changed files with 335 additions and 318 deletions.
75 changes: 35 additions & 40 deletions rct_common/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -8,66 +8,61 @@ if(NOT EIGEN3_INCLUDE_DIRS)
set(EIGEN3_INCLUDE_DIRS ${EIGEN3_INCLUDE_DIR})
endif()
if(NOT TARGET Eigen3::Eigen)
find_package(Threads REQUIRED)
add_library(Eigen3::Eigen IMPORTED INTERFACE)
set_property(TARGET Eigen3::Eigen PROPERTY INTERFACE_COMPILE_DEFINITIONS ${EIGEN3_DEFINITIONS})
set_property(TARGET Eigen3::Eigen PROPERTY INTERFACE_INCLUDE_DIRECTORIES ${EIGEN3_INCLUDE_DIRS})
find_package(Threads REQUIRED)
add_library(Eigen3::Eigen IMPORTED INTERFACE)
set_property(TARGET Eigen3::Eigen PROPERTY INTERFACE_COMPILE_DEFINITIONS ${EIGEN3_DEFINITIONS})
set_property(TARGET Eigen3::Eigen PROPERTY INTERFACE_INCLUDE_DIRECTORIES ${EIGEN3_INCLUDE_DIRS})
endif()

if(RCT_BUILD_TESTS)
find_package(GTest QUIET)
if ( NOT GTest_FOUND )
if(NOT GTest_FOUND)

include(ExternalProject)

if (CMAKE_CXX_COMPILER_ID STREQUAL "GNU")
if(CMAKE_CXX_COMPILER_ID STREQUAL "GNU")
set(GTEST_CXX_FLAGS "-w -std=c++14")
set(GTEST_C_FLAGS "-w")

ExternalProject_Add(GTest
GIT_REPOSITORY https://github.com/google/googletest.git
GIT_TAG release-1.8.1
SOURCE_DIR ${CMAKE_BINARY_DIR}/../rct_common/googletest-src
BINARY_DIR ${CMAKE_BINARY_DIR}/../rct_common/googletest-build
ExternalProject_Add(
GTest
GIT_REPOSITORY https://github.com/google/googletest.git
GIT_TAG release-1.8.1
SOURCE_DIR ${CMAKE_BINARY_DIR}/../rct_common/googletest-src
BINARY_DIR ${CMAKE_BINARY_DIR}/../rct_common/googletest-build
CMAKE_CACHE_ARGS
-DCMAKE_INSTALL_PREFIX:STRING=${CMAKE_INSTALL_PREFIX}
-DCMAKE_BUILD_TYPE:STRING=Release
-DCMAKE_CXX_FLAGS:STRING=${GTEST_CXX_FLAGS}
-DCMAKE_C_FLAGS:STRING=${GTEST_C_FLAGS}
-DBUILD_GMOCK:BOOL=OFF
-DBUILD_GTEST:BOOL=ON
-DBUILD_SHARED_LIBS:BOOL=ON
)
elseif (CMAKE_CXX_COMPILER_ID STREQUAL "MSVC")
ExternalProject_Add(GTest
GIT_REPOSITORY https://github.com/google/googletest.git
GIT_TAG release-1.8.1
SOURCE_DIR ${CMAKE_BINARY_DIR}/../rct_common/googletest-src
BINARY_DIR ${CMAKE_BINARY_DIR}/../rct_common/googletest-build
-DCMAKE_INSTALL_PREFIX:STRING=${CMAKE_INSTALL_PREFIX}
-DCMAKE_BUILD_TYPE:STRING=Release
-DCMAKE_CXX_FLAGS:STRING=${GTEST_CXX_FLAGS}
-DCMAKE_C_FLAGS:STRING=${GTEST_C_FLAGS}
-DBUILD_GMOCK:BOOL=OFF
-DBUILD_GTEST:BOOL=ON
-DBUILD_SHARED_LIBS:BOOL=ON)
elseif(CMAKE_CXX_COMPILER_ID STREQUAL "MSVC")
ExternalProject_Add(
GTest
GIT_REPOSITORY https://github.com/google/googletest.git
GIT_TAG release-1.8.1
SOURCE_DIR ${CMAKE_BINARY_DIR}/../rct_common/googletest-src
BINARY_DIR ${CMAKE_BINARY_DIR}/../rct_common/googletest-build
CMAKE_CACHE_ARGS
-DCMAKE_INSTALL_PREFIX:STRING=${CMAKE_INSTALL_PREFIX}
-DCMAKE_BUILD_TYPE:STRING=Release
-DBUILD_GMOCK:BOOL=OFF
-DBUILD_GTEST:BOOL=ON
-DBUILD_SHARED_LIBS:BOOL=ON
)
-DCMAKE_INSTALL_PREFIX:STRING=${CMAKE_INSTALL_PREFIX}
-DCMAKE_BUILD_TYPE:STRING=Release
-DBUILD_GMOCK:BOOL=OFF
-DBUILD_GTEST:BOOL=ON
-DBUILD_SHARED_LIBS:BOOL=ON)
endif()
endif()
endif()

add_library(${PROJECT_NAME} INTERFACE)
target_compile_options(${PROJECT_NAME} INTERFACE -std=c++11)
target_include_directories(${PROJECT_NAME} INTERFACE
"$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/include>"
"$<INSTALL_INTERFACE:include>")
target_include_directories(${PROJECT_NAME} INTERFACE "$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/include>"
"$<INSTALL_INTERFACE:include>")
target_link_libraries(${PROJECT_NAME} INTERFACE Eigen3::Eigen)

rct_configure_package(${PROJECT_NAME})

install(DIRECTORY include/${PROJECT_NAME}
DESTINATION include
)
install(DIRECTORY include/${PROJECT_NAME} DESTINATION include)

install(FILES
"${CMAKE_CURRENT_LIST_DIR}/cmake/rct_macros.cmake"
DESTINATION lib/cmake/${PROJECT_NAME})
install(FILES "${CMAKE_CURRENT_LIST_DIR}/cmake/rct_macros.cmake" DESTINATION lib/cmake/${PROJECT_NAME})
50 changes: 22 additions & 28 deletions rct_common/cmake/rct_macros.cmake
Original file line number Diff line number Diff line change
@@ -1,40 +1,37 @@
# Performs multiple operation so other packages may find a package
# Adapted from the Tesseract CMake macros
# Usage: rct_configure_package(targetA targetB ...)
# * It installs the provided targets
# * It exports the provided targets under the namespace rct::
# * It installs the package.xml file
# * It create and install the ${PROJECT_NAME}-config.cmake and ${PROJECT_NAME}-config-version.cmake
# Performs multiple operation so other packages may find a package Adapted from the Tesseract CMake macros Usage:
# rct_configure_package(targetA targetB ...) * It installs the provided targets * It exports the provided targets under
# the namespace rct:: * It installs the package.xml file * It create and install the ${PROJECT_NAME}-config.cmake and
# ${PROJECT_NAME}-config-version.cmake
macro(rct_configure_package)
install(TARGETS ${ARGV}
EXPORT ${PROJECT_NAME}-targets
RUNTIME DESTINATION bin
LIBRARY DESTINATION lib
ARCHIVE DESTINATION lib)
install(
TARGETS ${ARGV}
EXPORT ${PROJECT_NAME}-targets
RUNTIME DESTINATION bin
LIBRARY DESTINATION lib
ARCHIVE DESTINATION lib)
install(EXPORT ${PROJECT_NAME}-targets NAMESPACE rct:: DESTINATION lib/cmake/${PROJECT_NAME})

install(FILES package.xml DESTINATION share/${PROJECT_NAME})

# Create cmake config files
include(CMakePackageConfigHelpers)
configure_package_config_file(${CMAKE_CURRENT_LIST_DIR}/cmake/${PROJECT_NAME}-config.cmake.in
${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_NAME}-config.cmake
INSTALL_DESTINATION lib/cmake/${PROJECT_NAME}
configure_package_config_file(
${CMAKE_CURRENT_LIST_DIR}/cmake/${PROJECT_NAME}-config.cmake.in
${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_NAME}-config.cmake INSTALL_DESTINATION lib/cmake/${PROJECT_NAME}
NO_CHECK_REQUIRED_COMPONENTS_MACRO)

write_basic_package_version_file(${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_NAME}-config-version.cmake
VERSION ${PROJECT_VERSION} COMPATIBILITY ExactVersion)
VERSION ${PROJECT_VERSION} COMPATIBILITY ExactVersion)

install(FILES
"${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_NAME}-config.cmake"
"${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_NAME}-config-version.cmake"
DESTINATION lib/cmake/${PROJECT_NAME})
install(FILES "${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_NAME}-config.cmake"
"${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_NAME}-config-version.cmake"
DESTINATION lib/cmake/${PROJECT_NAME})

export(EXPORT ${PROJECT_NAME}-targets NAMESPACE rct:: FILE ${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_NAME}-targets.cmake)
endmacro()

# This macro call the appropriate gtest function to add a test based on the cmake version
# Usage: rct_gtest_discover_tests(target)
# This macro call the appropriate gtest function to add a test based on the cmake version Usage:
# rct_gtest_discover_tests(target)
macro(rct_gtest_discover_tests target)
if(${CMAKE_VERSION} VERSION_LESS "3.10.0")
gtest_add_tests(${target} "" AUTO)
Expand All @@ -43,16 +40,13 @@ macro(rct_gtest_discover_tests target)
endif()
endmacro()

# This macro add a custom target that will run the tests after they are finished building when
# RCT_RUN_TESTS is enabled
# This macro add a custom target that will run the tests after they are finished building when RCT_RUN_TESTS is enabled
# This is added to allow ability do disable the running of tests as part of the build for CI which calls make test
macro(rct_add_run_tests_target)
if(RCT_RUN_TESTS)
add_custom_target(run_tests ALL
WORKING_DIRECTORY ${CMAKE_BINARY_DIR}
COMMAND ${CMAKE_CTEST_COMMAND} -V -O "/tmp/${PROJECT_NAME}_ctest.log" -C $<CONFIGURATION>)
add_custom_target(run_tests ALL WORKING_DIRECTORY ${CMAKE_BINARY_DIR}
COMMAND ${CMAKE_CTEST_COMMAND} -V -O "/tmp/${PROJECT_NAME}_ctest.log" -C $<CONFIGURATION>)
else()
add_custom_target(run_tests)
endif()
endmacro()

Loading

0 comments on commit 8159577

Please sign in to comment.