aboutsummaryrefslogtreecommitdiff
path: root/vcpkg/ports/flatbuffers
diff options
context:
space:
mode:
Diffstat (limited to 'vcpkg/ports/flatbuffers')
-rw-r--r--vcpkg/ports/flatbuffers/fix-runtime-flags-msvc.patch19
-rw-r--r--vcpkg/ports/flatbuffers/fix-uwp-build.patch20
-rw-r--r--vcpkg/ports/flatbuffers/portfile.cmake50
-rw-r--r--vcpkg/ports/flatbuffers/vcpkg.json22
4 files changed, 111 insertions, 0 deletions
diff --git a/vcpkg/ports/flatbuffers/fix-runtime-flags-msvc.patch b/vcpkg/ports/flatbuffers/fix-runtime-flags-msvc.patch
new file mode 100644
index 0000000..b9d3067
--- /dev/null
+++ b/vcpkg/ports/flatbuffers/fix-runtime-flags-msvc.patch
@@ -0,0 +1,19 @@
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index f7f388f..4ab8149 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -456,12 +456,14 @@ if(FLATBUFFERS_BUILD_FLATC)
+ endif()
+
+ target_link_libraries(flatc PRIVATE $<BUILD_INTERFACE:ProjectConfig>)
++ if(FALSE) # DONT mess with runtime flags
+ target_compile_options(flatc
+ PRIVATE
+ $<$<AND:$<BOOL:${MSVC_LIKE}>,$<CONFIG:Release>>:
+ /MT
+ >
+ )
++ endif()
+
+ if(FLATBUFFERS_CODE_SANITIZE AND NOT WIN32)
+ add_fsanitize_to_target(flatc ${FLATBUFFERS_CODE_SANITIZE})
diff --git a/vcpkg/ports/flatbuffers/fix-uwp-build.patch b/vcpkg/ports/flatbuffers/fix-uwp-build.patch
new file mode 100644
index 0000000..8495b26
--- /dev/null
+++ b/vcpkg/ports/flatbuffers/fix-uwp-build.patch
@@ -0,0 +1,20 @@
+diff --git a/src/util.cpp b/src/util.cpp
+index aabc23a..06e9ebe 100644
+--- a/src/util.cpp
++++ b/src/util.cpp
+@@ -434,9 +434,15 @@ bool ReadEnvironmentVariable(const char *var_name, std::string *_value) {
+ #ifdef _MSC_VER
+ __pragma(warning(disable : 4996)); // _CRT_SECURE_NO_WARNINGS
+ #endif
++#if _WIN32_WINNT < 0x0A00
+ auto env_str = std::getenv(var_name);
+ if (!env_str) return false;
+ if (_value) *_value = std::string(env_str);
++#else
++ //There is no support for environment variables in UWP
++ var_name; // Do nothing
++ *_value = std::string("");
++#endif
+ return true;
+ }
+
diff --git a/vcpkg/ports/flatbuffers/portfile.cmake b/vcpkg/ports/flatbuffers/portfile.cmake
new file mode 100644
index 0000000..3bf1acf
--- /dev/null
+++ b/vcpkg/ports/flatbuffers/portfile.cmake
@@ -0,0 +1,50 @@
+vcpkg_check_linkage(ONLY_STATIC_LIBRARY)
+
+vcpkg_from_github(
+ OUT_SOURCE_PATH SOURCE_PATH
+ REPO google/flatbuffers
+ REF "v${VERSION}"
+ SHA512 259ae6c0b024c19c882d87c93d6ba156c15f14a61b11846170ac1b9e9c051cd3e80ae93cfe20ccb1aa30f2085cdbd4127ffa229b42cabbfed6b035ca4851c127
+ HEAD_REF master
+ PATCHES
+ fix-uwp-build.patch
+ fix-runtime-flags-msvc.patch
+)
+
+set(options "")
+if(VCPKG_CROSSCOMPILING)
+ list(APPEND options -DFLATBUFFERS_BUILD_FLATC=OFF -DFLATBUFFERS_BUILD_FLATHASH=OFF)
+ if(VCPKG_TARGET_IS_OSX OR VCPKG_TARGET_IS_IOS)
+ # The option may cause "#error Unsupported architecture"
+ list(APPEND options -DFLATBUFFERS_OSX_BUILD_UNIVERSAL=OFF)
+ endif()
+endif()
+
+vcpkg_cmake_configure(
+ SOURCE_PATH "${SOURCE_PATH}"
+ OPTIONS
+ -DFLATBUFFERS_BUILD_TESTS=OFF
+ -DFLATBUFFERS_BUILD_GRPCTEST=OFF
+ ${options}
+ OPTIONS_DEBUG
+ -DFLATBUFFERS_BUILD_FLATC=OFF
+)
+
+vcpkg_cmake_install()
+vcpkg_cmake_config_fixup(CONFIG_PATH lib/cmake/flatbuffers)
+vcpkg_fixup_pkgconfig()
+
+file(GLOB flatc_path ${CURRENT_PACKAGES_DIR}/bin/flatc*)
+if(flatc_path)
+ vcpkg_copy_tools(TOOL_NAMES flatc AUTO_CLEAN)
+else()
+ file(APPEND "${CURRENT_PACKAGES_DIR}/share/flatbuffers/flatbuffers-config.cmake"
+"\ninclude(\"\${CMAKE_CURRENT_LIST_DIR}/../../../${HOST_TRIPLET}/share/flatbuffers/FlatcTargets.cmake\")\n")
+endif()
+
+file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include")
+file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/include/flatbuffers/pch")
+file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/share")
+file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/bin" "${CURRENT_PACKAGES_DIR}/debug/bin")
+
+vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE")
diff --git a/vcpkg/ports/flatbuffers/vcpkg.json b/vcpkg/ports/flatbuffers/vcpkg.json
new file mode 100644
index 0000000..b72e9ff
--- /dev/null
+++ b/vcpkg/ports/flatbuffers/vcpkg.json
@@ -0,0 +1,22 @@
+{
+ "name": "flatbuffers",
+ "version": "25.9.23",
+ "port-version": 1,
+ "description": "FlatBuffers is a cross platform serialization library architected for maximum memory efficiency. It allows you to directly access serialized data without parsing/unpacking it first, while still having great forwards/backwards compatibility.",
+ "homepage": "https://google.github.io/flatbuffers/",
+ "license": "Apache-2.0",
+ "dependencies": [
+ {
+ "name": "flatbuffers",
+ "host": true
+ },
+ {
+ "name": "vcpkg-cmake",
+ "host": true
+ },
+ {
+ "name": "vcpkg-cmake-config",
+ "host": true
+ }
+ ]
+}