aboutsummaryrefslogtreecommitdiff
path: root/ports/libmodman
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 /ports/libmodman
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.
Diffstat (limited to 'ports/libmodman')
-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
6 files changed, 106 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})