summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorMartin Willers <M.Willers@gmx.net>2021-05-10 03:02:08 +0200
committerGitHub <noreply@github.com>2021-05-10 10:02:08 +0900
commitb95044abb202838837b0566efc40ae26308a4bb4 (patch)
tree901351ddcf4f2b3f9fce5ad51166527d9c1cc56f /src
parente969bed805f7dba9d2fa35c56a7ace28efb67e4e (diff)
downloadDLT-daemon-b95044abb202838837b0566efc40ae26308a4bb4.tar.gz
Export cmake config file (#289)
Create and install proper CMake *-target.cmake and *-config.cmake files, for use by other CMake-using projects. It installs a file called automotive-dlt-targets.cmake into a common location for such files, namely <prefix>/lib/cmake/automotive-dlt/automotive-dlt-targets.cmake They can now call find_package(automotive-dlt) and obtain a target called Genivi::dlt that they can link against with target_link_libraries(), by which they automatically gain all necessary attributes, including libdlt's include directories. Signed-off-by: Martin Willers <M.Willers@gmx.net>
Diffstat (limited to 'src')
-rw-r--r--src/lib/CMakeLists.txt38
1 files changed, 36 insertions, 2 deletions
diff --git a/src/lib/CMakeLists.txt b/src/lib/CMakeLists.txt
index 6d20c64..5a94bef 100644
--- a/src/lib/CMakeLists.txt
+++ b/src/lib/CMakeLists.txt
@@ -44,8 +44,14 @@ else()
message(STATUS "pthread_setname_np API not available on this platform")
endif()
-target_link_libraries(dlt ${RT_LIBRARY} ${SOCKET_LIBRARY} ${CMAKE_THREAD_LIBS_INIT})
-target_include_directories(dlt PUBLIC ${PROJECT_SOURCE_DIR}/include/dlt ${PROJECT_BINARY_DIR}/include/dlt)
+target_link_libraries(dlt ${RT_LIBRARY} ${SOCKET_LIBRARY} Threads::Threads)
+
+target_include_directories(dlt
+ PUBLIC
+ $<BUILD_INTERFACE:${PROJECT_SOURCE_DIR}/include/dlt>
+ $<BUILD_INTERFACE:${PROJECT_BINARY_DIR}/include/dlt>
+ $<INSTALL_INTERFACE:include>
+)
if(WITH_LIB_SHORT_VERSION)
set_target_properties(dlt PROPERTIES VERSION ${PROJECT_VERSION_MAJOR} SOVERSION ${PROJECT_VERSION_MAJOR})
@@ -53,7 +59,11 @@ else()
set_target_properties(dlt PROPERTIES VERSION ${PROJECT_VERSION} SOVERSION ${PROJECT_VERSION_MAJOR})
endif()
+add_library(Genivi::dlt ALIAS dlt)
+
install(TARGETS dlt
+ EXPORT
+ ${PROJECT_NAME}-targets
RUNTIME
DESTINATION bin
COMPONENT base
@@ -63,3 +73,27 @@ install(TARGETS dlt
ARCHIVE
DESTINATION ${CMAKE_INSTALL_LIBDIR}/static
COMPONENT base)
+
+# Install *-targets.cmake file
+install(
+ EXPORT ${PROJECT_NAME}-targets
+ DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/${PROJECT_NAME}
+ NAMESPACE Genivi::
+)
+
+# Create *-config.cmake file
+include(CMakePackageConfigHelpers)
+configure_package_config_file(
+ ${PROJECT_SOURCE_DIR}/${PROJECT_NAME}-config.cmake.in
+ ${PROJECT_BINARY_DIR}/${PROJECT_NAME}-config.cmake
+ INSTALL_DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/${PROJECT_NAME}
+ NO_SET_AND_CHECK_MACRO
+)
+
+# Install *-config.cmake file
+install(
+ FILES
+ ${PROJECT_BINARY_DIR}/${PROJECT_NAME}-config.cmake
+ DESTINATION
+ ${CMAKE_INSTALL_LIBDIR}/cmake/${PROJECT_NAME}
+)