aboutsummaryrefslogtreecommitdiff
path: root/vcpkg/ports/fbthrift/portfile.cmake
diff options
context:
space:
mode:
Diffstat (limited to 'vcpkg/ports/fbthrift/portfile.cmake')
-rw-r--r--vcpkg/ports/fbthrift/portfile.cmake97
1 files changed, 97 insertions, 0 deletions
diff --git a/vcpkg/ports/fbthrift/portfile.cmake b/vcpkg/ports/fbthrift/portfile.cmake
new file mode 100644
index 0000000..aef64a4
--- /dev/null
+++ b/vcpkg/ports/fbthrift/portfile.cmake
@@ -0,0 +1,97 @@
+vcpkg_from_github(
+ OUT_SOURCE_PATH SOURCE_PATH
+ REPO facebook/fbthrift
+ REF "v${VERSION}"
+ SHA512 957b58b32b7cd7cbf58ebe1e65f8c9befbe5d48d8fa33ea36ff40a04f6c34f362d88c03d0060fa6681cd7fc8b5aa7063fbd9c16ded23df0fb091031bcb0668c1
+ HEAD_REF main
+ PATCHES
+ fix-deps.patch
+ fix-test.patch
+ folly-has-liburing.diff
+)
+
+file(REMOVE "${SOURCE_PATH}/thrift/cmake/FindGMock.cmake")
+file(REMOVE "${SOURCE_PATH}/thrift/cmake/FindOpenSSL.cmake")
+file(REMOVE "${SOURCE_PATH}/thrift/cmake/FindZstd.cmake")
+file(REMOVE "${SOURCE_PATH}/build/fbcode_builder/CMake/FindGflags.cmake")
+file(REMOVE "${SOURCE_PATH}/build/fbcode_builder/CMake/FindGlog.cmake")
+file(REMOVE "${SOURCE_PATH}/build/fbcode_builder/CMake/FindGMock.cmake")
+file(REMOVE "${SOURCE_PATH}/build/fbcode_builder/CMake/FindLibEvent.cmake")
+file(REMOVE "${SOURCE_PATH}/build/fbcode_builder/CMake/FindSodium.cmake")
+file(REMOVE "${SOURCE_PATH}/build/fbcode_builder/CMake/FindZstd.cmake")
+
+vcpkg_cmake_configure(
+ SOURCE_PATH "${SOURCE_PATH}"
+ OPTIONS
+ "-Dthriftpy=OFF"
+)
+vcpkg_cmake_install()
+vcpkg_cmake_config_fixup(CONFIG_PATH lib/cmake/fbthrift)
+
+file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include")
+
+# There should be no empty directories in vcpkg/packages/fbthrift_x64-linux
+file(REMOVE_RECURSE
+ "${CURRENT_PACKAGES_DIR}/include/thrift/lib/cpp/test"
+ "${CURRENT_PACKAGES_DIR}/include/thrift/lib/cpp/transport/test"
+ "${CURRENT_PACKAGES_DIR}/include/thrift/lib/cpp/util/test"
+ "${CURRENT_PACKAGES_DIR}/include/thrift/lib/cpp2/async/metadata/test"
+ "${CURRENT_PACKAGES_DIR}/include/thrift/lib/cpp2/debug_thrift_data_difference/test"
+ "${CURRENT_PACKAGES_DIR}/include/thrift/lib/cpp2/detail/test"
+ "${CURRENT_PACKAGES_DIR}/include/thrift/lib/cpp2/dynamic/test"
+ "${CURRENT_PACKAGES_DIR}/include/thrift/lib/cpp2/folly_dynamic/test"
+ "${CURRENT_PACKAGES_DIR}/include/thrift/lib/cpp2/frozen/test"
+ "${CURRENT_PACKAGES_DIR}/include/thrift/lib/cpp2/patch/test"
+ "${CURRENT_PACKAGES_DIR}/include/thrift/lib/cpp2/protocol/detail/test"
+ "${CURRENT_PACKAGES_DIR}/include/thrift/lib/cpp2/protocol/test"
+ "${CURRENT_PACKAGES_DIR}/include/thrift/lib/cpp2/protocol/tool"
+ "${CURRENT_PACKAGES_DIR}/include/thrift/lib/cpp2/reflection/demo"
+ "${CURRENT_PACKAGES_DIR}/include/thrift/lib/cpp2/reflection/docs"
+ "${CURRENT_PACKAGES_DIR}/include/thrift/lib/cpp2/runtime/test"
+ "${CURRENT_PACKAGES_DIR}/include/thrift/lib/cpp2/schema/test"
+ "${CURRENT_PACKAGES_DIR}/include/thrift/lib/cpp2/security/extensions/test"
+ "${CURRENT_PACKAGES_DIR}/include/thrift/lib/cpp2/security/test"
+ "${CURRENT_PACKAGES_DIR}/include/thrift/lib/cpp2/server/test"
+ "${CURRENT_PACKAGES_DIR}/include/thrift/lib/cpp2/test"
+ "${CURRENT_PACKAGES_DIR}/include/thrift/lib/cpp2/transport/core/test"
+ "${CURRENT_PACKAGES_DIR}/include/thrift/lib/cpp2/transport/http2/common/test"
+ "${CURRENT_PACKAGES_DIR}/include/thrift/lib/cpp2/transport/http2/server/test"
+ "${CURRENT_PACKAGES_DIR}/include/thrift/lib/cpp2/transport/http2/test"
+ "${CURRENT_PACKAGES_DIR}/include/thrift/lib/cpp2/transport/inmemory/test"
+ "${CURRENT_PACKAGES_DIR}/include/thrift/lib/cpp2/transport/rocket/client/test"
+ "${CURRENT_PACKAGES_DIR}/include/thrift/lib/cpp2/transport/rocket/compression/test"
+ "${CURRENT_PACKAGES_DIR}/include/thrift/lib/cpp2/transport/rocket/framing/parser/test"
+ "${CURRENT_PACKAGES_DIR}/include/thrift/lib/cpp2/transport/rocket/payload/test"
+ "${CURRENT_PACKAGES_DIR}/include/thrift/lib/cpp2/transport/rocket/server/test"
+ "${CURRENT_PACKAGES_DIR}/include/thrift/lib/cpp2/util/gtest/test"
+ "${CURRENT_PACKAGES_DIR}/include/thrift/lib/cpp2/util/test"
+ "${CURRENT_PACKAGES_DIR}/include/thrift/lib/cpp2/visitation/test"
+ "${CURRENT_PACKAGES_DIR}/include/thrift/lib/py3/benchmark"
+ "${CURRENT_PACKAGES_DIR}/include/thrift/lib/py3/test"
+ "${CURRENT_PACKAGES_DIR}/include/thrift/lib/python/any/test"
+ "${CURRENT_PACKAGES_DIR}/include/thrift/lib/python/benchmark"
+ "${CURRENT_PACKAGES_DIR}/include/thrift/lib/python/capi/benchmark"
+ "${CURRENT_PACKAGES_DIR}/include/thrift/lib/python/conformance"
+ "${CURRENT_PACKAGES_DIR}/include/thrift/lib/python/conformance/test"
+ "${CURRENT_PACKAGES_DIR}/include/thrift/lib/python/server/test"
+ "${CURRENT_PACKAGES_DIR}/include/thrift/lib/python/test/adapters"
+ "${CURRENT_PACKAGES_DIR}/include/thrift/lib/python/test/cpp_conversion"
+ "${CURRENT_PACKAGES_DIR}/include/thrift/lib/thrift/annotation"
+)
+
+vcpkg_copy_tools(TOOL_NAMES thrift1 AUTO_CLEAN)
+vcpkg_copy_pdbs()
+
+if(EXISTS "${CURRENT_PACKAGES_DIR}/share/fbthrift/FBThriftConfig.cmake")
+ vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/share/fbthrift/FBThriftConfig.cmake"
+ "${PACKAGE_PREFIX_DIR}/lib/cmake/fbthrift" "${PACKAGE_PREFIX_DIR}/share/fbthrift")
+ vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/share/fbthrift/FBThriftConfig.cmake"
+ "${PACKAGE_PREFIX_DIR}/bin/thrift1.exe" "${PACKAGE_PREFIX_DIR}/tools/fbthrift/thrift1.exe")
+ vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/share/fbthrift/FBThriftConfig.cmake"
+ "${PACKAGE_PREFIX_DIR}/bin/thrift1" "${PACKAGE_PREFIX_DIR}/tools/fbthrift/thrift1")
+endif()
+
+# Only used internally and removed in master
+vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/share/fbthrift/FBThriftTargets.cmake" "LOCATION_HH=\\\"${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-rel/thrift/compiler/location.hh\\\"" "" IGNORE_UNCHANGED)
+
+vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE")