diff --git a/src/DaggyCore/CMakeLists.txt b/src/DaggyCore/CMakeLists.txt index 25dfac4f..c0aeb664 100644 --- a/src/DaggyCore/CMakeLists.txt +++ b/src/DaggyCore/CMakeLists.txt @@ -107,17 +107,31 @@ if (BUILD_TESTING) add_subdirectory(tests/interface) endif() -if(NOT APPONLY_BUILD) +if (NOT APPONLY_BUILD) if(UNIX) - install(TARGETS ${TARGET} LIBRARY) - else() - install(TARGETS ${TARGET} ARCHIVE) - endif() + install(TARGETS ${TARGET} + EXPORT ${TARGET}Targets + PUBLIC_HEADER FILE_SET HEADERS + LIBRARY) + install(EXPORT ${TARGET}Targets + FILE ${TARGET}Targets.cmake + NAMESPACE "${PROJECT_NAME}::" + DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/${TARGET}) + + include(CMakePackageConfigHelpers) + configure_package_config_file(${CMAKE_CURRENT_SOURCE_DIR}/Config.cmake.in + "${CMAKE_CURRENT_BINARY_DIR}/${TARGET}Config.cmake" + INSTALL_DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/${TARGET}) + install(FILES ${CMAKE_CURRENT_BINARY_DIR}/${TARGET}Config.cmake + DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/${TARGET}) - if (BUILD_SHARED_LIBS) - install(TARGETS ${TARGET} RUNTIME) + else() + install(TARGETS ${TARGET} + PUBLIC_HEADER FILE_SET HEADERS + ARCHIVE + RUNTIME) endif() - - install(TARGETS ${TARGET} FILE_SET HEADERS) include(package_deps) endif() + + diff --git a/src/DaggyCore/Config.cmake.in b/src/DaggyCore/Config.cmake.in new file mode 100644 index 00000000..2eb4293c --- /dev/null +++ b/src/DaggyCore/Config.cmake.in @@ -0,0 +1,6 @@ +@PACKAGE_INIT@ + +include("${CMAKE_CURRENT_LIST_DIR}/@TARGET@Targets.cmake") + +check_requred_compinents(@TARGET@) +include(CMakeFindDependencyMacro) diff --git a/src/cmake/package_deps.cmake b/src/cmake/package_deps.cmake index 4a9df994..84830006 100644 --- a/src/cmake/package_deps.cmake +++ b/src/cmake/package_deps.cmake @@ -3,6 +3,11 @@ if (PORTABLE_BUILD AND CONAN_BUILD) RUNTIME_DEPENDENCY_SET ${TARGET}_deps ) + set(EXTERNAL_PACKAGE_DEST ${CMAKE_INSTALL_LIBDIR}/${PROJECT_NAME}) + if (WIN32) + set(EXTERNAL_PACKAGE_DEST ${CMAKE_INSTALL_BINDIR}) + endif() + install(RUNTIME_DEPENDENCY_SET ${TARGET}_deps PRE_EXCLUDE_REGEXES [=[api-ms-]=] @@ -13,6 +18,6 @@ if (PORTABLE_BUILD AND CONAN_BUILD) [=[.*system32\/.*\.dll]=] [=[^\/(lib|usr\/lib|usr\/local\/lib\/lib64)]=] DIRECTORIES ${CONAN_RUNTIME_LIB_DIRS} ${CONAN_LIB_DIRS} - DESTINATION ${CMAKE_INSTALL_LIBDIR}/${PROJECT_NAME} + DESTINATION ${EXTERNAL_PACKAGE_DEST} ) endif()