From de75be72adc11f1442c3871c606b1672e6f1da6d Mon Sep 17 00:00:00 2001 From: Phoebe Date: Mon, 21 Oct 2019 02:13:27 -0700 Subject: [PATCH 1/5] [loguru] extend to generate proper binary on linux --- ports/loguru/CMakeLists.txt | 43 ++++++++++++++++++++++++++++++ ports/loguru/CONTROL | 4 +-- ports/loguru/loguruConfig.cmake.in | 5 ++++ ports/loguru/portfile.cmake | 29 +++++++++++++++----- 4 files changed, 73 insertions(+), 8 deletions(-) create mode 100644 ports/loguru/CMakeLists.txt create mode 100644 ports/loguru/loguruConfig.cmake.in diff --git a/ports/loguru/CMakeLists.txt b/ports/loguru/CMakeLists.txt new file mode 100644 index 00000000000000..15654c0309ee94 --- /dev/null +++ b/ports/loguru/CMakeLists.txt @@ -0,0 +1,43 @@ +cmake_minimum_required(VERSION 3.14) + +project(loguru C CXX) +option(INSTALL_HEADERS "Install header files" ON) + +set(loguru_headers + loguru.hpp +) + +set(loguru_sources + loguru.cpp +) + +add_library(loguru ${loguru_sources}) +target_include_directories(loguru PUBLIC + $ + $) + +set(LOGURU_INCLUDE_INSTALL_DIR include/loguru CACHE PATH "Install directory for headers") +if(INSTALL_HEADERS) + install(FILES ${loguru_headers} DESTINATION ${LOGURU_INCLUDE_INSTALL_DIR}) +endif() + +set(INCLUDE_INSTALL_DIR ${LOGURU_INCLUDE_INSTALL_DIR}) + +include(CMakePackageConfigHelpers) +configure_package_config_file(loguruConfig.cmake.in + ${CMAKE_CURRENT_BINARY_DIR}/loguruConfig.cmake + INSTALL_DESTINATION share/loguru + NO_CHECK_REQUIRED_COMPONENTS_MACRO + PATH_VARS INCLUDE_INSTALL_DIR) + +install(TARGETS loguru + EXPORT loguruTargets + RUNTIME DESTINATION bin + LIBRARY DESTINATION lib + ARCHIVE DESTINATION lib +) + +install(FILES ${CMAKE_CURRENT_BINARY_DIR}/loguruConfig.cmake DESTINATION share/loguru) +install(EXPORT loguruTargets DESTINATION share/loguru) + + diff --git a/ports/loguru/CONTROL b/ports/loguru/CONTROL index baa9503b09fc11..056f0852965e3c 100644 --- a/ports/loguru/CONTROL +++ b/ports/loguru/CONTROL @@ -1,4 +1,4 @@ Source: loguru -Version: v2.0.0 +Version: v2.1.0 +Homepage: https://github.com/emilk/loguru Description: A lightweight and flexible C++ logging library -Build-Depends: \ No newline at end of file diff --git a/ports/loguru/loguruConfig.cmake.in b/ports/loguru/loguruConfig.cmake.in new file mode 100644 index 00000000000000..2ecebbc8aa4189 --- /dev/null +++ b/ports/loguru/loguruConfig.cmake.in @@ -0,0 +1,5 @@ +@PACKAGE_INIT@ + +set_and_check(loguru_INCLUDE_DIR "@PACKAGE_INCLUDE_INSTALL_DIR@") + +include("${CMAKE_CURRENT_LIST_DIR}/loguruTargets.cmake") \ No newline at end of file diff --git a/ports/loguru/portfile.cmake b/ports/loguru/portfile.cmake index 80efb0eead1da4..3019c85a3334e9 100644 --- a/ports/loguru/portfile.cmake +++ b/ports/loguru/portfile.cmake @@ -1,12 +1,29 @@ -include(vcpkg_common_functions) - vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO emilk/loguru - REF v2.0.0 - SHA512 d6358f843689d10a44dc7bf590305cbfb89727e26d971ca4fe439e5468cdb7bcee2aa858368250e9654fb5ecebf63bca9742451881dae78068fecb18f279d988 + REF 9c2fea0d4530657f23259be4132f8101c98b579e #v2.1.0 + SHA512 49eebf8648f9d29273af76dca0a4e49155daa3664e98979df005e64eb0fa9f4eeb4228245327d469772c51076571acbe39a644eba531444d8676d9709a7e3914 HEAD_REF master ) -file(INSTALL ${SOURCE_PATH}/loguru.hpp DESTINATION ${CURRENT_PACKAGES_DIR}/include/loguru) -file(COPY ${CURRENT_PORT_DIR}/copyright DESTINATION ${CURRENT_PACKAGES_DIR}/share/loguru) \ No newline at end of file +if(VCPKG_TARGET_IS_WINDOWS) + file(INSTALL ${SOURCE_PATH}/loguru.hpp DESTINATION ${CURRENT_PACKAGES_DIR}/include/loguru) +endif() + +if(VCPKG_TARGET_IS_LINUX OR VCPKG_TARGET_IS_OSX) + configure_file(${CMAKE_CURRENT_LIST_DIR}/CMakeLists.txt ${SOURCE_PATH}/CMakeLists.txt COPYONLY) + configure_file(${CMAKE_CURRENT_LIST_DIR}/loguruConfig.cmake.in ${SOURCE_PATH}/loguruConfig.cmake.in COPYONLY) + + vcpkg_configure_cmake( + SOURCE_PATH ${SOURCE_PATH} + PREFER_NINJA + OPTIONS_DEBUG + -DINSTALL_HEADERS=OFF + ) + + vcpkg_install_cmake() + vcpkg_fixup_cmake_targets() + vcpkg_copy_pdbs() +endif() + +file(INSTALL ${CMAKE_CURRENT_LIST_DIR}/copyright DESTINATION ${CURRENT_PACKAGES_DIR}/share/${PORT}) From c446f98755b79ae3d03ce6dd778a4f945f3d0eb6 Mon Sep 17 00:00:00 2001 From: Phoebe Date: Mon, 21 Oct 2019 04:11:16 -0700 Subject: [PATCH 2/5] Update the changes --- ports/loguru/CMakeLists.txt | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/ports/loguru/CMakeLists.txt b/ports/loguru/CMakeLists.txt index 15654c0309ee94..0295a168570b77 100644 --- a/ports/loguru/CMakeLists.txt +++ b/ports/loguru/CMakeLists.txt @@ -1,6 +1,10 @@ cmake_minimum_required(VERSION 3.14) -project(loguru C CXX) +project(loguru CXX) + +set(CMAKE_CXX_STANDARD 11) +set(CMAKE_CXX_LINK_FLAGS -lpthread -ldl) + option(INSTALL_HEADERS "Install header files" ON) set(loguru_headers From afbbf799295890e69532313e8a4e8ebd10b03e1e Mon Sep 17 00:00:00 2001 From: Phoebe Date: Mon, 21 Oct 2019 18:06:39 -0700 Subject: [PATCH 3/5] Update CMakeLists.txt --- ports/loguru/CMakeLists.txt | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/ports/loguru/CMakeLists.txt b/ports/loguru/CMakeLists.txt index 0295a168570b77..3f7a8d5ad5a670 100644 --- a/ports/loguru/CMakeLists.txt +++ b/ports/loguru/CMakeLists.txt @@ -1,9 +1,9 @@ -cmake_minimum_required(VERSION 3.14) +cmake_minimum_required(VERSION 3.12) project(loguru CXX) set(CMAKE_CXX_STANDARD 11) -set(CMAKE_CXX_LINK_FLAGS -lpthread -ldl) +set(CMAKE_CXX_LINK_FLAGS ${CMAKE_CXX_LINK_FLAGS} -lpthread -ldl) option(INSTALL_HEADERS "Install header files" ON) From fd6822a57b9a939f92a5a8206aa06164a16edbfd Mon Sep 17 00:00:00 2001 From: Phoebe Date: Tue, 22 Oct 2019 03:11:45 -0700 Subject: [PATCH 4/5] Remove CMAKE_CXX_LINK_FLAGS --- ports/loguru/CMakeLists.txt | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/ports/loguru/CMakeLists.txt b/ports/loguru/CMakeLists.txt index 3f7a8d5ad5a670..07870ef5947ce2 100644 --- a/ports/loguru/CMakeLists.txt +++ b/ports/loguru/CMakeLists.txt @@ -1,16 +1,13 @@ cmake_minimum_required(VERSION 3.12) project(loguru CXX) - set(CMAKE_CXX_STANDARD 11) -set(CMAKE_CXX_LINK_FLAGS ${CMAKE_CXX_LINK_FLAGS} -lpthread -ldl) option(INSTALL_HEADERS "Install header files" ON) set(loguru_headers loguru.hpp ) - set(loguru_sources loguru.cpp ) @@ -20,6 +17,12 @@ target_include_directories(loguru PUBLIC $ $) +if(UNIX) + set(THREADS_PREFER_PTHREAD_FLAG ON) + find_package(Threads REQUIRED) + target_link_libraries(loguru PRIVATE Threads::Threads ${CMAKE_DL_LIBS}) +endif() + set(LOGURU_INCLUDE_INSTALL_DIR include/loguru CACHE PATH "Install directory for headers") if(INSTALL_HEADERS) install(FILES ${loguru_headers} DESTINATION ${LOGURU_INCLUDE_INSTALL_DIR}) @@ -43,5 +46,3 @@ install(TARGETS loguru install(FILES ${CMAKE_CURRENT_BINARY_DIR}/loguruConfig.cmake DESTINATION share/loguru) install(EXPORT loguruTargets DESTINATION share/loguru) - - From 953198f123b093d354568d41c8c64f3fdc446e6b Mon Sep 17 00:00:00 2001 From: PhoebeHui Date: Thu, 2 Jan 2020 22:26:27 -0800 Subject: [PATCH 5/5] Add find_dependency(Threads) to config file --- ports/loguru/CMakeLists.txt | 2 +- ports/loguru/loguruConfig.cmake.in | 8 ++++++-- 2 files changed, 7 insertions(+), 3 deletions(-) diff --git a/ports/loguru/CMakeLists.txt b/ports/loguru/CMakeLists.txt index 07870ef5947ce2..3688e11210c56c 100644 --- a/ports/loguru/CMakeLists.txt +++ b/ports/loguru/CMakeLists.txt @@ -20,7 +20,7 @@ target_include_directories(loguru PUBLIC if(UNIX) set(THREADS_PREFER_PTHREAD_FLAG ON) find_package(Threads REQUIRED) - target_link_libraries(loguru PRIVATE Threads::Threads ${CMAKE_DL_LIBS}) + target_link_libraries(loguru PUBLIC Threads::Threads ${CMAKE_DL_LIBS}) endif() set(LOGURU_INCLUDE_INSTALL_DIR include/loguru CACHE PATH "Install directory for headers") diff --git a/ports/loguru/loguruConfig.cmake.in b/ports/loguru/loguruConfig.cmake.in index 2ecebbc8aa4189..b75b189e0484e0 100644 --- a/ports/loguru/loguruConfig.cmake.in +++ b/ports/loguru/loguruConfig.cmake.in @@ -1,5 +1,9 @@ @PACKAGE_INIT@ -set_and_check(loguru_INCLUDE_DIR "@PACKAGE_INCLUDE_INSTALL_DIR@") +if(UNIX) + include(CMakeFindDependencyMacro) + find_dependency(Threads) +endif() -include("${CMAKE_CURRENT_LIST_DIR}/loguruTargets.cmake") \ No newline at end of file +set_and_check(loguru_INCLUDE_DIR "@PACKAGE_INCLUDE_INSTALL_DIR@") +include("${CMAKE_CURRENT_LIST_DIR}/loguruTargets.cmake")