From 5df10bbe06b366fc322b57dc6d8824222dab830c Mon Sep 17 00:00:00 2001 From: synacker Date: Sun, 5 Apr 2020 15:27:50 +0300 Subject: [PATCH 1/4] Fixed install targets --- src/Daggy/CMakeLists.txt | 2 +- src/DaggyCore/CMakeLists.txt | 17 ++++++++++------- src/cmake/compiler.cmake | 9 +++------ src/cmake/package_deps.cmake | 4 ++-- 4 files changed, 16 insertions(+), 16 deletions(-) diff --git a/src/Daggy/CMakeLists.txt b/src/Daggy/CMakeLists.txt index 50b772d2..ecc5c6c6 100644 --- a/src/Daggy/CMakeLists.txt +++ b/src/Daggy/CMakeLists.txt @@ -36,4 +36,4 @@ add_executable(${TARGET} ${SOURCES}) target_link_libraries(${TARGET} DaggyCore) include(precompiled) -install(TARGETS ${TARGET} DESTINATION bin) +install(TARGETS ${TARGET} RUNTIME) diff --git a/src/DaggyCore/CMakeLists.txt b/src/DaggyCore/CMakeLists.txt index 42ccf96e..53afc148 100644 --- a/src/DaggyCore/CMakeLists.txt +++ b/src/DaggyCore/CMakeLists.txt @@ -23,7 +23,7 @@ set(YAML_PUBLIC CYamlDataSourcesConvertor.h ) -set(INCLUDE_HEADERS +set(INCLUDE_PUBLIC_HEADERS CJsonDataSourcesConvertor.h CYamlDataSourcesConvertor.h CLocalDataProvider.h @@ -97,6 +97,8 @@ else() endif() target_link_libraries(${TARGET} ${LINK_LIBRARIES}) +set_target_properties(${TARGET} PROPERTIES + PUBLIC_HEADER "${INCLUDE_PUBLIC_HEADERS}") include(precompiled) include(GenerateExportHeader) @@ -104,16 +106,17 @@ generate_export_header(${TARGET} EXPORT_FILE_NAME ${CMAKE_BINARY_DIR}/exports/da if(UNIX) if (DAGGY_CORE_STATIC) - install(TARGETS ${TARGET} DESTINATION lib COMPONENT devel) + install(TARGETS ${TARGET} LIBRARY COMPONENT devel) else() - install(TARGETS ${TARGET} DESTINATION lib) + install(TARGETS ${TARGET} LIBRARY COMPONENT application) + install(TARGETS ${TARGET} LIBRARY COMPONENT devel) endif() else() - install(FILES ${CMAKE_LIBRARY_OUTPUT_DIRECTORY}/${TARGET}.lib DESTINATION lib COMPONENT devel) + install(TARGETS ${TARGET} ARCHIVE COMPONENT devel) if (NOT DAGGY_CORE_STATIC) - install(FILES ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/${TARGET}.dll DESTINATION bin COMPONENT application) - install(FILES ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/${TARGET}.dll DESTINATION bin COMPONENT devel) + install(TARGETS ${TARGET} RUNTIME COMPONENT application) + install(TARGETS ${TARGET} RUNTIME COMPONENT devel) endif() endif() -install(FILES ${INCLUDE_HEADERS} DESTINATION ${INCLUDE_INSTALL_DIR}/${TARGET} COMPONENT devel) +install(TARGETS ${TARGET} PUBLIC_HEADER DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/${TARGET} COMPONENT devel) diff --git a/src/cmake/compiler.cmake b/src/cmake/compiler.cmake index fb456b1b..8a9c1587 100644 --- a/src/cmake/compiler.cmake +++ b/src/cmake/compiler.cmake @@ -2,15 +2,12 @@ set(CMAKE_CXX_STANDARD 17) set(INCLUDE_INSTALL_DIR include) -file(MAKE_DIRECTORY ${CMAKE_BINARY_DIR}/lib) -file(MAKE_DIRECTORY ${CMAKE_BINARY_DIR}/bin) +set(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/${CMAKE_INSTALL_LIBDIR}) +set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/${CMAKE_INSTALL_BINDIR}) -set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/lib) -set(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/lib) -set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/bin) set(CMAKE_BUILD_WITH_INSTALL_RPATH true) if(UNIX) - set(CMAKE_INSTALL_RPATH "$ORIGIN/../lib;$ORIGIN/../lib/daggy_deps;$ORIGIN/daggy_deps") + set(CMAKE_INSTALL_RPATH "$ORIGIN/../${CMAKE_INSTALL_LIBDIR};$ORIGIN/../${CMAKE_INSTALL_LIBDIR}/daggy_deps;$ORIGIN/daggy_deps") endif() diff --git a/src/cmake/package_deps.cmake b/src/cmake/package_deps.cmake index 9b08521d..cbac3884 100644 --- a/src/cmake/package_deps.cmake +++ b/src/cmake/package_deps.cmake @@ -4,12 +4,12 @@ if(WIN32) ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/Qt5Core.dll ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/libssh2.dll ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/yaml-cpp.dll - DESTINATION bin + DESTINATION ${CMAKE_INSTALL_BINDIR} COMPONENT deps ) else() install(DIRECTORY ${CMAKE_LIBRARY_OUTPUT_DIRECTORY}/daggy_deps/ - DESTINATION lib/daggy_deps + DESTINATION ${CMAKE_INSTALL_LIBDIR}/daggy_deps COMPONENT deps FILES_MATCHING PATTERN libQt5Network.so* From 1d18d3a84d02db355c0e251ab54974bd5fd9311f Mon Sep 17 00:00:00 2001 From: synacker Date: Sun, 5 Apr 2020 15:39:16 +0300 Subject: [PATCH 2/4] Added GNUInstallDirs --- src/DaggyCore/CMakeLists.txt | 2 ++ src/cmake/compiler.cmake | 2 ++ 2 files changed, 4 insertions(+) diff --git a/src/DaggyCore/CMakeLists.txt b/src/DaggyCore/CMakeLists.txt index 53afc148..dc1adfd6 100644 --- a/src/DaggyCore/CMakeLists.txt +++ b/src/DaggyCore/CMakeLists.txt @@ -119,4 +119,6 @@ else() endif() endif() +message("INSTALL DIR ${CMAKE_INSTALL_LIBDIR}") + install(TARGETS ${TARGET} PUBLIC_HEADER DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/${TARGET} COMPONENT devel) diff --git a/src/cmake/compiler.cmake b/src/cmake/compiler.cmake index 8a9c1587..97bf208a 100644 --- a/src/cmake/compiler.cmake +++ b/src/cmake/compiler.cmake @@ -1,3 +1,5 @@ +include(GNUInstallDirs) + set(CMAKE_CXX_STANDARD 17) set(INCLUDE_INSTALL_DIR include) From dfa444005ae5aee3a1bef42838879ec703691d37 Mon Sep 17 00:00:00 2001 From: synacker Date: Sun, 5 Apr 2020 15:46:22 +0300 Subject: [PATCH 3/4] Fixed paths --- src/cmake/compiler.cmake | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/cmake/compiler.cmake b/src/cmake/compiler.cmake index 97bf208a..a98050c5 100644 --- a/src/cmake/compiler.cmake +++ b/src/cmake/compiler.cmake @@ -4,10 +4,12 @@ set(CMAKE_CXX_STANDARD 17) set(INCLUDE_INSTALL_DIR include) +make_directory(${CMAKE_BINARY_DIR}/${CMAKE_INSTALL_LIBDIR}) +make_directory(${CMAKE_BINARY_DIR}/${CMAKE_INSTALL_BINDIR}) + set(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/${CMAKE_INSTALL_LIBDIR}) set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/${CMAKE_INSTALL_BINDIR}) - set(CMAKE_BUILD_WITH_INSTALL_RPATH true) if(UNIX) From b91cb41bc4acdc6cabcb790e642c91b8e95dcf27 Mon Sep 17 00:00:00 2001 From: synacker Date: Sun, 5 Apr 2020 17:01:05 +0300 Subject: [PATCH 4/4] Fixed lib64 path --- cmake/conan.cmake | 2 +- conanfile.py | 10 +++++++++- src/DaggyCore/CMakeLists.txt | 7 +------ src/cmake/compiler.cmake | 3 +-- 4 files changed, 12 insertions(+), 10 deletions(-) diff --git a/cmake/conan.cmake b/cmake/conan.cmake index 3caa3c48..6d4ab2a4 100644 --- a/cmake/conan.cmake +++ b/cmake/conan.cmake @@ -6,7 +6,7 @@ if(NOT EXISTS ${CMAKE_BINARY_DIR}/conanbuildinfo.cmake) ) endif() include(${CMAKE_BINARY_DIR}/conanbuildinfo.cmake) -conan_basic_setup() +conan_basic_setup(NO_OUTPUT_DIRS) conan_define_targets() conan_set_std() conan_set_libcxx() diff --git a/conanfile.py b/conanfile.py index 9a11f5c8..7b302d36 100644 --- a/conanfile.py +++ b/conanfile.py @@ -67,6 +67,12 @@ def configure(self): self.options["yaml-cpp"].shared = True self.options["libssh2"].shared = True + def _libdir(self): + result = "lib" + if self.settings.arch == "x86_64": + result = "lib64" + return result + def _configure(self): cmake = CMake(self) cmake.definitions["SSH2_SUPPORT"] = self.options.ssh2_support @@ -75,6 +81,7 @@ def _configure(self): cmake.definitions["DAGGY_CORE_STATIC"] = self.options.daggy_core_static cmake.definitions["VERSION"] = self.version cmake.definitions["PACKAGE_DEPS"] = self.options.package_deps + cmake.definitions["CMAKE_INSTALL_LIBDIR"] = self._libdir() cmake.configure() return cmake @@ -88,6 +95,7 @@ def package(self): def package_info(self): self.cpp_info.libs = ["DaggyCore"] + self.cpp_info.libdirs = [self._libdir()] def imports(self): if self.options.package_deps: @@ -95,4 +103,4 @@ def imports(self): self.copy("*.dll", src="@bindirs", dst="bin") self.copy("*.dll", src="@libdirs", dst="bin") else: - self.copy("*.so.*", src="@libdirs", dst="lib/daggy_deps") + self.copy("*.so.*", src="@libdirs", dst="{}/daggy_deps".format(self._libdir())) diff --git a/src/DaggyCore/CMakeLists.txt b/src/DaggyCore/CMakeLists.txt index dc1adfd6..6d4efb0f 100644 --- a/src/DaggyCore/CMakeLists.txt +++ b/src/DaggyCore/CMakeLists.txt @@ -97,9 +97,6 @@ else() endif() target_link_libraries(${TARGET} ${LINK_LIBRARIES}) -set_target_properties(${TARGET} PROPERTIES - PUBLIC_HEADER "${INCLUDE_PUBLIC_HEADERS}") - include(precompiled) include(GenerateExportHeader) generate_export_header(${TARGET} EXPORT_FILE_NAME ${CMAKE_BINARY_DIR}/exports/daggycore_export.h) @@ -119,6 +116,4 @@ else() endif() endif() -message("INSTALL DIR ${CMAKE_INSTALL_LIBDIR}") - -install(TARGETS ${TARGET} PUBLIC_HEADER DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/${TARGET} COMPONENT devel) +install(FILES ${INCLUDE_PUBLIC_HEADERS} DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/${TARGET} COMPONENT devel) diff --git a/src/cmake/compiler.cmake b/src/cmake/compiler.cmake index a98050c5..50b5e02b 100644 --- a/src/cmake/compiler.cmake +++ b/src/cmake/compiler.cmake @@ -2,11 +2,10 @@ include(GNUInstallDirs) set(CMAKE_CXX_STANDARD 17) -set(INCLUDE_INSTALL_DIR include) - make_directory(${CMAKE_BINARY_DIR}/${CMAKE_INSTALL_LIBDIR}) make_directory(${CMAKE_BINARY_DIR}/${CMAKE_INSTALL_BINDIR}) +set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/${CMAKE_INSTALL_LIBDIR}) set(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/${CMAKE_INSTALL_LIBDIR}) set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/${CMAKE_INSTALL_BINDIR})