aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authormyd7349 <myd7349@gmail.com>2020-06-11 16:00:07 +0800
committerGitHub <noreply@github.com>2020-06-11 01:00:07 -0700
commitcb537a2aeef96e96663d4b2fa3a6f18dcd1b5457 (patch)
tree1140aa6313490c4dd3d6c5b60b5e6ac100a86c84
parent1901067fc673c25b76a67cc2d18d0d827e9e59b0 (diff)
downloadvcpkg-cb537a2aeef96e96663d4b2fa3a6f18dcd1b5457.tar.gz
vcpkg-cb537a2aeef96e96663d4b2fa3a6f18dcd1b5457.zip
[licensepp] Add new port (#11711)
* [licensepp] Add new port * [cryptopp-pem] Update to a newer version that will make lincensepp happy * Revert "[cryptopp-pem] Update to a newer version that will make lincensepp happy" This reverts commit 726e3ce3d20bc6266bc7bf63cb35572fe297869f. This version can not compile with cryptopp. * [licensepp] Finish it * [licensepp] Fix interface include directory * [licensepp] Fixup cmake targets * [licensepp] -O3 is not recognised by msvc * [licensepp] Fix _iterator_debug_level value mismatch * [licensepp] Update patch file * [licensepp] Fail fast on UWP * [licensepp] Simplify patch file * [licensepp] Tabs -> Spaces
-rw-r--r--ports/cryptopp/CONTROL5
-rw-r--r--ports/cryptopp/portfile.cmake16
-rw-r--r--ports/licensepp/CONTROL6
-rw-r--r--ports/licensepp/FindCryptoPP.cmake27
-rw-r--r--ports/licensepp/fix-cmake.patch25
-rw-r--r--ports/licensepp/portfile.cmake39
-rw-r--r--ports/licensepp/use-old-pem-pack.patch13
-rw-r--r--scripts/ci.baseline.txt2
8 files changed, 132 insertions, 1 deletions
diff --git a/ports/cryptopp/CONTROL b/ports/cryptopp/CONTROL
index 9c11e1906..c70415dd1 100644
--- a/ports/cryptopp/CONTROL
+++ b/ports/cryptopp/CONTROL
@@ -1,4 +1,7 @@
Source: cryptopp
-Version: 8.2.0-1
+Version: 8.2.0-2
Homepage: https://github.com/weidai11/cryptopp
Description: Crypto++ is a free C++ class library of cryptographic schemes.
+
+Feature: pem-pack
+Description: Crypto++ with PEM pack
diff --git a/ports/cryptopp/portfile.cmake b/ports/cryptopp/portfile.cmake
index 36c747884..b88f2e321 100644
--- a/ports/cryptopp/portfile.cmake
+++ b/ports/cryptopp/portfile.cmake
@@ -24,6 +24,22 @@ vcpkg_from_github(
file(COPY ${CMAKE_SOURCE_PATH}/cryptopp-config.cmake DESTINATION ${SOURCE_PATH})
file(COPY ${CMAKE_SOURCE_PATH}/CMakeLists.txt DESTINATION ${SOURCE_PATH})
+if("pem-pack" IN_LIST FEATURES)
+ vcpkg_from_github(
+ OUT_SOURCE_PATH PEM_PACK_SOURCE_PATH
+ REPO noloader/cryptopp-pem
+ REF 095f08ff2ef9bca7b81036a59f2395e4f08ce2e8
+ SHA512 49912758a635faca1f49665ac9552b20576b46e0283aaabc19bb012bdc80586106452018e5088b9b46967717982ca6022ca968edc4cac96a7506d2b1a3e4bf13
+ HEAD_REF master
+ )
+
+ file(GLOB PEM_PACK_FILES
+ ${PEM_PACK_SOURCE_PATH}/*.h
+ ${PEM_PACK_SOURCE_PATH}/*.cpp
+ )
+ file(COPY ${PEM_PACK_FILES} DESTINATION ${SOURCE_PATH})
+endif()
+
# disable assembly on OSX and ARM Windows to fix broken build
if (VCPKG_TARGET_IS_OSX)
set(CRYPTOPP_DISABLE_ASM "ON")
diff --git a/ports/licensepp/CONTROL b/ports/licensepp/CONTROL
new file mode 100644
index 000000000..c21d13b4a
--- /dev/null
+++ b/ports/licensepp/CONTROL
@@ -0,0 +1,6 @@
+Source: licensepp
+Version: 2020-05-19
+Description: Cross platform software licensing library
+Build-Depends: cryptopp[pem-pack]
+Supports: !uwp
+Homepage: https://github.com/zuhd-org/licensepp
diff --git a/ports/licensepp/FindCryptoPP.cmake b/ports/licensepp/FindCryptoPP.cmake
new file mode 100644
index 000000000..c7e0f709c
--- /dev/null
+++ b/ports/licensepp/FindCryptoPP.cmake
@@ -0,0 +1,27 @@
+find_path(CRYPTOPP_INCLUDE_DIRS NAMES cryptopp/cryptlib.h)
+
+get_filename_component(_prefix_path ${CRYPTOPP_INCLUDE_DIRS} PATH)
+
+find_library(
+ CRYPTOPP_LIBRARY_DEBUG
+ NAMES cryptopp-static cryptopp
+ PATHS ${_prefix_path}/debug/lib
+ NO_DEFAULT_PATH
+)
+find_library(
+ CRYPTOPP_LIBRARY_RELEASE
+ NAMES cryptopp-static cryptopp
+ PATHS ${_prefix_path}/lib
+ NO_DEFAULT_PATH
+)
+
+unset(_prefix_path)
+
+include(SelectLibraryConfigurations)
+select_library_configurations(CRYPTOPP)
+
+include(FindPackageHandleStandardArgs)
+find_package_handle_standard_args(
+ CryptoPP
+ REQUIRED_VARS CRYPTOPP_LIBRARIES CRYPTOPP_INCLUDE_DIRS
+)
diff --git a/ports/licensepp/fix-cmake.patch b/ports/licensepp/fix-cmake.patch
new file mode 100644
index 000000000..f421b6d92
--- /dev/null
+++ b/ports/licensepp/fix-cmake.patch
@@ -0,0 +1,25 @@
+diff --git "a/CMakeLists.txt" "b/CMakeLists.txt"
+index b2c39d1..24a6866 100644
+--- "a/CMakeLists.txt"
++++ "b/CMakeLists.txt"
+@@ -35,10 +35,8 @@ if (APPLE)
+ endif()
+ endif()
+
+-if(MSVC)
+- list (APPEND CMAKE_CXX_FLAGS " -std=c++11 -O3 ")
+-else()
+- list (APPEND CMAKE_CXX_FLAGS " -std=c++11 -O3 -Wall -Werror ")
++if(CMAKE_CXX_COMPILER_ID STREQUAL "GNU" OR CMAKE_CXX_COMPILER_ID MATCHES "Clang")
++ set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11 -O3 -Wall -Werror")
+ endif()
+
+ # Check for cryptopp (static)
+@@ -73,6 +71,7 @@ endif()
+ set_target_properties (licensepp-lib PROPERTIES
+ VERSION ${LICENSEPP_SOVERSION}
+ )
++target_include_directories (licensepp-lib PUBLIC $<INSTALL_INTERFACE:include>)
+ target_link_libraries (licensepp-lib
+ ${CRYPTOPP_LIBRARIES}
+ )
diff --git a/ports/licensepp/portfile.cmake b/ports/licensepp/portfile.cmake
new file mode 100644
index 000000000..171b26fcc
--- /dev/null
+++ b/ports/licensepp/portfile.cmake
@@ -0,0 +1,39 @@
+vcpkg_fail_port_install(ON_TARGET "UWP")
+
+vcpkg_check_linkage(ONLY_STATIC_LIBRARY)
+
+vcpkg_from_github(
+ OUT_SOURCE_PATH SOURCE_PATH
+ REPO amrayn/licensepp
+ REF 0b6d669c0b323be004f73d8c811d38158ce8c0c7
+ SHA512 2161575815d8ff49110d7c2823662ba30d9f1ca2eb6be6dad1ee0807fb3fa9f28483839a133c9d380035254df7c452f8d6fa7f17fd4f29acd8b9bfbbda059291
+ HEAD_REF master
+ PATCHES
+ # TODO:
+ # In this commit, https://github.com/noloader/cryptopp-pem/commit/0cfa60820ec1d5e8ac4d77a0a8786ee43e9a2400
+ # the parameter orders have been changed.
+ # But we can not update pem-pack to this version or newer because it
+ # won't compile with the current version of cryptopp in `vcpkg`.
+ # Remove this patch in the future.
+ use-old-pem-pack.patch
+ # TODO: Remove this patch if https://github.com/amrayn/licensepp/pull/33 was merged.
+ fix-cmake.patch
+)
+
+file(COPY ${CMAKE_CURRENT_LIST_DIR}/FindCryptoPP.cmake DESTINATION ${SOURCE_PATH}/cmake)
+
+vcpkg_configure_cmake(
+ SOURCE_PATH ${SOURCE_PATH}
+ PREFER_NINJA
+ OPTIONS
+ -Dtest=OFF
+ -Dtravis=OFF
+)
+
+vcpkg_install_cmake()
+
+vcpkg_fixup_cmake_targets(CONFIG_PATH share/${PORT}/cmake)
+
+file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/include)
+
+file(INSTALL ${SOURCE_PATH}/LICENSE DESTINATION ${CURRENT_PACKAGES_DIR}/share/${PORT} RENAME copyright)
diff --git a/ports/licensepp/use-old-pem-pack.patch b/ports/licensepp/use-old-pem-pack.patch
new file mode 100644
index 000000000..d7c05edae
--- /dev/null
+++ b/ports/licensepp/use-old-pem-pack.patch
@@ -0,0 +1,13 @@
+diff --git a/src/external/Ripe.cc b/src/external/Ripe.cc
+index 6ff9561..a1d1eec 100644
+--- a/src/external/Ripe.cc
++++ b/src/external/Ripe.cc
+@@ -227,7 +227,7 @@ Ripe::KeyPair Ripe::generateRSAKeyPair(unsigned int length, const std::string& s
+ if (secret.empty()) {
+ PEM_Save(snk, privateKey);
+ } else {
+- PEM_Save(snk, privateKey, rng, PRIVATE_RSA_ALGORITHM, secret.data(), secret.size());
++ PEM_Save(snk, rng, privateKey, PRIVATE_RSA_ALGORITHM, secret.data(), secret.size());
+ }
+ snk.MessageEnd();
+ }
diff --git a/scripts/ci.baseline.txt b/scripts/ci.baseline.txt
index dbb69ed08..362035c12 100644
--- a/scripts/ci.baseline.txt
+++ b/scripts/ci.baseline.txt
@@ -989,6 +989,8 @@ libxslt:x64-uwp=fail
libyuv:arm-uwp=fail
libyuv:x64-uwp=fail
libzippp:x64-linux=ignore
+licensepp:arm-uwp=fail
+licensepp:x64-uwp=fail
linenoise-ng:arm-uwp=fail
linenoise-ng:x64-uwp=fail
live555:arm64-windows=fail