Compare commits
2 commits
Author | SHA1 | Date | |
---|---|---|---|
|
7c1fbd1118 | ||
|
d3479764e2 |
4 changed files with 27 additions and 73 deletions
|
@ -15,8 +15,7 @@ include(Versioning)
|
|||
# After installation this project can be found by 'find_package' command:
|
||||
#
|
||||
# find_package(libcreate REQUIRED)
|
||||
# include_directores(${libcreate_INCLUDE_DIRS})
|
||||
# target_link_libraries(... ${libcreate_LIBRARIES})
|
||||
# target_link_libraries(... libcreate)
|
||||
#
|
||||
|
||||
project(
|
||||
|
@ -24,8 +23,6 @@ project(
|
|||
VERSION ${TAG_VERSION_MAJOR}.${TAG_VERSION_MINOR}.${TAG_VERSION_PATCH}
|
||||
)
|
||||
|
||||
add_compile_options(-Wall -Wextra -Wpedantic)
|
||||
|
||||
set(PACKAGE_VERSION ${TAG_VERSION_MAJOR}.${TAG_VERSION_MINOR}.${TAG_VERSION_PATCH})
|
||||
|
||||
option(LIBCREATE_BUILD_TESTS "Enable the build of tests." ON)
|
||||
|
@ -60,6 +57,8 @@ add_library(${LIBRARY_NAME} SHARED
|
|||
src/types.cpp
|
||||
)
|
||||
|
||||
target_compile_options(${LIBRARY_NAME} PRIVATE -Wall -Wextra -Wpedantic -Werror)
|
||||
|
||||
# Manually link to thread library for build on ARM
|
||||
if(THREADS_HAVE_PTHREAD_ARG)
|
||||
set_property(TARGET ${LIBRARY_NAME} PROPERTY COMPILE_OPTIONS "-pthread")
|
||||
|
@ -100,82 +99,36 @@ endforeach()
|
|||
# Configuration #
|
||||
#################
|
||||
|
||||
include(GNUInstallDirs)
|
||||
|
||||
# set(CMAKE_INSTALL_PREFIX "/usr/") // complib needs this, riplib doesn't
|
||||
|
||||
# Install directories layout:
|
||||
# * <prefix>/lib/
|
||||
# * <prefix>/bin/
|
||||
# * <prefix>/include/
|
||||
# * <prefix>/lib/cmake/<PROJECT-NAME>
|
||||
# * <prefix>/share/<PROJECT_NAME>
|
||||
set(LIB_INSTALL_DIR "lib")
|
||||
set(BIN_INSTALL_DIR "bin")
|
||||
set(INCLUDE_INSTALL_DIR "include")
|
||||
set(CONFIG_INSTALL_DIR "${LIB_INSTALL_DIR}/cmake/${PROJECT_NAME}")
|
||||
set(SHARE_INSTALL_DIR "share/${PROJECT_NAME}")
|
||||
|
||||
set(GENERATED_DIR "${CMAKE_CURRENT_BINARY_DIR}/generated")
|
||||
set(VERSION_CONFIG "${GENERATED_DIR}/${PROJECT_NAME}-config-version.cmake")
|
||||
set(PROJECT_CONFIG "${GENERATED_DIR}/${PROJECT_NAME}-config.cmake")
|
||||
set(TARGETS_EXPORT_NAME "${PROJECT_NAME}-targets")
|
||||
|
||||
include(CMakePackageConfigHelpers)
|
||||
|
||||
# Configure '<PROJECT-NAME>-config-version.cmake'
|
||||
write_basic_package_version_file(
|
||||
"${VERSION_CONFIG}"
|
||||
VERSION "${PACKAGE_VERSION}"
|
||||
COMPATIBILITY SameMajorVersion
|
||||
)
|
||||
|
||||
# Configure '<PROJECT-NAME>-config.cmake'
|
||||
configure_package_config_file(
|
||||
"config.cmake.in"
|
||||
"${PROJECT_CONFIG}"
|
||||
INSTALL_DESTINATION "${CONFIG_INSTALL_DIR}"
|
||||
PATH_VARS
|
||||
INCLUDE_INSTALL_DIR
|
||||
LIBRARY_NAME
|
||||
)
|
||||
|
||||
###########
|
||||
# Install #
|
||||
###########
|
||||
|
||||
# Install targets
|
||||
install(
|
||||
TARGETS ${LIBRARY_NAME}
|
||||
EXPORT "${TARGETS_EXPORT_NAME}"
|
||||
LIBRARY DESTINATION "${LIB_INSTALL_DIR}"
|
||||
ARCHIVE DESTINATION "${LIB_INSTALL_DIR}"
|
||||
RUNTIME DESTINATION "${BIN_INSTALL_DIR}"
|
||||
INCLUDES DESTINATION "${INCLUDE_INSTALL_DIR}"
|
||||
)
|
||||
|
||||
# Install headers
|
||||
install(
|
||||
DIRECTORY include/
|
||||
DESTINATION ${INCLUDE_INSTALL_DIR}
|
||||
FILES_MATCHING PATTERN "*.h"
|
||||
PATTERN ".svn" EXCLUDE
|
||||
)
|
||||
TARGETS ${LIBRARY_NAME}
|
||||
EXPORT ${LIBRARY_NAME}-config
|
||||
RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
|
||||
LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
|
||||
ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR})
|
||||
|
||||
# Install config
|
||||
install(
|
||||
FILES "${PROJECT_CONFIG}" "${VERSION_CONFIG}"
|
||||
DESTINATION "${CONFIG_INSTALL_DIR}"
|
||||
)
|
||||
EXPORT ${LIBRARY_NAME}-config
|
||||
NAMESPACE create::
|
||||
DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/${LIBRARY_NAME})
|
||||
|
||||
# Install targets
|
||||
install(
|
||||
EXPORT "${TARGETS_EXPORT_NAME}"
|
||||
DESTINATION "${CONFIG_INSTALL_DIR}"
|
||||
)
|
||||
# Install headers
|
||||
install(DIRECTORY ${CMAKE_CURRENT_LIST_DIR}/include/${LIBRARY_NAME}/
|
||||
DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/${LIBRARY_NAME})
|
||||
|
||||
# Install package.xml (for catkin)
|
||||
install(
|
||||
FILES package.xml
|
||||
DESTINATION ${SHARE_INSTALL_DIR}
|
||||
DESTINATION ${CMAKE_INSTALL_DATAROOTDIR}
|
||||
)
|
||||
|
||||
###########
|
||||
|
|
|
@ -2,7 +2,7 @@ FROM debian:bookworm
|
|||
|
||||
RUN apt update && \
|
||||
apt install -y \
|
||||
build-essential cmake git file \
|
||||
build-essential cmake git file tree \
|
||||
libboost-system-dev libboost-thread-dev \
|
||||
libgtest-dev googletest && \
|
||||
rm -rf /var/lib/apt/lists/*
|
||||
|
|
|
@ -8,3 +8,8 @@ cmake -B /libcreate/build -S /libcreate -DCMAKE_BUILD_TYPE=Release -DCMAKE_CXX_F
|
|||
cmake --build /libcreate/build --config Release
|
||||
ctest -C Release --output-on-failure
|
||||
cpack --build /libcreate/build -G DEB
|
||||
|
||||
debs=(/libcreate/_packages/*.deb)
|
||||
cp "${debs[0]}" /tmp/libcreate.deb
|
||||
dpkg-deb -R /tmp/libcreate.deb /tmp/libcreate
|
||||
tree /tmp/libcreate
|
|
@ -14,7 +14,7 @@ set(CPACK_PACKAGE_INSTALL_DIRECTORY ${CPACK_PACKAGE_NAME})
|
|||
SET(CPACK_OUTPUT_FILE_PREFIX "${CMAKE_SOURCE_DIR}/_packages")
|
||||
|
||||
# https://unix.stackexchange.com/a/11552/254512
|
||||
set(CPACK_PACKAGING_INSTALL_PREFIX "/opt/some")#/${CMAKE_PROJECT_VERSION}")
|
||||
set(CPACK_PACKAGING_INSTALL_PREFIX "/opt/${CPACK_PACKAGE_NAME}")
|
||||
|
||||
set(CPACK_PACKAGE_VERSION_MAJOR ${PROJECT_VERSION_MAJOR})
|
||||
set(CPACK_PACKAGE_VERSION_MINOR ${PROJECT_VERSION_MINOR})
|
||||
|
@ -40,11 +40,7 @@ set(
|
|||
# package name for deb. If set, then instead of some-application-0.9.2-Linux.deb
|
||||
# you'll get some-application_0.9.2_amd64.deb (note the underscores too)
|
||||
set(CPACK_DEBIAN_FILE_NAME DEB-DEFAULT)
|
||||
# that is if you want every group to have its own package,
|
||||
# although the same will happen if this is not set (so it defaults to ONE_PER_GROUP)
|
||||
# and CPACK_DEB_COMPONENT_INSTALL is set to YES
|
||||
set(CPACK_COMPONENTS_GROUPING ALL_COMPONENTS_IN_ONE)#ONE_PER_GROUP)
|
||||
# without this you won't be able to pack only specified component
|
||||
set(CPACK_DEB_COMPONENT_INSTALL YES)
|
||||
|
||||
message(STATUS "Components to pack: ${CPACK_COMPONENTS_ALL}")
|
||||
|
||||
include(CPack)
|
Loading…
Add table
Add a link
Reference in a new issue