-
Notifications
You must be signed in to change notification settings - Fork 8.3k
Build all contribs using our own CMake files #9226
Copy link
Copy link
Closed
Labels
Description
All contribs should be based on common template:
option (ENABLE_XXX)
if (ENABLE_XXX)
option (USE_INTERNAL_XXX)
if (USE_INTERNAL_XXX)
…
else ()
add_library (xxx UNKNOWN IMPORT)
find_library(…) # use library names
find_path(…) # find include dirs
set_property(TARGET xxx PROPERTY IMPORTED_LOCATION …)
# check that external library compiles
endif ()
target_compile_definitions (xxx PUBLIC USE_XXX=1)
else ()
add_library (xxx INTERFACE)
target_compile_definitions (xxx INTERFACE USE_XXX=0)
endif ()
It allows to always depend on required libraries and give the explicit and determenistic control for their enabling to user. It also removes unnecessary configuration, install and export steps that makes our own CMake files more complicated.
List of contribs to fix:
- abseil-cpp
- arrow
- avro
- aws*
- base64
- boost
- brotli
- capnproto
- cassandra
- cctz
- cppkafka
- curl
- double-conversion
- fastops
- fastfloat
- flatbuffers
- googletest
- grpc
- gcem
- h3
- hyperscan
- icu
- jemalloc (special case)
- libgsasl
- libhdfs3
- librdkafka
- libunwind (special case)
- libxml2
- llvm
- lz4
- mariadb-connector-c
- openssl
- orc
- poco
- protobuf
- rapidjson
- re2
- ryu
- sentry-native
- simdjson
- snappy
- sparsehash-c11
- thrift
- unixodbc
- xz
- zlib-ng
- zstd
And maybe some others that are not yet in contrib folder
Reactions are currently unavailable