mirror of
https://github.com/introlab/rtabmap.git
synced 2026-09-02 17:40:23 +08:00
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:
@@ -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
|
||||
)
|
||||
Reference in New Issue
Block a user