From 89bc8b6f076ca94a00fe285a1613cc1b6d1def33 Mon Sep 17 00:00:00 2001 From: "H. Vetinari" Date: Wed, 24 May 2023 15:51:05 +1100 Subject: [PATCH 01/22] recipe cosmetics --- recipe/meta.yaml | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) diff --git a/recipe/meta.yaml b/recipe/meta.yaml index f372277..a1e80e9 100644 --- a/recipe/meta.yaml +++ b/recipe/meta.yaml @@ -46,8 +46,8 @@ requirements: outputs: - name: libthrift - script: install.sh # [unix] - script: install.bat # [not unix] + script: install.sh # [unix] + script: install.bat # [win] build: run_exports: - {{ pin_subpackage("libthrift", max_pin="x.x.x") }} @@ -78,9 +78,10 @@ outputs: - if not exist %PREFIX%\\Library\\include\\thrift\\Thrift.h exit 1 # [win] - if exist %PREFIX%\\Library\\bin\\thrift.exe exit 1 # [win] - if not exist %PREFIX%\\Library\\lib\\thriftmd.lib exit 1 # [win] + - name: thrift-compiler - script: install.sh # [unix] - script: install.bat # [not unix] + script: install.sh # [unix] + script: install.bat # [win] build: run_exports: - {{ pin_subpackage("libthrift", max_pin="x.x.x") }} @@ -109,6 +110,7 @@ outputs: commands: - test -f $PREFIX/bin/thrift # [unix] - if not exist %PREFIX%\\Library\\bin\\thrift.exe exit 1 # [win] + - name: thrift-cpp build: run_exports: @@ -122,6 +124,9 @@ outputs: run: - {{ pin_subpackage("libthrift", exact=true) }} - {{ pin_subpackage("thrift-compiler", exact=true) }} + test: + commands: + - echo "tested in other outputs" about: home: http://thrift.apache.org @@ -129,6 +134,7 @@ about: license_file: LICENSE summary: >- Compiler and C++ libraries and headers for the Apache Thrift RPC system + dev_url: https://github.com/apache/thrift extra: recipe-maintainers: @@ -136,3 +142,4 @@ extra: - msarahan - jakirkham - xhochy + feedstock-name: thrift-cpp From 3998088739758eafa54dcf440c4fcc57480e1161 Mon Sep 17 00:00:00 2001 From: "H. Vetinari" Date: Wed, 24 May 2023 16:09:13 +1100 Subject: [PATCH 02/22] rebase patch, put it in separate folder, simplify it simplified by using `#undef interface` and setting `-DNOMINMAX` --- recipe/bld.bat | 2 + recipe/meta.yaml | 2 +- recipe/patches/0001-windows-fixes.patch | 71 ++++++++++++++++++ recipe/thrift-0.13.0-windows-fixes.patch | 96 ------------------------ 4 files changed, 74 insertions(+), 97 deletions(-) create mode 100644 recipe/patches/0001-windows-fixes.patch delete mode 100644 recipe/thrift-0.13.0-windows-fixes.patch diff --git a/recipe/bld.bat b/recipe/bld.bat index b565293..7483bf5 100644 --- a/recipe/bld.bat +++ b/recipe/bld.bat @@ -15,6 +15,8 @@ set ZLIB_ROOT=%PREFIX% set OPENSSL_ROOT=%PREFIX% set OPENSSL_ROOT_DIR=%PREFIX% +set "CXXFLAGS=%CXXFLAGS% -DNOMINMAX" + cd %SRC_DIR%\build :: make thrift/windows/config.h available for the compiler: diff --git a/recipe/meta.yaml b/recipe/meta.yaml index a1e80e9..763702a 100644 --- a/recipe/meta.yaml +++ b/recipe/meta.yaml @@ -10,7 +10,7 @@ source: - url: http://archive.apache.org/dist/thrift/{{ version }}/thrift-{{ version }}.tar.gz sha256: 04c6f10e5d788ca78e13ee2ef0d2152c7b070c0af55483d6b942e29cff296726 patches: - - thrift-0.13.0-windows-fixes.patch # [win] + - patches/0001-windows-fixes.patch # [win] {% if win %} - url: https://github.com/lexxmark/winflexbison/releases/download/v{{ WIN_FLEX_BIZON_VERSION }}/win_flex_bison-{{ WIN_FLEX_BIZON_VERSION }}.zip folder: thirdparty\dist\winflexbison diff --git a/recipe/patches/0001-windows-fixes.patch b/recipe/patches/0001-windows-fixes.patch new file mode 100644 index 0000000..59eeec8 --- /dev/null +++ b/recipe/patches/0001-windows-fixes.patch @@ -0,0 +1,71 @@ +From 8af7173360e4fcf1dc267fe6abde6279fed12489 Mon Sep 17 00:00:00 2001 +From: Pearu Peterson +Date: Wed, 12 Feb 2020 13:50:35 -0800 +Subject: [PATCH] windows fixes + +Co-Authored-By: H. Vetinari +--- + compiler/cpp/src/thrift/generate/t_py_generator.cc | 7 +++++++ + compiler/cpp/src/thrift/main.cc | 1 + + compiler/cpp/src/thrift/thriftl.ll | 1 + + compiler/cpp/src/thrift/thrifty.yy | 4 ---- + 4 files changed, 9 insertions(+), 4 deletions(-) + +diff --git a/compiler/cpp/src/thrift/generate/t_py_generator.cc b/compiler/cpp/src/thrift/generate/t_py_generator.cc +index 857cb77..6108a27 100644 +--- a/compiler/cpp/src/thrift/generate/t_py_generator.cc ++++ b/compiler/cpp/src/thrift/generate/t_py_generator.cc +@@ -33,6 +33,13 @@ + #include "thrift/version.h" + #include "thrift/generate/t_generator.h" + ++// remove MSVC-specific interface keyword that clashes with use in this file ++#ifdef _MSC_VER ++#ifdef interface ++#undef interface ++#endif ++#endif ++ + using std::map; + using std::ostream; + using std::ostringstream; +diff --git a/compiler/cpp/src/thrift/main.cc b/compiler/cpp/src/thrift/main.cc +index 485ec00..63a2581 100644 +--- a/compiler/cpp/src/thrift/main.cc ++++ b/compiler/cpp/src/thrift/main.cc +@@ -40,6 +40,7 @@ + #include + + #ifdef _WIN32 ++#include + #include /* for GetFullPathName */ + #endif + +diff --git a/compiler/cpp/src/thrift/thriftl.ll b/compiler/cpp/src/thrift/thriftl.ll +index 45c5926..47f098d 100644 +--- a/compiler/cpp/src/thrift/thriftl.ll ++++ b/compiler/cpp/src/thrift/thriftl.ll +@@ -59,6 +59,7 @@ + #include + + #ifdef _MSC_VER ++#include // isatty + #include "thrift/windows/config.h" + #endif + #include "thrift/main.h" +diff --git a/compiler/cpp/src/thrift/thrifty.yy b/compiler/cpp/src/thrift/thrifty.yy +index 2d67c1a..ffaafcf 100644 +--- a/compiler/cpp/src/thrift/thrifty.yy ++++ b/compiler/cpp/src/thrift/thrifty.yy +@@ -36,11 +36,7 @@ + #endif + #include + #include +-#ifndef _MSC_VER + #include +-#else +-#include +-#endif + #include + #ifdef _MSC_VER + #include "thrift/windows/config.h" diff --git a/recipe/thrift-0.13.0-windows-fixes.patch b/recipe/thrift-0.13.0-windows-fixes.patch deleted file mode 100644 index 727c489..0000000 --- a/recipe/thrift-0.13.0-windows-fixes.patch +++ /dev/null @@ -1,96 +0,0 @@ ---- thrift-0.13.0-orig/compiler/cpp/src/thrift/main.cc 2019-10-11 01:34:34.000000000 +0300 -+++ thrift-0.13.0/compiler/cpp/src/thrift/main.cc 2020-02-12 21:59:42.022296935 +0200 -@@ -40,6 +40,7 @@ - #include - - #ifdef _WIN32 -+#include - #include /* for GetFullPathName */ - #endif - ---- thrift-0.13.0-orig/compiler/cpp/src/thrift/thriftl.ll 2019-10-11 01:34:27.000000000 +0300 -+++ thrift-0.13.0/compiler/cpp/src/thrift/thriftl.ll 2020-02-12 22:38:55.213395854 +0200 -@@ -59,6 +59,7 @@ - #include - - #ifdef _MSC_VER -+#include // isatty - #include "thrift/windows/config.h" - #endif - #include "thrift/main.h" - ---- thrift-0.13.0-orig/compiler/cpp/src/thrift/generate/t_erl_generator.cc 2019-10-11 01:34:34.000000000 +0300 -+++ thrift-0.13.0/compiler/cpp/src/thrift/generate/t_erl_generator.cc 2020-02-12 22:43:20.487425216 +0200 -@@ -31,6 +31,12 @@ - #include "thrift/version.h" - #include "thrift/generate/t_generator.h" - -+#ifdef _MSC_VER -+#ifdef max -+#undef max -+#endif -+#endif -+ - using std::map; - using std::ofstream; - using std::ostream; - ---- thrift-0.13.0-orig/compiler/cpp/src/thrift/generate/t_go_generator.cc 2019-10-11 01:34:34.000000000 +0300 -+++ thrift-0.13.0/compiler/cpp/src/thrift/generate/t_go_generator.cc 2020-02-12 22:50:45.795831019 +0200 -@@ -42,6 +42,12 @@ - #include "thrift/version.h" - #include "thrift/generate/t_generator.h" - -+#ifdef _MSC_VER -+#ifdef max -+#undef max -+#endif -+#endif -+ - using std::map; - using std::ostream; - using std::ostringstream; - ---- thrift-0.13.0-orig/compiler/cpp/src/thrift/generate/t_py_generator.cc 2019-10-11 01:34:34.000000000 +0300 -+++ thrift-0.13.0/compiler/cpp/src/thrift/generate/t_py_generator.cc 2020-02-12 22:56:20.302405797 +0200 -@@ -242,7 +242,8 @@ - std::string declare_argument(t_field* tfield); - std::string render_field_default_value(t_field* tfield); - std::string type_name(t_type* ttype); -- std::string function_signature(t_function* tfunction, bool interface = false); -+ std::string function_signature(t_function* tfunction, -+ bool interface_ = false); - std::string argument_list(t_struct* tstruct, - std::vector* pre = NULL, - std::vector* post = NULL); -@@ -2615,12 +2616,12 @@ - * @param tfunction Function definition - * @return String of rendered function definition - */ --string t_py_generator::function_signature(t_function* tfunction, bool interface) { -+string t_py_generator::function_signature(t_function* tfunction, bool interface_) { - vector pre; - vector post; - string signature = tfunction->get_name() + "("; - -- if (!(gen_zope_interface_ && interface)) { -+ if (!(gen_zope_interface_ && interface_)) { - pre.emplace_back("self"); - } - - ---- thrift-0.13.0-orig/compiler/cpp/src/thrift/thrifty.yy 2019-03-16 18:54:19.000000000 +0200 -+++ thrift-0.13.0/compiler/cpp/src/thrift/thrifty.yy 2020-02-12 23:15:10.639304746 +0200 -@@ -36,11 +36,7 @@ - #endif - #include - #include --#ifndef _MSC_VER - #include --#else --#include --#endif - #include - #ifdef _MSC_VER - #include "thrift/windows/config.h" - From 013bf25ff37b16afb0c2685372420674e1ebe6e4 Mon Sep 17 00:00:00 2001 From: "H. Vetinari" Date: Wed, 24 May 2023 16:10:51 +1100 Subject: [PATCH 03/22] remove obsolete openssl-distinction of wrapper output --- recipe/meta.yaml | 2 -- 1 file changed, 2 deletions(-) diff --git a/recipe/meta.yaml b/recipe/meta.yaml index 763702a..5ef123b 100644 --- a/recipe/meta.yaml +++ b/recipe/meta.yaml @@ -119,8 +119,6 @@ outputs: host: - {{ pin_subpackage("libthrift", exact=true) }} - {{ pin_subpackage("thrift-compiler", exact=true) }} - # Needed to build for the openssl variants - - openssl run: - {{ pin_subpackage("libthrift", exact=true) }} - {{ pin_subpackage("thrift-compiler", exact=true) }} From 520432fa6530e84b9c1e0852609d566e11c6b369 Mon Sep 17 00:00:00 2001 From: "H. Vetinari" Date: Wed, 24 May 2023 16:12:51 +1100 Subject: [PATCH 04/22] depend on conda-forge's libevent also on windows --- recipe/bld.bat | 2 +- recipe/meta.yaml | 6 +++--- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/recipe/bld.bat b/recipe/bld.bat index 7483bf5..585b9c0 100644 --- a/recipe/bld.bat +++ b/recipe/bld.bat @@ -29,7 +29,7 @@ cmake -GNinja ^ -DCMAKE_POLICY_DEFAULT_CMP0074=NEW ^ -DOpenSSL_ROOT="%LIBRARY_PREFIX%" ^ -DOPENSSL_ROOT_DIR="%LIBRARY_PREFIX%" ^ - -DLIBEVENT_ROOT="%SRC_DIR%\thirdparty\src\libevent" ^ + -DLIBEVENT_ROOT="%LIBRARY_PREFIX%" ^ -DFLEX_EXECUTABLE="%SRC_DIR%\thirdparty\dist\winflexbison\win_flex.exe" ^ -DBISON_EXECUTABLE="%SRC_DIR%\thirdparty\dist\winflexbison\win_bison.exe" ^ -DCMAKE_INSTALL_PREFIX="%LIBRARY_PREFIX%" ^ diff --git a/recipe/meta.yaml b/recipe/meta.yaml index 5ef123b..e7fcc36 100644 --- a/recipe/meta.yaml +++ b/recipe/meta.yaml @@ -39,7 +39,7 @@ requirements: - m2-patch # [win] host: - boost-cpp - - libevent # [unix] + - libevent - openssl - zlib run: @@ -66,7 +66,7 @@ outputs: - m2-patch # [win] host: - boost-cpp - - libevent # [unix] + - libevent - openssl - zlib test: @@ -101,7 +101,7 @@ outputs: host: - {{ pin_subpackage("libthrift", exact=true) }} - boost-cpp - - libevent # [unix] + - libevent - openssl - zlib run: From 8e385022536686fdaa87f3593347ae0c33a657cf Mon Sep 17 00:00:00 2001 From: "H. Vetinari" Date: Wed, 24 May 2023 16:13:55 +1100 Subject: [PATCH 05/22] remove deprecated CMake option --- recipe/bld.bat | 3 --- 1 file changed, 3 deletions(-) diff --git a/recipe/bld.bat b/recipe/bld.bat index 585b9c0..8134bed 100644 --- a/recipe/bld.bat +++ b/recipe/bld.bat @@ -22,8 +22,6 @@ cd %SRC_DIR%\build :: make thrift/windows/config.h available for the compiler: SET CL=/I"%SRC_DIR%\lib\cpp\src" -:: WITH_SHARED_LIB must be off - the cmake config doesn't support shared libs yet - cmake -GNinja ^ -DCMAKE_BUILD_TYPE=Release ^ -DCMAKE_POLICY_DEFAULT_CMP0074=NEW ^ @@ -42,7 +40,6 @@ cmake -GNinja ^ -DBoost_ADDITIONAL_VERSIONS="1.70.0" ^ -DBOOST_ROOT=%LIBRARY_PREFIX% ^ -DBoost_INCLUDE_DIRS=%LIBRARY_PREFIX%\include ^ - -DWITH_SHARED_LIB=OFF ^ -DBoost_DEBUG=ON ^ -DBoost_NO_BOOST_CMAKE=ON ^ -DBUILD_TESTING=OFF ^ From 1c4ff43fb30a1b0a768cc5de7c4093123913c6c0 Mon Sep 17 00:00:00 2001 From: "H. Vetinari" Date: Wed, 24 May 2023 16:17:26 +1100 Subject: [PATCH 06/22] switch to pure CMake build on unix --- recipe/build.sh | 17 ++++++----------- recipe/install.sh | 5 ++--- recipe/meta.yaml | 13 ------------- 3 files changed, 8 insertions(+), 27 deletions(-) diff --git a/recipe/build.sh b/recipe/build.sh index 7db76aa..625ad3b 100644 --- a/recipe/build.sh +++ b/recipe/build.sh @@ -1,9 +1,9 @@ #!/bin/env bash -# Get an updated config.sub and config.guess -cp $BUILD_PREFIX/share/libtool/build-aux/config.* . +set -ex -set -e -set -x +# folder "build" exists already +mkdir cmake-build +cd cmake-build BOOST_ROOT=$PREFIX ZLIB_ROOT=$PREFIX @@ -11,13 +11,9 @@ LIBEVENT_ROOT=$PREFIX export OPENSSL_ROOT=$PREFIX export OPENSSL_ROOT_DIR=$PREFIX -export M4="$(which m4)" - -pushd "$SRC_DIR" -mkdir cmake-build -pushd cmake-build -cmake ${CMAKE_ARGS} \ +cmake -G Ninja \ + ${CMAKE_ARGS} \ -DCMAKE_INSTALL_PREFIX=$PREFIX \ -DBUILD_SHARED_LIBS=ON \ -DBUILD_PYTHON=OFF \ @@ -30,7 +26,6 @@ cmake ${CMAKE_ARGS} \ -DCMAKE_FIND_ROOT_PATH="$PREFIX" \ -DBUILD_TESTING=OFF \ -DBoost_INCLUDE_DIRS=${PREFIX}/include \ - -GNinja \ .. # Be explicit about tutorials being unwanted. diff --git a/recipe/install.sh b/recipe/install.sh index d836157..9eeb65b 100755 --- a/recipe/install.sh +++ b/recipe/install.sh @@ -1,8 +1,7 @@ #!/bin/bash +set -ex -set -exo pipefail - -pushd cmake-build +cd cmake-build ninja install if [[ "$PKG_NAME" == libthrift ]]; then diff --git a/recipe/meta.yaml b/recipe/meta.yaml index e7fcc36..3da54cd 100644 --- a/recipe/meta.yaml +++ b/recipe/meta.yaml @@ -25,18 +25,13 @@ build: requirements: build: - - libtool # [unix] - {{ compiler("c") }} - {{ compiler("cxx") }} - bison # [unix] - cmake - flex # [unix] - - libtool # [unix] - - m4 # [unix] - pkg-config # [unix] - - make # [unix] - ninja - - m2-patch # [win] host: - boost-cpp - libevent @@ -58,12 +53,8 @@ outputs: - bison # [unix] - cmake - flex # [unix] - - libtool # [unix] - - m4 # [unix] - pkg-config # [unix] - - make # [unix] - ninja - - m2-patch # [win] host: - boost-cpp - libevent @@ -92,12 +83,8 @@ outputs: - bison # [unix] - cmake - flex # [unix] - - libtool # [unix] - - m4 # [unix] - pkg-config # [unix] - - make # [unix] - ninja - - m2-patch # [win] host: - {{ pin_subpackage("libthrift", exact=true) }} - boost-cpp From ca23e2040bdefb85696509d0a35313f533de226c Mon Sep 17 00:00:00 2001 From: "H. Vetinari" Date: Wed, 24 May 2023 16:18:24 +1100 Subject: [PATCH 07/22] remove duplicate invocation of CMake in build.sh reason this previously didn't work is most likely a sneaky non-breaking space that managed to break correct detection of the string "OFF" --- recipe/build.sh | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/recipe/build.sh b/recipe/build.sh index 625ad3b..d7b6779 100644 --- a/recipe/build.sh +++ b/recipe/build.sh @@ -22,16 +22,12 @@ cmake -G Ninja \ -DBUILD_JAVASCRIPT=OFF \ -DBUILD_NODEJS=OFF \ -DBUILD_C_GLIB=OFF \ - -DBUILD_TUTORIALS=OFF \ + -DBUILD_TUTORIALS=OFF \ -DCMAKE_FIND_ROOT_PATH="$PREFIX" \ -DBUILD_TESTING=OFF \ -DBoost_INCLUDE_DIRS=${PREFIX}/include \ .. -# Be explicit about tutorials being unwanted. -# Somehow this gets overriden on first run. -cmake -DBUILD_TUTORIALS=OFF . - # Decrease parallelism a bit as we will otherwise get out-of-memory problems # This is only necessary on Travis if [ "$(uname -m)" = "ppc64le" ]; then From e6143ba356a7aa3d3ebd066eb4dd690e3594f72b Mon Sep 17 00:00:00 2001 From: "H. Vetinari" Date: Wed, 24 May 2023 16:19:41 +1100 Subject: [PATCH 08/22] harmonize build & install invocations through CMake --- recipe/bld.bat | 2 +- recipe/build.sh | 8 +------- recipe/install.bat | 2 +- recipe/install.sh | 2 +- 4 files changed, 4 insertions(+), 10 deletions(-) diff --git a/recipe/bld.bat b/recipe/bld.bat index 8134bed..6737f8f 100644 --- a/recipe/bld.bat +++ b/recipe/bld.bat @@ -47,5 +47,5 @@ cmake -GNinja ^ "%SRC_DIR%" if errorlevel 1 exit 1 -ninja +cmake --build . if errorlevel 1 exit 1 diff --git a/recipe/build.sh b/recipe/build.sh index d7b6779..f235736 100644 --- a/recipe/build.sh +++ b/recipe/build.sh @@ -28,10 +28,4 @@ cmake -G Ninja \ -DBoost_INCLUDE_DIRS=${PREFIX}/include \ .. -# Decrease parallelism a bit as we will otherwise get out-of-memory problems -# This is only necessary on Travis -if [ "$(uname -m)" = "ppc64le" ]; then - ninja -j1 -else - ninja -fi +cmake --build . diff --git a/recipe/install.bat b/recipe/install.bat index 0e5f323..be7870a 100644 --- a/recipe/install.bat +++ b/recipe/install.bat @@ -1,5 +1,5 @@ cd %SRC_DIR%\build -ninja install +cmake --install . if errorlevel 1 exit 1 if [%PKG_NAME%] == [libthrift] ( diff --git a/recipe/install.sh b/recipe/install.sh index 9eeb65b..bd0e9ec 100755 --- a/recipe/install.sh +++ b/recipe/install.sh @@ -2,7 +2,7 @@ set -ex cd cmake-build -ninja install +cmake --install . if [[ "$PKG_NAME" == libthrift ]]; then rm $PREFIX/bin/thrift From c8855c3f270d46c9dffb0f12e941860862f77a03 Mon Sep 17 00:00:00 2001 From: "H. Vetinari" Date: Wed, 24 May 2023 16:21:41 +1100 Subject: [PATCH 09/22] prettify windows build scripts --- recipe/bld.bat | 4 ++-- recipe/install.bat | 11 +++++++---- 2 files changed, 9 insertions(+), 6 deletions(-) diff --git a/recipe/bld.bat b/recipe/bld.bat index 6737f8f..8f6d742 100644 --- a/recipe/bld.bat +++ b/recipe/bld.bat @@ -45,7 +45,7 @@ cmake -GNinja ^ -DBUILD_TESTING=OFF ^ -DBUILD_SHARED_LIBS=ON ^ "%SRC_DIR%" -if errorlevel 1 exit 1 +if %ERRORLEVEL% neq 0 exit 1 cmake --build . -if errorlevel 1 exit 1 +if %ERRORLEVEL% neq 0 exit 1 diff --git a/recipe/install.bat b/recipe/install.bat index be7870a..d13c5f0 100644 --- a/recipe/install.bat +++ b/recipe/install.bat @@ -1,13 +1,16 @@ +@echo on + cd %SRC_DIR%\build + cmake --install . -if errorlevel 1 exit 1 +if %ERRORLEVEL% neq 0 exit 1 if [%PKG_NAME%] == [libthrift] ( del %PREFIX%\Library\bin\thrift.exe - if errorlevel 1 exit 1 + if %ERRORLEVEL% neq 0 exit 1 move %PREFIX%\Library\bin\thriftmd.lib %PREFIX%\Library\lib\thriftmd.lib - if errorlevel 1 exit 1 + if %ERRORLEVEL% neq 0 exit 1 ) else ( del %PREFIX%\Library\bin\thriftmd.lib - if errorlevel 1 exit 1 + if %ERRORLEVEL% neq 0 exit 1 ) From 177642e67c488aac66c01ee4fcd84d8f036eae47 Mon Sep 17 00:00:00 2001 From: "H. Vetinari" Date: Wed, 24 May 2023 16:22:03 +1100 Subject: [PATCH 10/22] bump build number --- recipe/meta.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/recipe/meta.yaml b/recipe/meta.yaml index 3da54cd..6036bc7 100644 --- a/recipe/meta.yaml +++ b/recipe/meta.yaml @@ -19,7 +19,7 @@ source: {% endif %} build: - number: 1 + number: 2 run_exports: - {{ pin_subpackage("libthrift", max_pin="x.x.x") }} From e50eb494027ac6becb2ccbde506d4fab0d7d8059 Mon Sep 17 00:00:00 2001 From: "H. Vetinari" Date: Wed, 24 May 2023 16:22:16 +1100 Subject: [PATCH 11/22] add myself to maintainers --- recipe/meta.yaml | 1 + 1 file changed, 1 insertion(+) diff --git a/recipe/meta.yaml b/recipe/meta.yaml index 6036bc7..5ca435a 100644 --- a/recipe/meta.yaml +++ b/recipe/meta.yaml @@ -127,4 +127,5 @@ extra: - msarahan - jakirkham - xhochy + - h-vetinari feedstock-name: thrift-cpp From 5a48e37cba434e325b0b0dddd43784511ecb6137 Mon Sep 17 00:00:00 2001 From: "H. Vetinari" Date: Wed, 24 May 2023 16:23:53 +1100 Subject: [PATCH 12/22] MNT: Re-rendered with conda-build 3.24.0, conda-smithy 3.23.1, and conda-forge-pinning 2023.05.24.03.17.19 --- .ci_support/migrations/libevent2112.yaml | 7 ------- .ci_support/win_64_.yaml | 2 ++ .github/CODEOWNERS | 2 +- README.md | 21 ++++++++++++--------- 4 files changed, 15 insertions(+), 17 deletions(-) delete mode 100644 .ci_support/migrations/libevent2112.yaml diff --git a/.ci_support/migrations/libevent2112.yaml b/.ci_support/migrations/libevent2112.yaml deleted file mode 100644 index f4f84a9..0000000 --- a/.ci_support/migrations/libevent2112.yaml +++ /dev/null @@ -1,7 +0,0 @@ -__migrator: - build_number: 1 - kind: version - migration_number: 1 -libevent: -- 2.1.12 -migrator_ts: 1682629086.7193437 diff --git a/.ci_support/win_64_.yaml b/.ci_support/win_64_.yaml index ed4929e..4267bd9 100644 --- a/.ci_support/win_64_.yaml +++ b/.ci_support/win_64_.yaml @@ -8,6 +8,8 @@ channel_targets: - conda-forge main cxx_compiler: - vs2019 +libevent: +- 2.1.12 openssl: - '3' pin_run_as_build: diff --git a/.github/CODEOWNERS b/.github/CODEOWNERS index 44c6bc9..e09e741 100644 --- a/.github/CODEOWNERS +++ b/.github/CODEOWNERS @@ -1 +1 @@ -* @jakirkham @msarahan @wesm @xhochy \ No newline at end of file +* @h-vetinari @jakirkham @msarahan @wesm @xhochy \ No newline at end of file diff --git a/README.md b/README.md index 003e892..47dd2b7 100644 --- a/README.md +++ b/README.md @@ -1,5 +1,5 @@ -About thrift-split-feedstock -============================ +About thrift-cpp-feedstock +========================== Feedstock license: [BSD-3-Clause](https://github.com/conda-forge/thrift-cpp-feedstock/blob/main/LICENSE.txt) @@ -9,6 +9,8 @@ Package license: Apache-2.0 Summary: Compiler and C++ libraries and headers for the Apache Thrift RPC system +Development: https://github.com/apache/thrift + Current build status ==================== @@ -85,10 +87,10 @@ Current release info | [![Conda Recipe](https://img.shields.io/badge/recipe-thrift--compiler-green.svg)](https://anaconda.org/conda-forge/thrift-compiler) | [![Conda Downloads](https://img.shields.io/conda/dn/conda-forge/thrift-compiler.svg)](https://anaconda.org/conda-forge/thrift-compiler) | [![Conda Version](https://img.shields.io/conda/vn/conda-forge/thrift-compiler.svg)](https://anaconda.org/conda-forge/thrift-compiler) | [![Conda Platforms](https://img.shields.io/conda/pn/conda-forge/thrift-compiler.svg)](https://anaconda.org/conda-forge/thrift-compiler) | | [![Conda Recipe](https://img.shields.io/badge/recipe-thrift--cpp-green.svg)](https://anaconda.org/conda-forge/thrift-cpp) | [![Conda Downloads](https://img.shields.io/conda/dn/conda-forge/thrift-cpp.svg)](https://anaconda.org/conda-forge/thrift-cpp) | [![Conda Version](https://img.shields.io/conda/vn/conda-forge/thrift-cpp.svg)](https://anaconda.org/conda-forge/thrift-cpp) | [![Conda Platforms](https://img.shields.io/conda/pn/conda-forge/thrift-cpp.svg)](https://anaconda.org/conda-forge/thrift-cpp) | -Installing thrift-split -======================= +Installing thrift-cpp +===================== -Installing `thrift-split` from the `conda-forge` channel can be achieved by adding `conda-forge` to your channels with: +Installing `thrift-cpp` from the `conda-forge` channel can be achieved by adding `conda-forge` to your channels with: ``` conda config --add channels conda-forge @@ -174,17 +176,17 @@ Terminology produce the finished article (built conda distributions) -Updating thrift-split-feedstock -=============================== +Updating thrift-cpp-feedstock +============================= -If you would like to improve the thrift-split recipe or build a new +If you would like to improve the thrift-cpp recipe or build a new package version, please fork this repository and submit a PR. Upon submission, your changes will be run on the appropriate platforms to give the reviewer an opportunity to confirm that the changes result in a successful build. Once merged, the recipe will be re-built and uploaded automatically to the `conda-forge` channel, whereupon the built conda packages will be available for everybody to install and use from the `conda-forge` channel. -Note that all branches in the conda-forge/thrift-split-feedstock are +Note that all branches in the conda-forge/thrift-cpp-feedstock are immediately built and any created packages are uploaded, so PRs should be based on branches in forks and branches in the main repository should only be used to build distinct package versions. @@ -199,6 +201,7 @@ In order to produce a uniquely identifiable distribution: Feedstock Maintainers ===================== +* [@h-vetinari](https://github.com/h-vetinari/) * [@jakirkham](https://github.com/jakirkham/) * [@msarahan](https://github.com/msarahan/) * [@wesm](https://github.com/wesm/) From f43177ebfdbee11868c4b72c9e832c9512c36d40 Mon Sep 17 00:00:00 2001 From: "H. Vetinari" Date: Wed, 24 May 2023 16:27:15 +1100 Subject: [PATCH 13/22] ensure correct installation location on windows following https://github.com/apache/thrift/commit/66d110bcce5c7e1b0deeacd28b046fb4a9c0249b, which makes some choices that are not applicable to our setup --- recipe/bld.bat | 2 ++ 1 file changed, 2 insertions(+) diff --git a/recipe/bld.bat b/recipe/bld.bat index 8f6d742..0820e6d 100644 --- a/recipe/bld.bat +++ b/recipe/bld.bat @@ -25,6 +25,8 @@ SET CL=/I"%SRC_DIR%\lib\cpp\src" cmake -GNinja ^ -DCMAKE_BUILD_TYPE=Release ^ -DCMAKE_POLICY_DEFAULT_CMP0074=NEW ^ + -DBIN_INSTALL_DIR="%LIBRARY_BIN%" ^ + -DLIB_INSTALL_DIR="%LIBRARY_LIB%" ^ -DOpenSSL_ROOT="%LIBRARY_PREFIX%" ^ -DOPENSSL_ROOT_DIR="%LIBRARY_PREFIX%" ^ -DLIBEVENT_ROOT="%LIBRARY_PREFIX%" ^ From 6a01d66d10156240dc63844289cd7342957b862c Mon Sep 17 00:00:00 2001 From: "H. Vetinari" Date: Wed, 24 May 2023 16:36:22 +1100 Subject: [PATCH 14/22] clarify and clean up testing --- recipe/meta.yaml | 28 +++++++++++++++++++--------- 1 file changed, 19 insertions(+), 9 deletions(-) diff --git a/recipe/meta.yaml b/recipe/meta.yaml index 5ca435a..37d5d89 100644 --- a/recipe/meta.yaml +++ b/recipe/meta.yaml @@ -62,13 +62,22 @@ outputs: - zlib test: commands: - - test ! -f $PREFIX/bin/thrift # [unix] - - test ! -f $PREFIX/lib/libthrift.a # [unix] - - test -f $PREFIX/lib/libthrift${SHLIB_EXT} # [unix] - - test -f $PREFIX/include/thrift/Thrift.h # [unix] - - if not exist %PREFIX%\\Library\\include\\thrift\\Thrift.h exit 1 # [win] - - if exist %PREFIX%\\Library\\bin\\thrift.exe exit 1 # [win] - - if not exist %PREFIX%\\Library\\lib\\thriftmd.lib exit 1 # [win] + # presence of shared libs + - test -f $PREFIX/lib/libthrift.so # [linux] + - test -f $PREFIX/lib/libthrift.dylib # [osx] + - if not exist %LIBRARY_BIN%\thriftmd.dll exit 1 # [win] + - if not exist %LIBRARY_LIB%\thriftmd.lib exit 1 # [win] + + # absence of static libs + - test ! -f $PREFIX/lib/libthrift.a # [unix] + + # absence of binaries + - test ! -f $PREFIX/bin/thrift # [unix] + - if exist %LIBRARY_BIN%\thrift.exe exit 1 # [win] + + # presence of headers + - test -f $PREFIX/include/thrift/Thrift.h # [unix] + - if not exist %LIBRARY_INC%\thrift\Thrift.h exit 1 # [win] - name: thrift-compiler script: install.sh # [unix] @@ -95,8 +104,9 @@ outputs: - {{ pin_subpackage("libthrift", exact=true) }} test: commands: - - test -f $PREFIX/bin/thrift # [unix] - - if not exist %PREFIX%\\Library\\bin\\thrift.exe exit 1 # [win] + # presence of binaries + - test -f $PREFIX/bin/thrift # [unix] + - if not exist %LIBRARY_BIN%\thrift.exe exit 1 # [win] - name: thrift-cpp build: From 34e241faffe43864a98b5f7da04e38e475c266dd Mon Sep 17 00:00:00 2001 From: "H. Vetinari" Date: Wed, 24 May 2023 16:37:50 +1100 Subject: [PATCH 15/22] add CMake integration test --- recipe/cmake_test/CMakeLists.txt | 4 ++++ recipe/meta.yaml | 13 +++++++++++++ 2 files changed, 17 insertions(+) create mode 100644 recipe/cmake_test/CMakeLists.txt diff --git a/recipe/cmake_test/CMakeLists.txt b/recipe/cmake_test/CMakeLists.txt new file mode 100644 index 0000000..5488faa --- /dev/null +++ b/recipe/cmake_test/CMakeLists.txt @@ -0,0 +1,4 @@ +project(cf_dummy LANGUAGES C CXX) +cmake_minimum_required(VERSION 3.12) +# make sure package is found +find_package(Thrift REQUIRED) diff --git a/recipe/meta.yaml b/recipe/meta.yaml index 37d5d89..6381249 100644 --- a/recipe/meta.yaml +++ b/recipe/meta.yaml @@ -61,6 +61,14 @@ outputs: - openssl - zlib test: + requires: + # cmake needs compiler to be able to run package detection, see + # https://discourse.cmake.org/t/questions-about-find-package-cli-msvc/6194 + - {{ compiler('cxx') }} + - cmake + - ninja + files: + - cmake_test/ commands: # presence of shared libs - test -f $PREFIX/lib/libthrift.so # [linux] @@ -79,6 +87,11 @@ outputs: - test -f $PREFIX/include/thrift/Thrift.h # [unix] - if not exist %LIBRARY_INC%\thrift\Thrift.h exit 1 # [win] + # test CMake integration, i.e. find_package(thrift) + - cd cmake_test + - cmake -GNinja $CMAKE_ARGS . # [unix] + - cmake -GNinja %CMAKE_ARGS% . # [win] + - name: thrift-compiler script: install.sh # [unix] script: install.bat # [win] From 51f0539ed2584fb14c61efebf60027dcf937e9e7 Mon Sep 17 00:00:00 2001 From: "H. Vetinari" Date: Wed, 24 May 2023 16:50:07 +1100 Subject: [PATCH 16/22] build from scratch on windows --- recipe/bld.bat | 7 +++---- recipe/install.bat | 2 +- 2 files changed, 4 insertions(+), 5 deletions(-) diff --git a/recipe/bld.bat b/recipe/bld.bat index 0820e6d..7363e93 100644 --- a/recipe/bld.bat +++ b/recipe/bld.bat @@ -17,10 +17,9 @@ set OPENSSL_ROOT_DIR=%PREFIX% set "CXXFLAGS=%CXXFLAGS% -DNOMINMAX" -cd %SRC_DIR%\build - -:: make thrift/windows/config.h available for the compiler: -SET CL=/I"%SRC_DIR%\lib\cpp\src" +:: folder "build" exists already +mkdir cmake-build +cd cmake-build cmake -GNinja ^ -DCMAKE_BUILD_TYPE=Release ^ diff --git a/recipe/install.bat b/recipe/install.bat index d13c5f0..5647ac4 100644 --- a/recipe/install.bat +++ b/recipe/install.bat @@ -1,6 +1,6 @@ @echo on -cd %SRC_DIR%\build +cd cmake-build cmake --install . if %ERRORLEVEL% neq 0 exit 1 From 07dd6c5e410f9003f171e0ea049b4ad19051e90d Mon Sep 17 00:00:00 2001 From: "H. Vetinari" Date: Fri, 2 Jun 2023 22:00:42 +1100 Subject: [PATCH 17/22] simplify build deps of outputs --- recipe/meta.yaml | 6 ------ 1 file changed, 6 deletions(-) diff --git a/recipe/meta.yaml b/recipe/meta.yaml index 6381249..b4902a8 100644 --- a/recipe/meta.yaml +++ b/recipe/meta.yaml @@ -50,10 +50,7 @@ outputs: build: - {{ compiler("c") }} - {{ compiler("cxx") }} - - bison # [unix] - cmake - - flex # [unix] - - pkg-config # [unix] - ninja host: - boost-cpp @@ -102,10 +99,7 @@ outputs: build: - {{ compiler("c") }} - {{ compiler("cxx") }} - - bison # [unix] - cmake - - flex # [unix] - - pkg-config # [unix] - ninja host: - {{ pin_subpackage("libthrift", exact=true) }} From 3e7eeb20d2c6c0898df8ee5fac63e49f011ec9bf Mon Sep 17 00:00:00 2001 From: "H. Vetinari" Date: Fri, 2 Jun 2023 22:01:14 +1100 Subject: [PATCH 18/22] use winflexbison on windows also use pkg-config as a fall-back on windows --- recipe/bld.bat | 14 +------------- recipe/meta.yaml | 18 +++++++----------- 2 files changed, 8 insertions(+), 24 deletions(-) diff --git a/recipe/bld.bat b/recipe/bld.bat index 7363e93..b6109d8 100644 --- a/recipe/bld.bat +++ b/recipe/bld.bat @@ -1,14 +1,4 @@ -pushd thirdparty\src\libevent -nmake -f Makefile.nmake -mkdir lib -move *.lib lib\ -move WIN32-Code\event2\* include\event2\ -move WIN32-Code\nmake\* include\event2\ -move WIN32-Code\nmake\event2\* include\event2\ -move *.h include\ -if errorlevel 1 exit 1 - -popd +@echo on set BOOST_ROOT=%PREFIX% set ZLIB_ROOT=%PREFIX% @@ -29,8 +19,6 @@ cmake -GNinja ^ -DOpenSSL_ROOT="%LIBRARY_PREFIX%" ^ -DOPENSSL_ROOT_DIR="%LIBRARY_PREFIX%" ^ -DLIBEVENT_ROOT="%LIBRARY_PREFIX%" ^ - -DFLEX_EXECUTABLE="%SRC_DIR%\thirdparty\dist\winflexbison\win_flex.exe" ^ - -DBISON_EXECUTABLE="%SRC_DIR%\thirdparty\dist\winflexbison\win_bison.exe" ^ -DCMAKE_INSTALL_PREFIX="%LIBRARY_PREFIX%" ^ -DBUILD_PYTHON=OFF ^ -DBUILD_JAVA=OFF ^ diff --git a/recipe/meta.yaml b/recipe/meta.yaml index b4902a8..e1e77c1 100644 --- a/recipe/meta.yaml +++ b/recipe/meta.yaml @@ -1,6 +1,4 @@ {% set version = "0.18.1" %} -{% set WIN_FLEX_BIZON_VERSION = "2.5.20" %} -{% set LIBEVENT_VERSION = "2.1.8" %} package: name: thrift-split @@ -11,27 +9,25 @@ source: sha256: 04c6f10e5d788ca78e13ee2ef0d2152c7b070c0af55483d6b942e29cff296726 patches: - patches/0001-windows-fixes.patch # [win] - {% if win %} - - url: https://github.com/lexxmark/winflexbison/releases/download/v{{ WIN_FLEX_BIZON_VERSION }}/win_flex_bison-{{ WIN_FLEX_BIZON_VERSION }}.zip - folder: thirdparty\dist\winflexbison - - url: https://github.com/nmathewson/Libevent/archive/release-{{ LIBEVENT_VERSION }}-stable.zip - folder: thirdparty\src\libevent - {% endif %} build: number: 2 run_exports: - {{ pin_subpackage("libthrift", max_pin="x.x.x") }} + ignore_run_exports_from: + # we only need the binaries at build-time + - winflexbison requirements: build: - {{ compiler("c") }} - {{ compiler("cxx") }} - - bison # [unix] - cmake - - flex # [unix] - - pkg-config # [unix] - ninja + - pkg-config + - bison # [unix] + - flex # [unix] + - winflexbison # [win] host: - boost-cpp - libevent From 9e14d8a8ea13ff993a31ba32f935ac35c033b3fa Mon Sep 17 00:00:00 2001 From: "H. Vetinari" Date: Fri, 2 Jun 2023 22:20:11 +1100 Subject: [PATCH 19/22] patch in implementation of boost::throw_exception --- recipe/meta.yaml | 3 +- recipe/patches/0001-windows-fixes.patch | 2 +- ...boost-throw_exception-implementation.patch | 32 +++++++++++++++++++ 3 files changed, 35 insertions(+), 2 deletions(-) create mode 100644 recipe/patches/0002-Add-boost-throw_exception-implementation.patch diff --git a/recipe/meta.yaml b/recipe/meta.yaml index e1e77c1..dada688 100644 --- a/recipe/meta.yaml +++ b/recipe/meta.yaml @@ -8,7 +8,8 @@ source: - url: http://archive.apache.org/dist/thrift/{{ version }}/thrift-{{ version }}.tar.gz sha256: 04c6f10e5d788ca78e13ee2ef0d2152c7b070c0af55483d6b942e29cff296726 patches: - - patches/0001-windows-fixes.patch # [win] + - patches/0001-windows-fixes.patch # [win] + - patches/0002-Add-boost-throw_exception-implementation.patch # [win] build: number: 2 diff --git a/recipe/patches/0001-windows-fixes.patch b/recipe/patches/0001-windows-fixes.patch index 59eeec8..82fe073 100644 --- a/recipe/patches/0001-windows-fixes.patch +++ b/recipe/patches/0001-windows-fixes.patch @@ -1,7 +1,7 @@ From 8af7173360e4fcf1dc267fe6abde6279fed12489 Mon Sep 17 00:00:00 2001 From: Pearu Peterson Date: Wed, 12 Feb 2020 13:50:35 -0800 -Subject: [PATCH] windows fixes +Subject: [PATCH 1/2] windows fixes Co-Authored-By: H. Vetinari --- diff --git a/recipe/patches/0002-Add-boost-throw_exception-implementation.patch b/recipe/patches/0002-Add-boost-throw_exception-implementation.patch new file mode 100644 index 0000000..271aa6e --- /dev/null +++ b/recipe/patches/0002-Add-boost-throw_exception-implementation.patch @@ -0,0 +1,32 @@ +From d32c83c87c42cd8c7b22a388afed266818e6eb30 Mon Sep 17 00:00:00 2001 +From: "H. Vetinari" +Date: Fri, 2 Jun 2023 22:17:47 +1100 +Subject: [PATCH 2/2] Add boost::throw_exception implementation + +Taken from: +https://github.com/conda-forge/lief-feedstock/blob/8ec0b2b04dbcb44e0df219058ee0868910bd0899/recipe/0004-Add-boost-throw_exception-implementation.patch + +Inspired-By: "Uwe L. Korn" +--- + lib/cpp/src/thrift/transport/TSSLSocket.cpp | 11 +++++++++++ + 1 file changed, 11 insertions(+) + +diff --git a/lib/cpp/src/thrift/transport/TSSLSocket.cpp b/lib/cpp/src/thrift/transport/TSSLSocket.cpp +index eb96a73..f65fa29 100644 +--- a/lib/cpp/src/thrift/transport/TSSLSocket.cpp ++++ b/lib/cpp/src/thrift/transport/TSSLSocket.cpp +@@ -1234,3 +1234,14 @@ char uppercase(char c) { + } + } + } ++ ++// We need to explicitly define this here as Boost infers from the defines/environment ++// that boost::throw_exception will be user-defined. ++namespace boost ++{ ++#ifdef BOOST_NO_EXCEPTIONS ++void throw_exception( std::exception const & e ){ ++ throw 11; ++}; ++#endif ++}// namespace boost From 82a4933eddf034f9a33fe8cd599471062f746de2 Mon Sep 17 00:00:00 2001 From: "H. Vetinari" Date: Fri, 2 Jun 2023 23:34:24 +1100 Subject: [PATCH 20/22] add a test-dep to pass CMake integration test on windows --- recipe/meta.yaml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/recipe/meta.yaml b/recipe/meta.yaml index dada688..4ce2db0 100644 --- a/recipe/meta.yaml +++ b/recipe/meta.yaml @@ -61,6 +61,8 @@ outputs: - {{ compiler('cxx') }} - cmake - ninja + # find_package(thrift) really wants to find zlib + - zlib # [win] files: - cmake_test/ commands: From b741254643fef51a65986988f30030b1723ef367 Mon Sep 17 00:00:00 2001 From: "H. Vetinari" Date: Sat, 3 Jun 2023 11:14:55 +1100 Subject: [PATCH 21/22] test artefact presence for all three thrift libs --- recipe/meta.yaml | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/recipe/meta.yaml b/recipe/meta.yaml index 4ce2db0..b0e78b7 100644 --- a/recipe/meta.yaml +++ b/recipe/meta.yaml @@ -66,14 +66,16 @@ outputs: files: - cmake_test/ commands: + {% for each in ["thrift", "thriftnb", "thriftz"] %} # presence of shared libs - - test -f $PREFIX/lib/libthrift.so # [linux] - - test -f $PREFIX/lib/libthrift.dylib # [osx] - - if not exist %LIBRARY_BIN%\thriftmd.dll exit 1 # [win] - - if not exist %LIBRARY_LIB%\thriftmd.lib exit 1 # [win] + - test -f $PREFIX/lib/lib{{ each }}.so # [linux] + - test -f $PREFIX/lib/lib{{ each }}.dylib # [osx] + - if not exist %LIBRARY_LIB%\{{ each }}md.lib exit 1 # [win] + - if not exist %LIBRARY_BIN%\{{ each }}md.dll exit 1 # [win] # absence of static libs - - test ! -f $PREFIX/lib/libthrift.a # [unix] + - test ! -f $PREFIX/lib/lib{{ each }}.a # [unix] + {% endfor %} # absence of binaries - test ! -f $PREFIX/bin/thrift # [unix] From dd8e18910d850f285633701c2318fe01535fbf06 Mon Sep 17 00:00:00 2001 From: "H. Vetinari" Date: Sat, 3 Jun 2023 11:15:07 +1100 Subject: [PATCH 22/22] add test for pkg-config metadata --- recipe/meta.yaml | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/recipe/meta.yaml b/recipe/meta.yaml index b0e78b7..17c9bb0 100644 --- a/recipe/meta.yaml +++ b/recipe/meta.yaml @@ -61,6 +61,7 @@ outputs: - {{ compiler('cxx') }} - cmake - ninja + - pkg-config # find_package(thrift) really wants to find zlib - zlib # [win] files: @@ -85,6 +86,11 @@ outputs: - test -f $PREFIX/include/thrift/Thrift.h # [unix] - if not exist %LIBRARY_INC%\thrift\Thrift.h exit 1 # [win] + # pkg-config metadata (different naming than DSOs; uses hyphen, no "lib" prefix) + {% for each in ["thrift", "thrift-nb", "thrift-z"] %} + - pkg-config --print-errors --exact-version "{{ version }}" {{ each }} + {% endfor %} + # test CMake integration, i.e. find_package(thrift) - cd cmake_test - cmake -GNinja $CMAKE_ARGS . # [unix]