From e217f695ddb1494ffa66807b6391eec9779bdbc0 Mon Sep 17 00:00:00 2001 From: myd7349 Date: Tue, 5 Mar 2019 02:28:32 +0800 Subject: [PATCH] [nanomsg] Update to 1.1.5 and add tool feature (#5500) * [nanomsg] Update to 1.1.5 * [nanomsg] Add tool feature and remove patch --- ports/nanomsg/CONTROL | 5 ++- ports/nanomsg/portfile.cmake | 65 ++++++++++++++++++++++++++++++------ 2 files changed, 58 insertions(+), 12 deletions(-) diff --git a/ports/nanomsg/CONTROL b/ports/nanomsg/CONTROL index 8e7f6a2f0d..c560edbd13 100644 --- a/ports/nanomsg/CONTROL +++ b/ports/nanomsg/CONTROL @@ -1,4 +1,7 @@ Source: nanomsg -Version: 1.1.4 +Version: 1.1.5 Description: a simple high-performance implementation of several "scalability protocols". These scalability protocols are light-weight messaging protocols which can be used to solve a number of very common messaging patterns, such as request/reply, publish/subscribe, surveyor/respondent, and so forth. These protocols can run over a variety of transports such as TCP, UNIX sockets, and even WebSocket. + +Feature: tool +Description: nanomsg tool (nanocat) diff --git a/ports/nanomsg/portfile.cmake b/ports/nanomsg/portfile.cmake index ca6d5c2609..71b26ea5e8 100644 --- a/ports/nanomsg/portfile.cmake +++ b/ports/nanomsg/portfile.cmake @@ -3,13 +3,19 @@ include(vcpkg_common_functions) vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO nanomsg/nanomsg - REF 1.1.4 - SHA512 a1f002f988f2d98eff03387b496fe15a099fef4eb9ccd1c46ade63fbbe5a4ad4cf9fa0fd1e612e1a6f2747bc2af63b7044ec1e920e1c9a0d8c8bc2191ad7046a + REF 1.1.5 + SHA512 773b8e169a7accac21414c63972423a249164f5b843c6c65c1b03a2eb90d21da788a98debdeb396dab795e52d30605696bc2cf65e5e05687bf115438d5b22717 HEAD_REF master ) string(COMPARE EQUAL "${VCPKG_LIBRARY_LINKAGE}" "static" NN_STATIC_LIB) +if("tool" IN_LIST FEATURES) + set(NN_ENABLE_NANOCAT ON) +else() + set(NN_ENABLE_NANOCAT OFF) +endif() + vcpkg_configure_cmake( SOURCE_PATH ${SOURCE_PATH} PREFER_NINJA @@ -19,22 +25,59 @@ vcpkg_configure_cmake( -DNN_TESTS=OFF -DNN_TOOLS=OFF -DNN_ENABLE_DOC=OFF + -DNN_ENABLE_NANOCAT=${NN_ENABLE_NANOCAT} ) vcpkg_install_cmake() -vcpkg_fixup_cmake_targets(CONFIG_PATH "lib/cmake/nanomsg") +file(STRINGS ${SOURCE_PATH}/.version NN_PACKAGE_VERSION) -file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/include) +vcpkg_fixup_cmake_targets(CONFIG_PATH "lib/cmake/nanomsg-${NN_PACKAGE_VERSION}") -if(VCPKG_LIBRARY_LINKAGE STREQUAL "static") - file(READ ${CURRENT_PACKAGES_DIR}/include/nanomsg/nn.h _contents) - string(REPLACE "defined(NN_STATIC_LIB)" "1" _contents "${_contents}") - file(WRITE ${CURRENT_PACKAGES_DIR}/include/nanomsg/nn.h "${_contents}") +vcpkg_replace_string( + ${CURRENT_PACKAGES_DIR}/share/${PORT}/nanomsg-config.cmake + "lib/cmake/nanomsg-${NN_PACKAGE_VERSION}" + "share/nanomsg" +) + +if(NN_ENABLE_NANOCAT) + if(CMAKE_HOST_WIN32) + set(EXECUTABLE_SUFFIX ".exe") + else() + set(EXECUTABLE_SUFFIX "") + endif() + + file(INSTALL ${CURRENT_PACKAGES_DIR}/bin/nanocat${EXECUTABLE_SUFFIX} + DESTINATION ${CURRENT_PACKAGES_DIR}/tools/${PORT}) + vcpkg_copy_tool_dependencies(${CURRENT_PACKAGES_DIR}/tools/${PORT}) + + file(REMOVE + ${CURRENT_PACKAGES_DIR}/bin/nanocat${EXECUTABLE_SUFFIX} + ${CURRENT_PACKAGES_DIR}/debug/bin/nanocat${EXECUTABLE_SUFFIX} + ) endif() -file(INSTALL - ${SOURCE_PATH}/COPYING - DESTINATION ${CURRENT_PACKAGES_DIR}/share/nanomsg RENAME copyright) +file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/include ${CURRENT_PACKAGES_DIR}/debug/share) + +if(VCPKG_LIBRARY_LINKAGE STREQUAL "static") + file(REMOVE_RECURSE + ${CURRENT_PACKAGES_DIR}/bin + ${CURRENT_PACKAGES_DIR}/debug/bin + ) + + vcpkg_replace_string( + ${CURRENT_PACKAGES_DIR}/include/nanomsg/nn.h + "defined(NN_STATIC_LIB)" + "1 // defined(NN_STATIC_LIB)" + ) + + vcpkg_replace_string( + ${CURRENT_PACKAGES_DIR}/share/${PORT}/nanomsg-config.cmake + "set_and_check(nanomsg_BINDIR \${PACKAGE_PREFIX_DIR}/bin)" + "" + ) +endif() + +configure_file(${SOURCE_PATH}/COPYING ${CURRENT_PACKAGES_DIR}/share/${PORT}/copyright COPYONLY) vcpkg_copy_pdbs()