aboutsummaryrefslogtreecommitdiff
path: root/vcpkg/ports/libmodman
diff options
context:
space:
mode:
authorEthan Morgan <ethan@gweithio.com>2026-02-14 16:44:06 +0000
committerEthan Morgan <ethan@gweithio.com>2026-02-14 16:44:06 +0000
commit54409423f767d8b1cf30cb7d0efca6b4ca138823 (patch)
treed915ac7828703ce4b963efdd9728a1777ba18c1e /vcpkg/ports/libmodman
move to own git serverHEADmaster
Diffstat (limited to 'vcpkg/ports/libmodman')
-rw-r--r--vcpkg/ports/libmodman/fix-install-path.patch39
-rw-r--r--vcpkg/ports/libmodman/fix-undefined-typeid.patch12
-rw-r--r--vcpkg/ports/libmodman/portfile.cmake42
-rw-r--r--vcpkg/ports/libmodman/usage5
-rw-r--r--vcpkg/ports/libmodman/vcpkg-cmake-wrapper.cmake6
-rw-r--r--vcpkg/ports/libmodman/vcpkg.json26
6 files changed, 130 insertions, 0 deletions
diff --git a/vcpkg/ports/libmodman/fix-install-path.patch b/vcpkg/ports/libmodman/fix-install-path.patch
new file mode 100644
index 0000000..066813b
--- /dev/null
+++ b/vcpkg/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/vcpkg/ports/libmodman/fix-undefined-typeid.patch b/vcpkg/ports/libmodman/fix-undefined-typeid.patch
new file mode 100644
index 0000000..93db675
--- /dev/null
+++ b/vcpkg/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/vcpkg/ports/libmodman/portfile.cmake b/vcpkg/ports/libmodman/portfile.cmake
new file mode 100644
index 0000000..82ef06c
--- /dev/null
+++ b/vcpkg/ports/libmodman/portfile.cmake
@@ -0,0 +1,42 @@
+# Enable static build in UNIX
+if (VCPKG_TARGET_IS_WINDOWS)
+ vcpkg_check_linkage(ONLY_DYNAMIC_LIBRARY)
+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_check_features(OUT_FEATURE_OPTIONS FEATURE_OPTIONS FEATURES
+ tests BUILD_TESTING
+)
+
+vcpkg_extract_source_archive(
+ SOURCE_PATH
+ ARCHIVE ${ARCHIVE}
+ PATCHES
+ fix-install-path.patch
+ fix-undefined-typeid.patch
+)
+
+vcpkg_cmake_configure(
+ SOURCE_PATH "${SOURCE_PATH}"
+ OPTIONS ${FEATURE_OPTIONS}
+)
+
+vcpkg_cmake_install()
+vcpkg_cmake_config_fixup(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")
+
+vcpkg_fixup_pkgconfig()
+
+file(INSTALL "${SOURCE_PATH}/COPYING" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}" RENAME copyright)
diff --git a/vcpkg/ports/libmodman/usage b/vcpkg/ports/libmodman/usage
new file mode 100644
index 0000000..220de42
--- /dev/null
+++ b/vcpkg/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/vcpkg/ports/libmodman/vcpkg-cmake-wrapper.cmake b/vcpkg/ports/libmodman/vcpkg-cmake-wrapper.cmake
new file mode 100644
index 0000000..f372257
--- /dev/null
+++ b/vcpkg/ports/libmodman/vcpkg-cmake-wrapper.cmake
@@ -0,0 +1,6 @@
+set(LIBMODMAN_PREV_MODULE_PATH ${CMAKE_MODULE_PATH})
+list(APPEND CMAKE_MODULE_PATH ${CMAKE_CURRENT_LIST_DIR})
+
+_find_package(${ARGS})
+
+set(CMAKE_MODULE_PATH ${LIBMODMAN_PREV_MODULE_PATH})
diff --git a/vcpkg/ports/libmodman/vcpkg.json b/vcpkg/ports/libmodman/vcpkg.json
new file mode 100644
index 0000000..8d9ec11
--- /dev/null
+++ b/vcpkg/ports/libmodman/vcpkg.json
@@ -0,0 +1,26 @@
+{
+ "name": "libmodman",
+ "version": "2.0.1",
+ "port-version": 5,
+ "description": "a simple library for managing modules",
+ "homepage": "https://code.google.com/p/libmodman",
+ "supports": "!uwp",
+ "dependencies": [
+ {
+ "name": "vcpkg-cmake",
+ "host": true
+ },
+ {
+ "name": "vcpkg-cmake-config",
+ "host": true
+ }
+ ],
+ "features": {
+ "tests": {
+ "description": "Build libmodman tests",
+ "dependencies": [
+ "zlib"
+ ]
+ }
+ }
+}