From 07ca3c0c03424cc419a08a694b2d08f75efcb592 Mon Sep 17 00:00:00 2001 From: Mischan Toosarani-Hausberger Date: Tue, 18 Jun 2024 17:13:01 +0200 Subject: [PATCH 1/5] fix: further dependency use/export cleanup --- CMakeLists.txt | 5 +++-- sentry-config.cmake.in | 43 +++++++++++++++++++----------------------- 2 files changed, 22 insertions(+), 26 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 00ac137aba..f4a49f7926 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -62,6 +62,7 @@ option(SENTRY_BUILD_EXAMPLES "Build sentry-native example(s)" "${SENTRY_MAIN_PRO option(SENTRY_LINK_PTHREAD "Link platform threads library" ON) if(SENTRY_LINK_PTHREAD) + set(THREADS_PREFER_PTHREAD_FLAG ON) find_package(Threads REQUIRED) endif() @@ -276,7 +277,7 @@ if(CMAKE_SYSTEM_NAME STREQUAL "OS400") endif() if(SENTRY_TRANSPORT_CURL) - if(NOT CURL_FOUND) # Some other lib might bring libcurl already + if(NOT TARGET CURL::libcurl) # Some other lib might bring libcurl already find_package(CURL REQUIRED COMPONENTS AsynchDNS) endif() @@ -284,7 +285,7 @@ if(SENTRY_TRANSPORT_CURL) endif() if(SENTRY_TRANSPORT_COMPRESSION) - if(NOT ZLIB_FOUND) + if(NOT TARGET ZLIB::ZLIB) find_package(ZLIB REQUIRED) endif() diff --git a/sentry-config.cmake.in b/sentry-config.cmake.in index 16f24a0de5..f9626502d1 100644 --- a/sentry-config.cmake.in +++ b/sentry-config.cmake.in @@ -5,30 +5,25 @@ set(SENTRY_BACKEND @SENTRY_BACKEND@) set(SENTRY_TRANSPORT @SENTRY_TRANSPORT@) set(SENTRY_BUILD_SHARED_LIBS @SENTRY_BUILD_SHARED_LIBS@) set(SENTRY_LINK_PTHREAD @SENTRY_LINK_PTHREAD@) +set(SENTRY_TRANSPORT_COMPRESSION @SENTRY_TRANSPORT_COMPRESSION@) +set(SENTRY_BREAKPAD_SYSTEM @SENTRY_BREAKPAD_SYSTEM@) -if(SENTRY_BACKEND STREQUAL "crashpad") - include("${CMAKE_CURRENT_LIST_DIR}/sentry_crashpad-targets.cmake") - if(NOT MSVC AND NOT SENTRY_BUILD_SHARED_LIBS) - find_dependency(ZLIB REQUIRED) - endif() +if(NOT SENTRY_BUILD_SHARED_LIBS) + if(SENTRY_TRANSPORT_COMPRESSION) + find_dependency(ZLIB) + endif() + if(SENTRY_BACKEND STREQUAL "breakpad" AND SENTRY_BREAKPAD_SYSTEM) + find_dependency(PkgConfig) + pkg_check_modules(BREAKPAD REQUIRED IMPORTED_TARGET breakpad-client) + endif() + if(SENTRY_TRANSPORT STREQUAL "curl") + find_dependency(CURL Components AsynchDNS) + endif() + if(SENTRY_LINK_PTHREAD) + set(THREADS_PREFER_PTHREAD_FLAG ON) + find_dependency(Threads) + endif() endif() -if(SENTRY_BACKEND STREQUAL "breakpad" AND NOT SENTRY_BUILD_SHARED_LIBS) - set(SENTRY_BREAKPAD_SYSTEM @SENTRY_BREAKPAD_SYSTEM@) - if(SENTRY_BREAKPAD_SYSTEM) - find_dependency(PkgConfig REQUIRED) - pkg_check_modules(BREAKPAD REQUIRED IMPORTED_TARGET breakpad-client) - endif() -endif() - -include("${CMAKE_CURRENT_LIST_DIR}/sentry-targets.cmake") - -if(SENTRY_TRANSPORT STREQUAL "curl" AND (NOT @BUILD_SHARED_LIBS@ OR NOT SENTRY_BUILD_SHARED_LIBS)) - find_dependency(CURL REQUIRED) - set_property(TARGET sentry::sentry APPEND - PROPERTY INTERFACE_LINK_LIBRARIES ${CURL_LIBRARIES}) -endif() - -if(SENTRY_LINK_PTHREAD AND NOT SENTRY_BUILD_SHARED_LIBS) - find_dependency(Threads REQUIRED) -endif() +include("${CMAKE_CURRENT_LIST_DIR}/sentry_crashpad-targets.cmake" OPTIONAL) +include("${CMAKE_CURRENT_LIST_DIR}/sentry-targets.cmake") \ No newline at end of file From cde0eeac955c665570f86308928428b202c30720 Mon Sep 17 00:00:00 2001 From: Mischan Toosarani-Hausberger Date: Wed, 19 Jun 2024 11:20:16 +0200 Subject: [PATCH 2/5] uppercase COMPONENTS in find_dependency --- sentry-config.cmake.in | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sentry-config.cmake.in b/sentry-config.cmake.in index f9626502d1..c13b7a7d05 100644 --- a/sentry-config.cmake.in +++ b/sentry-config.cmake.in @@ -17,7 +17,7 @@ if(NOT SENTRY_BUILD_SHARED_LIBS) pkg_check_modules(BREAKPAD REQUIRED IMPORTED_TARGET breakpad-client) endif() if(SENTRY_TRANSPORT STREQUAL "curl") - find_dependency(CURL Components AsynchDNS) + find_dependency(CURL COMPONENTS AsynchDNS) endif() if(SENTRY_LINK_PTHREAD) set(THREADS_PREFER_PTHREAD_FLAG ON) From cb61b73ff33cefd0929e1456319cbd5c3c22079a Mon Sep 17 00:00:00 2001 From: Mischan Toosarani-Hausberger Date: Wed, 19 Jun 2024 12:55:33 +0200 Subject: [PATCH 3/5] find_dependency(ZLIB) when CRASHPAD_ZLIB_SYSTEM=On --- sentry-config.cmake.in | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/sentry-config.cmake.in b/sentry-config.cmake.in index c13b7a7d05..ac75b8d3e3 100644 --- a/sentry-config.cmake.in +++ b/sentry-config.cmake.in @@ -7,9 +7,10 @@ set(SENTRY_BUILD_SHARED_LIBS @SENTRY_BUILD_SHARED_LIBS@) set(SENTRY_LINK_PTHREAD @SENTRY_LINK_PTHREAD@) set(SENTRY_TRANSPORT_COMPRESSION @SENTRY_TRANSPORT_COMPRESSION@) set(SENTRY_BREAKPAD_SYSTEM @SENTRY_BREAKPAD_SYSTEM@) +set(CRASHPAD_ZLIB_SYSTEM @CRASHPAD_ZLIB_SYSTEM@) if(NOT SENTRY_BUILD_SHARED_LIBS) - if(SENTRY_TRANSPORT_COMPRESSION) + if(SENTRY_TRANSPORT_COMPRESSION OR CRASHPAD_ZLIB_SYSTEM) find_dependency(ZLIB) endif() if(SENTRY_BACKEND STREQUAL "breakpad" AND SENTRY_BREAKPAD_SYSTEM) From 8778006862ba38c1b60c1306e08d5d9b27a69fe8 Mon Sep 17 00:00:00 2001 From: Mischan Toosarani-Hausberger Date: Wed, 19 Jun 2024 17:41:28 +0200 Subject: [PATCH 4/5] add _SENTRY_PLATFORM_LIBS only as PRIVATE to target `sentry` --- CMakeLists.txt | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index f4a49f7926..4af1b85107 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -388,11 +388,7 @@ if(SENTRY_LINK_PTHREAD) endif() # apply platform libraries to sentry library -if(SENTRY_LIBRARY_TYPE STREQUAL "STATIC") - target_link_libraries(sentry PUBLIC ${_SENTRY_PLATFORM_LIBS}) -else() - target_link_libraries(sentry PRIVATE ${_SENTRY_PLATFORM_LIBS}) -endif() +target_link_libraries(sentry PRIVATE ${_SENTRY_PLATFORM_LIBS}) # suppress some errors and warnings for MinGW target if(MINGW) From 1ec05f57e3ae2f281957a6c1889396a871d413e6 Mon Sep 17 00:00:00 2001 From: Mischan Toosarani-Hausberger Date: Wed, 19 Jun 2024 17:47:04 +0200 Subject: [PATCH 5/5] update changelog --- CHANGELOG.md | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 0f64c80c8f..f8ac347ffe 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,10 +2,19 @@ ## Unreleased +**Fixes**: + +- Further clean up of the exported dependency configuration. ([#1013](https://github.com/getsentry/sentry-native/pull/1013), [crashpad#106](https://github.com/getsentry/crashpad/pull/106)) + **Internal**: - Updated `crashpad` to 2024-06-11. ([#1014](https://github.com/getsentry/sentry-native/pull/1014), [crashpad#105](https://github.com/getsentry/crashpad/pull/105)) +**Thank you**: + +- [@JonLiu1993](https://github.com/JonLiu1993) +- [@dg0yt](https://github.com/dg0yt) + ## 0.7.6 **Fixes**: