aboutsummaryrefslogtreecommitdiff
path: root/vcpkg/ports/abseil
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/abseil
move to own git serverHEADmaster
Diffstat (limited to 'vcpkg/ports/abseil')
-rw-r--r--vcpkg/ports/abseil/001-mingw-dll.patch13
-rw-r--r--vcpkg/ports/abseil/portfile.cmake74
-rw-r--r--vcpkg/ports/abseil/string-view.patch13
-rw-r--r--vcpkg/ports/abseil/vcpkg.json31
4 files changed, 131 insertions, 0 deletions
diff --git a/vcpkg/ports/abseil/001-mingw-dll.patch b/vcpkg/ports/abseil/001-mingw-dll.patch
new file mode 100644
index 0000000..ae1b60c
--- /dev/null
+++ b/vcpkg/ports/abseil/001-mingw-dll.patch
@@ -0,0 +1,13 @@
+diff --git a/CMake/AbseilDll.cmake b/CMake/AbseilDll.cmake
+--- a/CMake/AbseilDll.cmake
++++ b/CMake/AbseilDll.cmake
+@@ -839,6 +839,9 @@ function(absl_make_dll)
+ ${_dll_libs}
+ ${ABSL_DEFAULT_LINKOPTS}
+ $<$<BOOL:${ANDROID}>:-llog>
++ $<$<BOOL:${MINGW}>:-ladvapi32>
++ $<$<BOOL:${MINGW}>:-ldbghelp>
++ $<$<BOOL:${MINGW}>:-lbcrypt>
+ )
+ set_target_properties(${_dll} PROPERTIES
+ LINKER_LANGUAGE "CXX"
diff --git a/vcpkg/ports/abseil/portfile.cmake b/vcpkg/ports/abseil/portfile.cmake
new file mode 100644
index 0000000..77f97a2
--- /dev/null
+++ b/vcpkg/ports/abseil/portfile.cmake
@@ -0,0 +1,74 @@
+if(NOT VCPKG_TARGET_IS_WINDOWS)
+ vcpkg_check_linkage(ONLY_STATIC_LIBRARY)
+endif()
+
+vcpkg_from_github(
+ OUT_SOURCE_PATH SOURCE_PATH
+ REPO abseil/abseil-cpp
+ REF "${VERSION}"
+ SHA512 d3ba654ed7dd7b432494918b2de5d8e2b0ad1c42752c5d726f20d6fe2841828fb4e8beb853e3570a11efecef725029ce5ffa3ebc434efff007e7f60735eb9856
+ HEAD_REF master
+ PATCHES
+ "001-mingw-dll.patch" # Upstreamed (not yet in a release): https://github.com/abseil/abseil-cpp/commit/f2dee57baf19ceeb6d12cf9af7cbb3c049396ba5
+ "string-view.patch"
+)
+
+set(ABSL_TEST_HELPERS_OPTIONS "")
+if("test-helpers" IN_LIST FEATURES)
+ set(ABSL_TEST_HELPERS_OPTIONS "-DABSL_BUILD_TEST_HELPERS=ON" "-DABSL_USE_EXTERNAL_GOOGLETEST=ON" "-DABSL_FIND_GOOGLETEST=ON")
+endif()
+
+set(ABSL_STATIC_RUNTIME_OPTION "")
+if(VCPKG_TARGET_IS_WINDOWS AND VCPKG_CRT_LINKAGE STREQUAL "static")
+ set(ABSL_STATIC_RUNTIME_OPTION "-DABSL_MSVC_STATIC_RUNTIME=ON")
+endif()
+
+set(ABSL_MINGW_OPTIONS "")
+if(VCPKG_TARGET_IS_MINGW)
+ # LIBRT-NOTFOUND is needed since the system librt may be found by cmake in
+ # a cross-compile setup.
+ # See https://github.com/pywinrt/pywinrt/pull/83 for the FIReference
+ # definition issue.
+ set(ABSL_MINGW_OPTIONS "-DLIBRT=LIBRT-NOTFOUND"
+ "-DCMAKE_CXX_FLAGS=-D____FIReference_1_boolean_INTERFACE_DEFINED__")
+ # Specify ABSL_BUILD_MONOLITHIC_SHARED_LIBS=ON when VCPKG_LIBRARY_LINKAGE is dynamic to match Abseil's Windows (MSVC) defaults
+ if(VCPKG_LIBRARY_LINKAGE STREQUAL dynamic)
+ vcpkg_list(APPEND ABSL_MINGW_OPTIONS "-DABSL_BUILD_MONOLITHIC_SHARED_LIBS=ON")
+ endif()
+endif()
+
+vcpkg_cmake_configure(
+ SOURCE_PATH "${SOURCE_PATH}"
+ DISABLE_PARALLEL_CONFIGURE
+ OPTIONS
+ -DABSL_PROPAGATE_CXX_STD=ON
+ ${ABSL_TEST_HELPERS_OPTIONS}
+ ${ABSL_STATIC_RUNTIME_OPTION}
+ ${ABSL_MINGW_OPTIONS}
+)
+
+vcpkg_cmake_install()
+vcpkg_cmake_config_fixup(PACKAGE_NAME absl CONFIG_PATH lib/cmake/absl)
+
+if(VCPKG_TARGET_IS_IOS OR VCPKG_TARGET_IS_OSX)
+ file(APPEND "${CURRENT_PACKAGES_DIR}/lib/pkgconfig/absl_time.pc" "Libs.private: -framework CoreFoundation\n")
+ if(NOT VCPKG_BUILD_TYPE)
+ file(APPEND "${CURRENT_PACKAGES_DIR}/debug/lib/pkgconfig/absl_time.pc" "Libs.private: -framework CoreFoundation\n")
+ endif()
+endif()
+vcpkg_fixup_pkgconfig()
+
+vcpkg_copy_pdbs()
+file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/share"
+ "${CURRENT_PACKAGES_DIR}/debug/include"
+ "${CURRENT_PACKAGES_DIR}/include/absl/copts"
+ "${CURRENT_PACKAGES_DIR}/include/absl/strings/testdata"
+ "${CURRENT_PACKAGES_DIR}/include/absl/time/internal/cctz/testdata"
+)
+
+if(VCPKG_TARGET_IS_WINDOWS AND VCPKG_LIBRARY_LINKAGE STREQUAL "dynamic")
+ vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/include/absl/base/config.h" "defined(ABSL_CONSUME_DLL)" "1")
+ vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/include/absl/base/internal/thread_identity.h" "defined(ABSL_CONSUME_DLL)" "1")
+endif()
+
+vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE")
diff --git a/vcpkg/ports/abseil/string-view.patch b/vcpkg/ports/abseil/string-view.patch
new file mode 100644
index 0000000..6853d77
--- /dev/null
+++ b/vcpkg/ports/abseil/string-view.patch
@@ -0,0 +1,13 @@
+diff --git a/absl/base/config.h b/absl/base/config.h
+index 1a9bc591..90a730f5 100644
+--- a/absl/base/config.h
++++ b/absl/base/config.h
+@@ -561,7 +561,7 @@ static_assert(ABSL_INTERNAL_INLINE_NAMESPACE_STR[0] != 'h' ||
+ #if !defined(ABSL_OPTION_USE_STD_STRING_VIEW)
+ #error options.h is misconfigured.
+ #elif ABSL_OPTION_USE_STD_STRING_VIEW == 0
+-#undef ABSL_USES_STD_STRING_VIEW
++#define ABSL_USES_STD_STRING_VIEW 1
+ #elif ABSL_OPTION_USE_STD_STRING_VIEW == 1 || \
+ ABSL_OPTION_USE_STD_STRING_VIEW == 2
+ #define ABSL_USES_STD_STRING_VIEW 1
diff --git a/vcpkg/ports/abseil/vcpkg.json b/vcpkg/ports/abseil/vcpkg.json
new file mode 100644
index 0000000..d3737b2
--- /dev/null
+++ b/vcpkg/ports/abseil/vcpkg.json
@@ -0,0 +1,31 @@
+{
+ "name": "abseil",
+ "version": "20250512.1",
+ "port-version": 1,
+ "description": [
+ "Abseil is an open-source collection of C++ library code designed to augment the C++ standard library. The Abseil library code is collected from Google's own C++ code base, has been extensively tested and used in production, and is the same code we depend on in our daily coding lives.",
+ "In some cases, Abseil provides pieces missing from the C++ standard; in others, Abseil provides alternatives to the standard for special needs we've found through usage in the Google code base. We denote those cases clearly within the library code we provide you.",
+ "Abseil is not meant to be a competitor to the standard library; we've just found that many of these utilities serve a purpose within our code base, and we now want to provide those resources to the C++ community as a whole."
+ ],
+ "homepage": "https://github.com/abseil/abseil-cpp",
+ "license": "Apache-2.0",
+ "dependencies": [
+ {
+ "name": "vcpkg-cmake",
+ "host": true
+ },
+ {
+ "name": "vcpkg-cmake-config",
+ "host": true
+ }
+ ],
+ "features": {
+ "test-helpers": {
+ "description": "Build Abseil's test helpers",
+ "dependencies": [
+ "abseil",
+ "gtest"
+ ]
+ }
+ }
+}