Refactoring RTABMapConfig.cmake with targets (#904)

* Config: Using cmake targets

* fixed RTABMAP_DEPRECATED build error

* fixed melodic build

* cleanup

* Fixed qhull exported library error

* Update svg depend private

* removed g2o from public interface

* Fixed Windows with external project

* removed some required dep

* Fixed nsis error (also fixed unspecified components)

* updated workflow rules
This commit is contained in:
matlabbe
2023-02-12 16:18:01 -08:00
committed by GitHub
parent 437ed09335
commit 89e3e10d89
191 changed files with 1150 additions and 2199 deletions

View File

@@ -13,36 +13,58 @@ SET(SRC_FILES
UVariant.cpp
)
SET(INCLUDE_DIRS
${CMAKE_CURRENT_SOURCE_DIR}/../include
${PTHREADS_INCLUDE_DIR}
)
# Make sure the compiler can find include files from our library.
INCLUDE_DIRECTORIES(${INCLUDE_DIRS})
ADD_LIBRARY(rtabmap_utilite ${SRC_FILES})
generate_export_header(rtabmap_utilite
BASE_NAME utilite)
target_include_directories(rtabmap_utilite PUBLIC
"$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/../include;${CMAKE_CURRENT_BINARY_DIR}/include;${PTHREADS_INCLUDE_DIR}>"
"$<INSTALL_INTERFACE:${INSTALL_INCLUDE_DIR};${PTHREADS_INCLUDE_DIR}>")
IF(MINGW)
TARGET_LINK_LIBRARIES(rtabmap_utilite ${PTHREADS_LIBRARY} "-lpsapi")
TARGET_LINK_LIBRARIES(rtabmap_utilite PRIVATE ${PTHREADS_LIBRARY} "-lpsapi")
ELSEIF(WIN32 OR MSVC)
FIND_LIBRARY(PSAPI_LIBRARIES NAMES psapi libpsapi.dll.a libpsapi.a libpsapi.lib )
TARGET_LINK_LIBRARIES(rtabmap_utilite ${PSAPI_LIBRARIES})
TARGET_LINK_LIBRARIES(rtabmap_utilite PRIVATE ${PSAPI_LIBRARIES})
ELSE()
TARGET_LINK_LIBRARIES(rtabmap_utilite ${PTHREADS_LIBRARY})
TARGET_LINK_LIBRARIES(rtabmap_utilite PRIVATE ${PTHREADS_LIBRARY})
ENDIF()
SET_TARGET_PROPERTIES(
rtabmap_utilite
rtabmap_utilite
PROPERTIES
VERSION ${RTABMAP_VERSION}
SOVERSION ${RTABMAP_MAJOR_VERSION}.${RTABMAP_MINOR_VERSION}
)
INSTALL(TARGETS rtabmap_utilite
INSTALL(TARGETS rtabmap_utilite EXPORT rtabmap_utiliteTargets
RUNTIME DESTINATION "${CMAKE_INSTALL_BINDIR}" COMPONENT runtime
LIBRARY DESTINATION "${CMAKE_INSTALL_LIBDIR}" COMPONENT devel
ARCHIVE DESTINATION "${CMAKE_INSTALL_LIBDIR}" COMPONENT devel)
install(DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/../include/ DESTINATION "${INSTALL_INCLUDE_DIR}" COMPONENT devel FILES_MATCHING PATTERN "*.h" PATTERN ".svn" EXCLUDE)
configure_file(
${CMAKE_CURRENT_BINARY_DIR}/utilite_export.h
${CMAKE_CURRENT_BINARY_DIR}/include/${PROJECT_PREFIX}/utilite/utilite_export.h
COPYONLY)
install(
DIRECTORY
${CMAKE_CURRENT_SOURCE_DIR}/../include/${PROJECT_PREFIX}
${CMAKE_CURRENT_BINARY_DIR}/include/${PROJECT_PREFIX}
DESTINATION
"${INSTALL_INCLUDE_DIR}"
COMPONENT
devel
FILES_MATCHING PATTERN "*.h" PATTERN "*.hpp")
export(EXPORT rtabmap_utiliteTargets
FILE "${CMAKE_CURRENT_BINARY_DIR}/../../${PROJECT_NAME}_utiliteTargets.cmake"
)
install(EXPORT rtabmap_utiliteTargets
FILE
${PROJECT_NAME}_utiliteTargets.cmake
DESTINATION
${INSTALL_CMAKE_DIR}
COMPONENT
devel
)