diff options
| author | Ethan Morgan <ethan@gweithio.com> | 2026-02-14 16:44:06 +0000 |
|---|---|---|
| committer | Ethan Morgan <ethan@gweithio.com> | 2026-02-14 16:44:06 +0000 |
| commit | 54409423f767d8b1cf30cb7d0efca6b4ca138823 (patch) | |
| tree | d915ac7828703ce4b963efdd9728a1777ba18c1e /vcpkg/ports/thrift/portfile.cmake | |
Diffstat (limited to 'vcpkg/ports/thrift/portfile.cmake')
| -rw-r--r-- | vcpkg/ports/thrift/portfile.cmake | 93 |
1 files changed, 93 insertions, 0 deletions
diff --git a/vcpkg/ports/thrift/portfile.cmake b/vcpkg/ports/thrift/portfile.cmake new file mode 100644 index 0000000..6bb7c1a --- /dev/null +++ b/vcpkg/ports/thrift/portfile.cmake @@ -0,0 +1,93 @@ +# We currently insist on static only because: +# - Thrift doesn't yet support building as a DLL on Windows, +# - x64-linux only builds static anyway. +# From https://github.com/apache/thrift/blob/master/CHANGES.md +if(VCPKG_TARGET_IS_WINDOWS) + vcpkg_check_linkage(ONLY_STATIC_LIBRARY) +endif() + +vcpkg_find_acquire_program(FLEX) +vcpkg_find_acquire_program(BISON) + +vcpkg_from_github( + OUT_SOURCE_PATH SOURCE_PATH + REPO apache/thrift + REF "v${VERSION}" + SHA512 6dedcf48a8900e3a1dabfa73a4577a4d2482527b45ad8b77fec3fa7fdd8ea21b9249b3602c1e3e54bcee98143a9bb325b59e345423dc6dd8c9365889095615e2 + HEAD_REF master + PATCHES + "pc-suffix.patch" + "fix_missing_quotes_in_config_and_bin_path.patch" +) + +if (VCPKG_TARGET_IS_OSX) + message(WARNING "${PORT} requires bison version greater than 2.5,\n\ +please use command \`brew install bison\` to install bison") +endif() + +string(COMPARE EQUAL "${VCPKG_LIBRARY_LINKAGE}" "dynamic" shared_lib) +string(COMPARE EQUAL "${VCPKG_LIBRARY_LINKAGE}" "static" static_lib) + +# note we specify values for WITH_STATIC_LIB and WITH_SHARED_LIB because even though +# they're marked as deprecated, Thrift incorrectly hard-codes a value for BUILD_SHARED_LIBS. +vcpkg_cmake_configure( + SOURCE_PATH "${SOURCE_PATH}" + NO_CHARSET_FLAG + OPTIONS + --trace-expand + -DLIB_INSTALL_DIR:PATH=lib + -DWITH_SHARED_LIB=${shared_lib} + -DWITH_STATIC_LIB=${static_lib} + -DBUILD_TESTING=OFF + -DBUILD_JAVA=OFF + -DWITH_C_GLIB=OFF + -DBUILD_C_GLIB=OFF + -DCMAKE_DISABLE_FIND_PACKAGE_GLIB=TRUE + -DBUILD_PYTHON=OFF + -DBUILD_CPP=ON + -DWITH_CPP=ON + -DWITH_ZLIB=ON + -DCMAKE_REQUIRE_FIND_PACKAGE_ZLIB=TRUE + -DWITH_LIBEVENT=ON + -DCMAKE_REQUIRE_FIND_PACKAGE_Libevent=TRUE + -DWITH_OPENSSL=ON + -DCMAKE_REQUIRE_FIND_PACKAGE_OpenSSL=TRUE + -DBUILD_TUTORIALS=OFF + -DFLEX_EXECUTABLE=${FLEX} + -DWITH_QT5=OFF + -DCMAKE_DISABLE_FIND_PACKAGE_Qt5=TRUE + -DCMAKE_DISABLE_FIND_PACKAGE_Gradle=TRUE + -DCMAKE_DISABLE_FIND_PACKAGE_Java=TRUE + -DBUILD_JAVASCRIPT=OFF + -DBUILD_NODEJS=OFF + -DBISON_EXECUTABLE=${BISON} + MAYBE_UNUSED_VARIABLES + CMAKE_DISABLE_FIND_PACKAGE_GLIB + CMAKE_DISABLE_FIND_PACKAGE_Gradle + CMAKE_REQUIRE_FIND_PACKAGE_Libevent + CMAKE_REQUIRE_FIND_PACKAGE_OpenSSL + CMAKE_REQUIRE_FIND_PACKAGE_ZLIB + +) + +vcpkg_cmake_install() + +vcpkg_copy_pdbs() + +# Move CMake config files to the right place +vcpkg_cmake_config_fixup(CONFIG_PATH "lib/cmake/${PORT}") +vcpkg_fixup_pkgconfig() + +file(GLOB COMPILER "${CURRENT_PACKAGES_DIR}/bin/thrift" "${CURRENT_PACKAGES_DIR}/bin/thrift.exe") +if(COMPILER) + vcpkg_copy_tools(TOOL_NAMES thrift AUTO_CLEAN) +endif() + +file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include" "${CURRENT_PACKAGES_DIR}/debug/share") + +if ("${VCPKG_LIBRARY_LINKAGE}" STREQUAL "static") + file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/bin") + file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/bin") +endif() + +vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") |