Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

feat build: prefere static libs when possible #821

Closed
Closed
Changes from 1 commit
Commits
Show all changes
72 commits
Select commit Hold shift + click to select a range
f9577de
First try
fdr400 Jan 6, 2025
974d97e
Statis mongo and mysql
fdr400 Jan 6, 2025
476a639
Try fix openssl alpine
fdr400 Jan 6, 2025
5c31308
Fix alpine zlib
fdr400 Jan 6, 2025
ffebb90
Fix static boost
fdr400 Jan 6, 2025
3a3272c
Remove common name from module helpers
fdr400 Jan 6, 2025
ce2ef8a
Fix alpine
fdr400 Jan 6, 2025
c921d2e
Try fix MacOS
fdr400 Jan 6, 2025
d0c6d7a
Merge branch 'develop' into fdr400-more-static-linkage
fdr400 Jan 6, 2025
008adcf
Try fix macos static boost linkage
fdr400 Jan 6, 2025
33bf3f6
Fix MacOS cannot find -lzstd
fdr400 Jan 6, 2025
a89d8c0
Fix boost static linkage
fdr400 Jan 6, 2025
749b7ba
Try fix docker mysql
fdr400 Jan 6, 2025
305e1f9
Fix MacOS again
fdr400 Jan 6, 2025
26b30d0
Do not link statically with mongoc on old Ubuntus
fdr400 Jan 6, 2025
454c627
Again
fdr400 Jan 6, 2025
b5dde1d
Do not use bandled libs for gRPC
fdr400 Jan 6, 2025
1659a73
Fix libcares
fdr400 Jan 6, 2025
e5bfae9
Install c-ares
fdr400 Jan 6, 2025
18d2ea5
Link static clickhouse
fdr400 Jan 6, 2025
d5f77d4
Use brew curl
fdr400 Jan 7, 2025
fecf18d
Try fix clickhouse
fdr400 Jan 7, 2025
1a8f802
Try fix clickhouse again
fdr400 Jan 7, 2025
8c10e48
Try fix clickhouse
fdr400 Jan 7, 2025
3c53c19
try fix abseil
fdr400 Jan 7, 2025
5a234ec
fix abseil
fdr400 Jan 7, 2025
74ffb0f
Fix clickhouse
fdr400 Jan 7, 2025
7104b98
Try temporary fix mac
fdr400 Jan 7, 2025
1956aea
Consistent Kafka build
fdr400 Jan 7, 2025
31866ca
Try use sasl2 from brew
fdr400 Jan 7, 2025
a3b6815
Add kafka service to conan samples
fdr400 Jan 7, 2025
7f2f087
Try fiz link with zstd
fdr400 Jan 7, 2025
ed16f85
Fix kafka version
fdr400 Jan 7, 2025
134acba
Maybe linker problem
fdr400 Jan 7, 2025
32df506
Add options to to use static libs
fdr400 Jan 8, 2025
58cdb80
Use static libs in alpine and in MacOS
fdr400 Jan 8, 2025
46c3121
correct cache keys
fdr400 Jan 8, 2025
3fd84ee
Some fixes
fdr400 Jan 8, 2025
c7d44bc
Try try try
fdr400 Jan 8, 2025
cdfbeb4
Debug
fdr400 Jan 8, 2025
61aba8c
More linker flags
fdr400 Jan 8, 2025
01d0eec
Maybe order makes sense?
fdr400 Jan 8, 2025
4735302
Use framework for all libs
fdr400 Jan 8, 2025
42faf9b
Use dynamic ldap
fdr400 Jan 8, 2025
b907c8a
Install openldap
fdr400 Jan 8, 2025
04c07ea
Fix for old boost
fdr400 Jan 8, 2025
fd29288
Fix libname
fdr400 Jan 8, 2025
dd787f9
Link openldap
fdr400 Jan 8, 2025
6981253
Use ICU data
fdr400 Jan 8, 2025
2256f75
Find dynamic grpc
fdr400 Jan 8, 2025
d1e00f7
Fix not pq patch
fdr400 Jan 8, 2025
e8a9e06
Fix conan
fdr400 Jan 8, 2025
7e79c0f
Try without gold
fdr400 Jan 8, 2025
e62d01b
No static for gcc
fdr400 Jan 8, 2025
3d467dd
Remove strange alias
fdr400 Jan 9, 2025
c02b43e
Add if
fdr400 Jan 9, 2025
8c0dabf
Build static rocksdb
fdr400 Jan 9, 2025
4c4fe3b
do not build shared
fdr400 Jan 9, 2025
067163f
Remove rocks package stub
fdr400 Jan 9, 2025
ea1dca1
More deps for alpine + disable GDB for MacOS
fdr400 Jan 9, 2025
7ece471
Try rabbitmq for alpine
fdr400 Jan 9, 2025
8b304a2
Install rocksdb for alpine
fdr400 Jan 9, 2025
09638db
More consistent names
fdr400 Jan 9, 2025
35b42ac
Do not find libcityhash for Linux clickhouse
fdr400 Jan 9, 2025
6934d7e
Fix clickhouse
fdr400 Jan 9, 2025
8a3056b
Do not try to find static clickhouse Linux
fdr400 Jan 9, 2025
dbd6a21
Fix mongo install
fdr400 Jan 9, 2025
645bf31
Do not link to Iconv if it is bultin
fdr400 Jan 9, 2025
8affca6
Rollback
fdr400 Jan 9, 2025
555af6b
Fix install
fdr400 Jan 9, 2025
4627238
Better for Conan
fdr400 Jan 9, 2025
86b2006
Update
fdr400 Jan 9, 2025
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Prev Previous commit
Next Next commit
Fix install
fdr400 committed Jan 9, 2025
commit 555af6bafd09972329c3917a2676d006bdacad3a
8 changes: 4 additions & 4 deletions cmake/SetupHomebrew.cmake
Original file line number Diff line number Diff line change
@@ -3,17 +3,17 @@ option(USERVER_USE_BREW_LIBRARIES "(MacOS) Find package preferes libraries insta
if(NOT DEFINED $CACHE{USERVER_BREW_PREFIX})
find_program(BREW_BIN brew)
if(BREW_BIN)
execute_process(
execute_process(
COMMAND ${BREW_BIN} --prefix
OUTPUT_VARIABLE brew_prefix
RESULT_VARIABLE brew_prefix_result
OUTPUT_STRIP_TRAILING_WHITESPACE
)
)

if(brew_prefix_result EQUAL 0)
if(brew_prefix_result EQUAL 0)
set(USERVER_BREW_PREFIX "${brew_prefix}" CACHE INTERNAL "Brew prefix")
message(STATUS "brew prefix is: ${USERVER_BREW_PREFIX}")
endif()
endif()
endif()
endif()

9 changes: 8 additions & 1 deletion cmake/SetupRdKafka.cmake
Original file line number Diff line number Diff line change
@@ -20,6 +20,13 @@ if(NOT USERVER_FORCE_DOWNLOAD_PACKAGES)
endif()

if(RdKafka_FOUND)
target_link_libraries(RdKafka
INTERFACE
ZLIB::ZLIB
lz4::lz4 CURL::libcurl
OpenSSL::SSL OpenSSL::Crypto
SASL2::SASL2 zstd::zstd
)
return()
endif()
endif()
@@ -48,4 +55,4 @@ set(KAFKA_CPM TRUE)

target_compile_options(rdkafka PRIVATE "-Wno-ignored-qualifiers")
mark_targets_as_system("${RdKafka_SOURCE_DIR}")
add_library(RdKafka ALIAS rdkafka)
add_library(RdKafka::rdkafka ALIAS rdkafka)
1 change: 1 addition & 0 deletions cmake/install/Config.cmake.in
Original file line number Diff line number Diff line change
@@ -42,6 +42,7 @@ set(USERVER_TESTSUITE_DIR "${USERVER_CMAKE_DIR}/testsuite")
set(USERVER_CONAN @USERVER_CONAN@)
set(USERVER_IMPL_ORIGINAL_CXX_STANDARD @CMAKE_CXX_STANDARD@)
set(USERVER_IMPL_FEATURE_JEMALLOC @USERVER_FEATURE_JEMALLOC@)
set(USERVER_USE_STATIC_LIBS @USERVER_USE_STATIC_LIBS@)

set_property(GLOBAL PROPERTY userver_cmake_dir "${USERVER_CMAKE_DIR}")
list(APPEND CMAKE_MODULE_PATH "${USERVER_CMAKE_DIR}/modules")
4 changes: 1 addition & 3 deletions cmake/install/userver-kafka-config.cmake
Original file line number Diff line number Diff line change
@@ -11,9 +11,7 @@ find_package(userver REQUIRED COMPONENTS
if(USERVER_CONAN)
find_package(RdKafka REQUIRED CONFIG)
else()
include("${USERVER_CMAKE_DIR}/modules/Findlz4.cmake")
include("${USERVER_CMAKE_DIR}/modules/FindSASL2.cmake")
include("${USERVER_CMAKE_DIR}/modules/FindRdKafka.cmake")
include("${USERVER_CMAKE_DIR}/SetupRdKafka.cmake")
endif()

set(userver_kafka_FOUND TRUE)
1 change: 1 addition & 0 deletions cmake/install/userver-universal-config.cmake
Original file line number Diff line number Diff line change
@@ -55,6 +55,7 @@ include("${USERVER_CMAKE_DIR}/Sanitizers.cmake")
include("${USERVER_CMAKE_DIR}/UserverSetupEnvironment.cmake")
include("${USERVER_CMAKE_DIR}/UserverVenv.cmake")
include("${USERVER_CMAKE_DIR}/UserverEmbedFile.cmake")
include("${USERVER_CMAKE_DIR}/UserverPreferStaticLibs.cmake")

userver_setup_environment()
_userver_make_sanitize_blacklist()
4 changes: 4 additions & 0 deletions cmake/modules/FindRdKafka.cmake
Original file line number Diff line number Diff line change
@@ -16,3 +16,7 @@ _userver_module_find_library(
)

_userver_module_end()

if(NOT TARGET RdKafka::rdkafka)
add_library(RdKafka::rdkafka ALIAS RdKafka)
endif()
17 changes: 7 additions & 10 deletions kafka/CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -2,22 +2,13 @@ project(userver-kafka CXX)

if(USERVER_CONAN)
find_package(RdKafka REQUIRED CONFIG)
set_target_properties(RdKafka::rdkafka PROPERTIES IMPORTED_GLOBAL TRUE)
add_library(RdKafka ALIAS RdKafka::rdkafka)
else()
include(SetupRdKafka)
target_link_libraries(RdKafka
INTERFACE
ZLIB::ZLIB
lz4::lz4 CURL::libcurl
OpenSSL::SSL OpenSSL::Crypto
SASL2::SASL2 zstd::zstd
)
endif()

userver_module(kafka
SOURCE_DIR "${CMAKE_CURRENT_SOURCE_DIR}"
LINK_LIBRARIES_PRIVATE RdKafka
LINK_LIBRARIES_PRIVATE RdKafka::rdkafka
DBTEST_DIRS "${CMAKE_CURRENT_SOURCE_DIR}/tests"
DBTEST_LINK_LIBRARIES userver::kafka-utest
DBTEST_DATABASES kafka
@@ -38,6 +29,12 @@ if(KAFKA_CPM)
)
endif()

_userver_directory_install(COMPONENT kafka
FILES
"${USERVER_ROOT_DIR}/cmake/SetupRdKafka.cmake"
DESTINATION "${CMAKE_INSTALL_LIBDIR}/cmake/userver"
)

_userver_directory_install(COMPONENT kafka
FILES
"${USERVER_ROOT_DIR}/cmake/modules/FindRdKafka.cmake"