aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJackBoosY <47264268+JackBoosY@users.noreply.github.com>2019-11-26 18:40:32 +0800
committerVictor Romero <romerosanchezv@gmail.com>2019-11-26 02:40:32 -0800
commit506299a173c565f64976be2a2d24a9efbc4f7117 (patch)
tree84846643a26e7d2af439289c6e8e4fa139e42e42
parent61dc5580d6e57ad4ad025a7d47d0af3de7998007 (diff)
downloadvcpkg-506299a173c565f64976be2a2d24a9efbc4f7117.tar.gz
vcpkg-506299a173c565f64976be2a2d24a9efbc4f7117.zip
[libmodman, libproxy] Add new ports (#8931)
* [libproxy]Add new port. * [libmodman]Add new port. * [libproxy]Support windows, set dependency libmodman. * Add usage, add vcpkg-cmake-wrapper.cmake to libproxy. * add empty line to usage. * [libmodman]Fix undefined typeid in Visual Studio 2019. * [libproxy]Fix install libproxy.py error when it not exist. * Disable arm/uwp build. * Enable static build on UNIX. * [libproxy]Re-generate patches, delete default feature tools and use system libmodman. * [libproxy]Disable install libproxy.py. * [libproxy]Disable install Libproxy.pm and PLlibproxy. * [libproxy]DISABLE PARALLEL CONFIGURE * [libproxy]Revert 6f233cced1a51a086e5fea5bf290565d9847d4b7 * [libmodman/libproxy]Fix arm build.
-rw-r--r--ports/libmodman/CONTROL4
-rw-r--r--ports/libmodman/fix-install-path.patch39
-rw-r--r--ports/libmodman/fix-undefined-typeid.patch12
-rw-r--r--ports/libmodman/portfile.cmake38
-rw-r--r--ports/libmodman/usage5
-rw-r--r--ports/libmodman/vcpkg-cmake-wrapper.cmake8
-rw-r--r--ports/libproxy/CONTROL8
-rw-r--r--ports/libproxy/fix-arm-build.patch15
-rw-r--r--ports/libproxy/fix-dependency-libmodman.patch21
-rw-r--r--ports/libproxy/fix-install-py.patch36
-rw-r--r--ports/libproxy/fix-tools-path.patch27
-rw-r--r--ports/libproxy/portfile.cmake43
-rw-r--r--ports/libproxy/support-windows.patch83
-rw-r--r--ports/libproxy/usage5
-rw-r--r--ports/libproxy/vcpkg-cmake-wrapper.cmake8
15 files changed, 352 insertions, 0 deletions
diff --git a/ports/libmodman/CONTROL b/ports/libmodman/CONTROL
new file mode 100644
index 000000000..70cb9d811
--- /dev/null
+++ b/ports/libmodman/CONTROL
@@ -0,0 +1,4 @@
+Source: libmodman
+Version: 2.0.1
+Homepage: https://code.google.com/p/libmodman
+Description: a simple library for managing modules \ No newline at end of file
diff --git a/ports/libmodman/fix-install-path.patch b/ports/libmodman/fix-install-path.patch
new file mode 100644
index 000000000..066813b40
--- /dev/null
+++ b/ports/libmodman/fix-install-path.patch
@@ -0,0 +1,39 @@
+diff --git a/libmodman/CMakeLists.txt b/libmodman/CMakeLists.txt
+index 0aff593..9e419ce 100644
+--- a/libmodman/CMakeLists.txt
++++ b/libmodman/CMakeLists.txt
+@@ -30,15 +30,15 @@ if(NOT WIN32 AND NOT APPLE)
+ configure_file(libmodman-2.0.pc.in
+ ${CMAKE_CURRENT_BINARY_DIR}/libmodman-2.0.pc @ONLY)
+ install(FILES ${CMAKE_CURRENT_BINARY_DIR}/libmodman-2.0.pc
+- DESTINATION ${LIB_INSTALL_DIR}/pkgconfig)
++ DESTINATION lib/pkgconfig)
+ endif()
+
+ # CMake Find helper
+-if (NOT WIN32 AND NOT APPLE)
++if (1)
+ configure_file(Findlibmodman.cmake.in
+ ${CMAKE_CURRENT_BINARY_DIR}/Findlibmodman.cmake @ONLY)
+ install(FILES ${CMAKE_CURRENT_BINARY_DIR}/Findlibmodman.cmake
+- DESTINATION ${SHARE_INSTALL_DIR}/cmake/Modules)
++ DESTINATION share/${PROJECT_NAME})
+ endif()
+
+ # Define the library itself
+@@ -50,8 +50,13 @@ if(NOT WIN32)
+ target_link_libraries(modman dl)
+ endif()
+ set_target_properties(modman PROPERTIES PREFIX "lib" VERSION 1.0.0 SOVERSION 1)
+-install(TARGETS modman DESTINATION ${LIB_INSTALL_DIR})
+-install(FILES module_manager.hpp module.hpp DESTINATION ${INCLUDE_INSTALL_DIR}/${PROJECT_NAME})
++install(
++ TARGETS modman
++ RUNTIME DESTINATION bin
++ LIBRARY DESTINATION lib
++ ARCHIVE DESTINATION lib
++)
++install(FILES module_manager.hpp module.hpp DESTINATION include/${PROJECT_NAME})
+
+ ### Tests
+ add_testdirectory(test)
diff --git a/ports/libmodman/fix-undefined-typeid.patch b/ports/libmodman/fix-undefined-typeid.patch
new file mode 100644
index 000000000..93db67587
--- /dev/null
+++ b/ports/libmodman/fix-undefined-typeid.patch
@@ -0,0 +1,12 @@
+diff --git a/libmodman/test/main.hpp b/libmodman/test/main.hpp
+index 90ca87f..f4f8844 100644
+--- a/libmodman/test/main.hpp
++++ b/libmodman/test/main.hpp
+@@ -20,6 +20,7 @@
+ #ifndef MAIN_HPP_
+ #define MAIN_HPP_
+
++#include <typeinfo>
+ #include "../module_manager.hpp"
+
+ using namespace std;
diff --git a/ports/libmodman/portfile.cmake b/ports/libmodman/portfile.cmake
new file mode 100644
index 000000000..b2f32cb0c
--- /dev/null
+++ b/ports/libmodman/portfile.cmake
@@ -0,0 +1,38 @@
+vcpkg_fail_port_install(ON_TARGET "UWP")
+
+# Enable static build in UNIX
+if (VCPKG_TARGET_IS_WINDOWS)
+ vcpkg_fail_port_install(ON_LIBRARY_LINKAGE "static")
+endif()
+
+set(LIBMODMAN_VER 2.0.1)
+
+vcpkg_download_distfile(ARCHIVE
+ URLS "https://storage.googleapis.com/google-code-archive-downloads/v2/code.google.com/libmodman/libmodman-${LIBMODMAN_VER}.zip"
+ FILENAME "libmodman-${LIBMODMAN_VER}.zip"
+ SHA512 1fecc0fa3637c4aa86d114f5bc991605172d39183fa0f39d8c7858ef5d0d894152025bd426de4dd017a41372d800bf73f53b2328c57b77352a508e12792729fa
+)
+
+vcpkg_extract_source_archive_ex(
+ ARCHIVE ${ARCHIVE}
+ OUT_SOURCE_PATH SOURCE_PATH
+ PATCHES
+ fix-install-path.patch
+ fix-undefined-typeid.patch
+)
+
+vcpkg_configure_cmake(
+ SOURCE_PATH ${SOURCE_PATH}
+ PREFER_NINJA
+)
+
+vcpkg_install_cmake()
+vcpkg_fixup_cmake_targets(CONFIG_PATH share/libmodman)
+vcpkg_copy_pdbs()
+
+file(COPY ${CMAKE_CURRENT_LIST_DIR}/vcpkg-cmake-wrapper.cmake
+ ${CMAKE_CURRENT_LIST_DIR}/usage
+ DESTINATION ${CURRENT_PACKAGES_DIR}/share/${PORT})
+file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/include ${CURRENT_PACKAGES_DIR}/debug/share)
+
+file(INSTALL ${SOURCE_PATH}/COPYING DESTINATION ${CURRENT_PACKAGES_DIR}/share/${PORT} RENAME copyright)
diff --git a/ports/libmodman/usage b/ports/libmodman/usage
new file mode 100644
index 000000000..220de42e0
--- /dev/null
+++ b/ports/libmodman/usage
@@ -0,0 +1,5 @@
+The package libmodman provides CMake targets:
+
+ find_package(libmodman CONFIG REQUIRED)
+ target_include_directories(main PRIVATE ${LIBMODMAN_INCLUDE_DIR})
+ target_link_libraries(main PRIVATE ${LIBMODMAN_LIBRARIES})
diff --git a/ports/libmodman/vcpkg-cmake-wrapper.cmake b/ports/libmodman/vcpkg-cmake-wrapper.cmake
new file mode 100644
index 000000000..6d67806f5
--- /dev/null
+++ b/ports/libmodman/vcpkg-cmake-wrapper.cmake
@@ -0,0 +1,8 @@
+set(LIBMODMAN_PREV_MODULE_PATH ${CMAKE_MODULE_PATH})
+list(APPEND CMAKE_MODULE_PATH ${CMAKE_CURRENT_LIST_DIR})
+
+if(NOT LIBMODMAN_LIBRARIES)
+ _find_package(${ARGS})
+endif()
+
+set(CMAKE_MODULE_PATH ${LIBMODMAN_PREV_MODULE_PATH})
diff --git a/ports/libproxy/CONTROL b/ports/libproxy/CONTROL
new file mode 100644
index 000000000..395f19ecd
--- /dev/null
+++ b/ports/libproxy/CONTROL
@@ -0,0 +1,8 @@
+Source: libproxy
+Version: 0.4.15
+Homepage: https://github.com/libproxy/libproxy
+Description: libproxy is a library that provides automatic proxy configuration management.
+Build-Depends: libmodman
+
+Feature: tools
+Description: build tools \ No newline at end of file
diff --git a/ports/libproxy/fix-arm-build.patch b/ports/libproxy/fix-arm-build.patch
new file mode 100644
index 000000000..ad898c835
--- /dev/null
+++ b/ports/libproxy/fix-arm-build.patch
@@ -0,0 +1,15 @@
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index 51b0e5e..aa94b87 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -51,6 +51,10 @@ else()
+ endif()
+ endif()
+
++if (WIN32)
++ link_libraries(Advapi32)
++endif()
++
+ # Conditionally build bindings
+ if(NOT WIN32)
+ add_subdirectory(bindings)
diff --git a/ports/libproxy/fix-dependency-libmodman.patch b/ports/libproxy/fix-dependency-libmodman.patch
new file mode 100644
index 000000000..c84b86d01
--- /dev/null
+++ b/ports/libproxy/fix-dependency-libmodman.patch
@@ -0,0 +1,21 @@
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index 451e7a6..b6782fb 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -32,13 +32,15 @@ option(WITH_WEBKIT3 "Build against gtk-3 version of webkitgtk" OFF)
+ ### Subdirectories
+ # Conditionally build bundled libmodman
+ option(FORCE_SYSTEM_LIBMODMAN "Force using system libmodman" OFF)
+-find_package(libmodman QUIET)
++find_package(libmodman REQUIRED)
+ if(LIBMODMAN_FOUND)
+ if("${LIBMODMAN_VERSION_MAJOR}" STREQUAL "2")
+ message(STATUS "Building with system libmodman")
+ else()
+ message(FATAL_ERROR "Found incompatible libmodman on your system (libmodman 2.X is needed)")
+ endif()
++ include_directories(${LIBMODMAN_INCLUDE_DIR})
++ link_libraries(${LIBMODMAN_LIBRARIES})
+ else()
+ if(FORCE_SYSTEM_LIBMODMAN)
+ message(FATAL_ERROR "Libmodman could not be found on your system")
diff --git a/ports/libproxy/fix-install-py.patch b/ports/libproxy/fix-install-py.patch
new file mode 100644
index 000000000..c429be74b
--- /dev/null
+++ b/ports/libproxy/fix-install-py.patch
@@ -0,0 +1,36 @@
+diff --git a/bindings/python/python3/CMakeLists.txt b/bindings/python/python3/CMakeLists.txt
+index bf87dfc..9f94c2d 100644
+--- a/bindings/python/python3/CMakeLists.txt
++++ b/bindings/python/python3/CMakeLists.txt
+@@ -21,5 +21,4 @@ if(PYTHON3INTERP_FOUND)
+
+ message(STATUS "Using PYTHON3_SITEPKG_DIR=${PYTHON3_SITEPKG_DIR}")
+
+- install(FILES ../libproxy.py DESTINATION ${PYTHON3_SITEPKG_DIR})
+ endif()
+diff --git a/bindings/python/python2/CMakeLists.txt b/bindings/python/python2/CMakeLists.txt
+index 00df551..15d78f9 100644
+--- a/bindings/python/python2/CMakeLists.txt
++++ b/bindings/python/python2/CMakeLists.txt
+@@ -21,5 +21,4 @@ if(PYTHON2INTERP_FOUND)
+
+ message(STATUS "Using PYTHON2_SITEPKG_DIR=${PYTHON2_SITEPKG_DIR}")
+
+- install(FILES ../libproxy.py DESTINATION ${PYTHON2_SITEPKG_DIR})
+ endif()
+diff --git a/bindings/perl/lib/CMakeLists.txt b/bindings/perl/lib/CMakeLists.txt
+index 9856627..f54c138 100644
+--- a/bindings/perl/lib/CMakeLists.txt
++++ b/bindings/perl/lib/CMakeLists.txt
+@@ -1,2 +1 @@
+ add_custom_target(PMlibproxy ALL ${CMAKE_COMMAND} -E copy ${CMAKE_CURRENT_SOURCE_DIR}/Libproxy.pm ${CMAKE_BINARY_DIR}/perl/blib/lib/Libproxy.pm)
+-install( FILES Libproxy.pm DESTINATION ${PX_PERL_ARCH}/Net )
+diff --git a/bindings/perl/src/CMakeLists.txt b/bindings/perl/src/CMakeLists.txt
+index 05176c4..9ca532f 100644
+--- a/bindings/perl/src/CMakeLists.txt
++++ b/bindings/perl/src/CMakeLists.txt
+@@ -21,4 +21,3 @@ target_link_libraries(PLlibproxy ${PLlibproxy_LIB_DEPENDENCIES})
+ set_target_properties(PLlibproxy PROPERTIES OUTPUT_NAME "Libproxy")
+ set_target_properties(PLlibproxy PROPERTIES PREFIX "")
+
+-install( TARGETS PLlibproxy DESTINATION ${PX_PERL_ARCH}/auto/Net/Libproxy )
diff --git a/ports/libproxy/fix-tools-path.patch b/ports/libproxy/fix-tools-path.patch
new file mode 100644
index 000000000..ba5061170
--- /dev/null
+++ b/ports/libproxy/fix-tools-path.patch
@@ -0,0 +1,27 @@
+diff --git a/libproxy/cmake/pxmodule.cmk b/libproxy/cmake/pxmodule.cmk
+index bbbd989..956948a 100644
+--- a/libproxy/cmake/pxmodule.cmk
++++ b/libproxy/cmake/pxmodule.cmk
+@@ -20,7 +20,7 @@ function(px_module name build builtin)
+ add_library(${name} MODULE modules/${name}.cpp)
+ target_link_libraries(${name} libproxy)
+ set_target_properties(${name} PROPERTIES PREFIX "")
+- install(TARGETS ${name} LIBRARY DESTINATION ${MODULE_INSTALL_DIR})
++ install(TARGETS ${name} LIBRARY DESTINATION tools)
+ if(${ARGC} GREATER 3)
+ target_link_libraries(${name} ${ARGN})
+ endif()
+diff --git a/utils/CMakeLists.txt b/utils/CMakeLists.txt
+index 52010c6..0a3f4b5 100644
+--- a/utils/CMakeLists.txt
++++ b/utils/CMakeLists.txt
+@@ -1,5 +1,7 @@
+ include_directories("../libproxy")
+
++if (BUILD_TOOLS)
+ add_executable(proxy proxy.c)
+ target_link_libraries(proxy libproxy)
+-install(TARGETS proxy RUNTIME DESTINATION ${BIN_INSTALL_DIR})
++install(TARGETS proxy RUNTIME DESTINATION tools)
++endif()
+\ No newline at end of file
diff --git a/ports/libproxy/portfile.cmake b/ports/libproxy/portfile.cmake
new file mode 100644
index 000000000..0c872a6cd
--- /dev/null
+++ b/ports/libproxy/portfile.cmake
@@ -0,0 +1,43 @@
+vcpkg_fail_port_install(ON_TARGET "UWP")
+
+# Enable static build in UNIX
+if (VCPKG_TARGET_IS_WINDOWS)
+ vcpkg_fail_port_install(ON_LIBRARY_LINKAGE "static")
+endif()
+
+vcpkg_from_github(
+ OUT_SOURCE_PATH SOURCE_PATH
+ REPO libproxy/libproxy
+ REF 5924d4223e2b7238607749d977c0a878fe33cdbc #0.4.15
+ SHA512 3c3be46e1ccd7e25a9b6e5fd71bfac5c1075bc9230a9a7ca94ee5e82bdbf090ab08dd53d8c6946db1353024409b234b35822d22f95a02cfb48bb54705b07d478
+ HEAD_REF master
+ PATCHES
+ fix-tools-path.patch
+ support-windows.patch
+ fix-dependency-libmodman.patch
+ fix-install-py.patch
+ fix-arm-build.patch
+)
+
+vcpkg_check_features(OUT_FEATURE_OPTIONS FEATURE_OPTIONS
+ tools BUILD_TOOLS
+)
+
+vcpkg_configure_cmake(
+ SOURCE_PATH ${SOURCE_PATH}
+ PREFER_NINJA
+ OPTIONS ${FEATURE_OPTIONS}
+ -DWITH_WEBKIT3=OFF
+ -DFORCE_SYSTEM_LIBMODMAN=ON
+)
+
+vcpkg_install_cmake()
+vcpkg_fixup_cmake_targets(CONFIG_PATH share/cmake/Modules)
+vcpkg_copy_pdbs()
+
+file(COPY ${CMAKE_CURRENT_LIST_DIR}/vcpkg-cmake-wrapper.cmake
+ ${CMAKE_CURRENT_LIST_DIR}/usage
+ DESTINATION ${CURRENT_PACKAGES_DIR}/share/${PORT})
+file(REMOVE_RECURSE ${LIBPROXY_TOOLS} ${CURRENT_PACKAGES_DIR}/debug/include ${CURRENT_PACKAGES_DIR}/debug/share)
+
+file(INSTALL ${SOURCE_PATH}/COPYING DESTINATION ${CURRENT_PACKAGES_DIR}/share/${PORT} RENAME copyright)
diff --git a/ports/libproxy/support-windows.patch b/ports/libproxy/support-windows.patch
new file mode 100644
index 000000000..fdbe801a0
--- /dev/null
+++ b/ports/libproxy/support-windows.patch
@@ -0,0 +1,83 @@
+diff --git a/cmake/paths.cmk b/cmake/paths.cmk
+index 593ebc1..bbf8754 100644
+--- a/cmake/paths.cmk
++++ b/cmake/paths.cmk
+@@ -1,4 +1,4 @@
+-if(WIN32 AND NOT MINGW)
++if(0)
+ set(CMAKE_INSTALL_PREFIX "" CACHE PATH "Install prefix")
+ set(BIN_INSTALL_DIR . CACHE PATH "Binary install dir")
+ set(LIB_INSTALL_DIR . CACHE PATH "Library install dir")
+diff --git a/libproxy/cmake/devfiles.cmk b/libproxy/cmake/devfiles.cmk
+index 0301dce..0eb5f83 100644
+--- a/libproxy/cmake/devfiles.cmk
++++ b/libproxy/cmake/devfiles.cmk
+@@ -1,4 +1,4 @@
+-if(NOT WIN32 OR MINGW)
++if(1)
+ # PkgConfig file
+ set (PKGCONFIG_PREFIX ${CMAKE_INSTALL_PREFIX})
+
+diff --git a/libproxy/cmake/libproxy.cmk b/libproxy/cmake/libproxy.cmk
+index aab7593..465685f 100644
+--- a/libproxy/cmake/libproxy.cmk
++++ b/libproxy/cmake/libproxy.cmk
+@@ -21,5 +21,5 @@ set_property(SOURCE ${CMAKE_CURRENT_SOURCE_DIR}/proxy.cpp
+ set_target_properties(libproxy PROPERTIES PREFIX "" VERSION 1.0.0 SOVERSION 1)
+ set_target_properties(libproxy PROPERTIES INTERFACE_LINK_LIBRARIES "")
+ set_target_properties(libproxy PROPERTIES LINK_INTERFACE_LIBRARIES "")
+-install(TARGETS libproxy DESTINATION ${LIB_INSTALL_DIR})
++install(TARGETS libproxy RUNTIME DESTINATION bin LIBRARY DESTINATION lib ARCHIVE DESTINATION lib)
+ install(FILES proxy.h DESTINATION ${INCLUDE_INSTALL_DIR})
+diff --git a/libproxy/modules/config_kde.cpp b/libproxy/modules/config_kde.cpp
+index b9bd241..73b978e 100644
+--- a/libproxy/modules/config_kde.cpp
++++ b/libproxy/modules/config_kde.cpp
+@@ -19,7 +19,9 @@
+ ******************************************************************************/
+
+ #include <sys/stat.h>
++#if !defined(WIN32)
+ #include <unistd.h>
++#endif
+
+ #include <algorithm>
+ #include <cstdlib>
+@@ -137,7 +139,11 @@ private:
+ string command_output(const string &cmdline) throw (runtime_error) {
+ // Capture stderr as well
+ const string command = "(" + cmdline + ")2>&1";
++#if !defined(WIN32)
+ FILE *pipe = popen(command.c_str(), "r");
++#else
++ FILE *pipe = _popen(command.c_str(), "r");
++#endif
+ if (!pipe)
+ throw runtime_error("Unable to run command");
+
+@@ -148,7 +154,11 @@ private:
+ result += buffer; // TODO: If this throws bad_alloc, pipe is leaked
+ }
+
++#if !defined(WIN32)
+ if(pclose(pipe) != 0)
++#else
++ if(_pclose(pipe) != 0)
++#endif
+ throw runtime_error("Command failed");
+
+ // Trim newlines and whitespace at end
+diff --git a/libproxy/url.cpp b/libproxy/url.cpp
+index b61a9bc..021763e 100644
+--- a/libproxy/url.cpp
++++ b/libproxy/url.cpp
+@@ -33,7 +33,9 @@
+ #include <cstdlib> // For atoi()
+ #include <sys/stat.h> // For stat()
+ #include <algorithm> // For transform()
++#if !defined(WIN32)
+ #include <unistd.h> // For read() close()
++#endif
+
+ #ifdef WIN32
+ #include <io.h>
diff --git a/ports/libproxy/usage b/ports/libproxy/usage
new file mode 100644
index 000000000..a37b13c5a
--- /dev/null
+++ b/ports/libproxy/usage
@@ -0,0 +1,5 @@
+The package libproxy provides CMake targets:
+
+ find_package(libproxy CONFIG REQUIRED)
+ target_include_directories(main PRIVATE ${LIBPROXY_INCLUDE_DIR})
+ target_link_libraries(main PRIVATE ${LIBPROXY_LIBRARIES})
diff --git a/ports/libproxy/vcpkg-cmake-wrapper.cmake b/ports/libproxy/vcpkg-cmake-wrapper.cmake
new file mode 100644
index 000000000..31c99f39f
--- /dev/null
+++ b/ports/libproxy/vcpkg-cmake-wrapper.cmake
@@ -0,0 +1,8 @@
+set(LIBPROXY_PREV_MODULE_PATH ${CMAKE_MODULE_PATH})
+list(APPEND CMAKE_MODULE_PATH ${CMAKE_CURRENT_LIST_DIR})
+
+if(NOT LIBPROXY_LIBRARIES)
+ _find_package(${ARGS})
+endif()
+
+set(CMAKE_MODULE_PATH ${LIBPROXY_PREV_MODULE_PATH})