aboutsummaryrefslogtreecommitdiff
path: root/vcpkg/ports/gflags
diff options
context:
space:
mode:
Diffstat (limited to 'vcpkg/ports/gflags')
-rw-r--r--vcpkg/ports/gflags/0001-patch-dir.patch13
-rw-r--r--vcpkg/ports/gflags/fix_cmake_config.patch13
-rw-r--r--vcpkg/ports/gflags/portfile.cmake41
-rw-r--r--vcpkg/ports/gflags/usage5
-rw-r--r--vcpkg/ports/gflags/vcpkg-cmake-wrapper.cmake7
-rw-r--r--vcpkg/ports/gflags/vcpkg.json19
6 files changed, 98 insertions, 0 deletions
diff --git a/vcpkg/ports/gflags/0001-patch-dir.patch b/vcpkg/ports/gflags/0001-patch-dir.patch
new file mode 100644
index 0000000..d3aaa00
--- /dev/null
+++ b/vcpkg/ports/gflags/0001-patch-dir.patch
@@ -0,0 +1,13 @@
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index 3709073..8e919cb 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -503,7 +503,7 @@ endif ()
+ # ----------------------------------------------------------------------------
+ # installation rules
+ set (EXPORT_NAME ${PACKAGE_NAME}-targets)
+-file (RELATIVE_PATH INSTALL_PREFIX_REL2CONFIG_DIR "${CMAKE_INSTALL_PREFIX}/${CONFIG_INSTALL_DIR}" "${CMAKE_INSTALL_PREFIX}")
++set (INSTALL_PREFIX_REL2CONFIG_DIR "../..")
+ configure_file (cmake/config.cmake.in "${PROJECT_BINARY_DIR}/${PACKAGE_NAME}-config-install.cmake" @ONLY)
+ configure_file (cmake/version.cmake.in "${PROJECT_BINARY_DIR}/${PACKAGE_NAME}-config-version.cmake" @ONLY)
+
diff --git a/vcpkg/ports/gflags/fix_cmake_config.patch b/vcpkg/ports/gflags/fix_cmake_config.patch
new file mode 100644
index 0000000..bea561e
--- /dev/null
+++ b/vcpkg/ports/gflags/fix_cmake_config.patch
@@ -0,0 +1,13 @@
+diff --git a/cmake/config.cmake.in b/cmake/config.cmake.in
+index a512c2a..e7f50d0 100644
+--- a/cmake/config.cmake.in
++++ b/cmake/config.cmake.in
+@@ -78,7 +78,7 @@ if (NOT DEFINED @PACKAGE_PREFIX@_NOTHREADS)
+ else ()
+ set (@PACKAGE_PREFIX@_NOTHREADS FALSE)
+ endif ()
+- elseif (TARGET ${@PACKAGE_PREFIX@_TARGET_PREFIX}PACKAGE_NAME@_static OR TARGET ${@PACKAGE_PREFIX@_TARGET_PREFIX}@PACKAGE_NAME@_shared)
++ elseif (TARGET ${@PACKAGE_PREFIX@_TARGET_PREFIX}@PACKAGE_NAME@_static OR TARGET ${@PACKAGE_PREFIX@_TARGET_PREFIX}@PACKAGE_NAME@_shared)
+ set (@PACKAGE_PREFIX@_NOTHREADS FALSE)
+ else ()
+ set (@PACKAGE_PREFIX@_NOTHREADS TRUE)
diff --git a/vcpkg/ports/gflags/portfile.cmake b/vcpkg/ports/gflags/portfile.cmake
new file mode 100644
index 0000000..7fa6a86
--- /dev/null
+++ b/vcpkg/ports/gflags/portfile.cmake
@@ -0,0 +1,41 @@
+if(VCPKG_CMAKE_SYSTEM_NAME STREQUAL "WindowsStore")
+ message(FATAL_ERROR "${PORT} does not currently support UWP")
+endif()
+
+vcpkg_from_github(
+ OUT_SOURCE_PATH SOURCE_PATH
+ REPO gflags/gflags
+ REF v2.2.2
+ SHA512 98c4703aab24e81fe551f7831ab797fb73d0f7dfc516addb34b9ff6d0914e5fd398207889b1ae555bac039537b1d4677067dae403b64903577078d99c1bdb447
+ HEAD_REF master
+ PATCHES
+ 0001-patch-dir.patch # gflags was estimating a wrong relative path between the gflags-config.cmake file and the include path; "../.." goes from share/gflags/ to the triplet root
+ fix_cmake_config.patch
+)
+
+vcpkg_cmake_configure(
+ SOURCE_PATH "${SOURCE_PATH}"
+ OPTIONS
+ -DGFLAGS_REGISTER_BUILD_DIR:BOOL=OFF
+ -DGFLAGS_REGISTER_INSTALL_PREFIX:BOOL=OFF
+ -DBUILD_gflags_nothreads_LIB:BOOL=OFF
+)
+
+vcpkg_cmake_install()
+vcpkg_copy_pdbs()
+vcpkg_cmake_config_fixup(CONFIG_PATH lib/cmake/gflags)
+if(NOT VCPKG_TARGET_IS_WINDOWS)
+ vcpkg_fixup_pkgconfig()
+ if(NOT VCPKG_BUILD_TYPE)
+ vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/debug/lib/pkgconfig/gflags.pc" "-lgflags" "-lgflags_debug")
+ endif()
+endif()
+
+file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include")
+file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/share")
+
+file(INSTALL "${CMAKE_CURRENT_LIST_DIR}/vcpkg-cmake-wrapper.cmake" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}")
+file(INSTALL "${CMAKE_CURRENT_LIST_DIR}/usage" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}")
+vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/COPYING.txt")
+
+
diff --git a/vcpkg/ports/gflags/usage b/vcpkg/ports/gflags/usage
new file mode 100644
index 0000000..5d86c43
--- /dev/null
+++ b/vcpkg/ports/gflags/usage
@@ -0,0 +1,5 @@
+gflags provides CMake targets:
+
+ set(GFLAGS_USE_TARGET_NAMESPACE ON)
+ find_package(gflags CONFIG REQUIRED)
+ target_link_libraries(main PRIVATE gflags::gflags)
diff --git a/vcpkg/ports/gflags/vcpkg-cmake-wrapper.cmake b/vcpkg/ports/gflags/vcpkg-cmake-wrapper.cmake
new file mode 100644
index 0000000..8fbb208
--- /dev/null
+++ b/vcpkg/ports/gflags/vcpkg-cmake-wrapper.cmake
@@ -0,0 +1,7 @@
+if(NOT DEFINED GFLAGS_USE_TARGET_NAMESPACE)
+ # vcpkg legacy
+ set(GFLAGS_USE_TARGET_NAMESPACE ON)
+ _find_package(${ARGS})
+ unset(GFLAGS_USE_TARGET_NAMESPACE)
+endif()
+_find_package(${ARGS})
diff --git a/vcpkg/ports/gflags/vcpkg.json b/vcpkg/ports/gflags/vcpkg.json
new file mode 100644
index 0000000..32d0edb
--- /dev/null
+++ b/vcpkg/ports/gflags/vcpkg.json
@@ -0,0 +1,19 @@
+{
+ "name": "gflags",
+ "version": "2.2.2",
+ "port-version": 9,
+ "description": "A C++ library that implements commandline flags processing",
+ "homepage": "https://github.com/gflags/gflags",
+ "license": "BSD-3-Clause",
+ "supports": "!uwp",
+ "dependencies": [
+ {
+ "name": "vcpkg-cmake",
+ "host": true
+ },
+ {
+ "name": "vcpkg-cmake-config",
+ "host": true
+ }
+ ]
+}