From b492a3f73afad9e741d4b5394b5d15d8c36131b8 Mon Sep 17 00:00:00 2001 From: Bhagirath Mehta Date: Wed, 9 Sep 2026 12:04:04 -0500 Subject: [PATCH 1/2] Use the canonical SQLite CMake target Avoid CMake 4.3+ developer warnings for static consumers while preserving compatibility with older FindSQLite3 modules and preloaded legacy targets. Files changed: - CMake dependency resolution and installed package helpers - SDK, Android, and test target links - in-repo vcpkg overlay port Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> --- CMakeLists.txt | 27 ++++++++----------- cmake/MSTelemetryConfig.cmake.in | 3 ++- cmake/MatsdkDependencyTargets.cmake | 21 +++++++++++++-- cmake/MatsdkOptions.cmake | 2 +- lib/CMakeLists.txt | 10 +++---- .../app/src/main/cpp/CMakeLists.txt | 2 +- tests/embedding/CMakeLists.txt | 2 +- tests/functests/CMakeLists.txt | 2 +- tests/unittests/CMakeLists.txt | 2 +- .../ports/cpp-client-telemetry/portfile.cmake | 7 ----- 10 files changed, 42 insertions(+), 36 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 6d3a0c9c5..703556cfa 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -234,34 +234,29 @@ endif() ################################################################################################ # Canonical dependency targets ################################################################################################ -if(TARGET SQLite3::SQLite3 AND NOT TARGET SQLite::SQLite3) - add_library(SQLite::SQLite3 ALIAS SQLite3::SQLite3) +if(TARGET SQLite::SQLite3 AND NOT TARGET SQLite3::SQLite3) + matsdk_add_interface_dependency(SQLite3::SQLite3 SQLite::SQLite3) endif() -if(MATSDK_SQLITE_PROVIDER_RESOLVED STREQUAL "SYSTEM" AND NOT TARGET SQLite::SQLite3) +if(MATSDK_SQLITE_PROVIDER_RESOLVED STREQUAL "SYSTEM" AND NOT TARGET SQLite3::SQLite3) if(APPLE AND NOT MATSDK_USING_VCPKG) - matsdk_add_apple_system_library(SQLite::SQLite3 sqlite3) + matsdk_add_apple_system_library(SQLite3::SQLite3 sqlite3) else() find_package(SQLite3 QUIET) - if(NOT TARGET SQLite::SQLite3 AND MATSDK_USING_VCPKG) + if(NOT TARGET SQLite3::SQLite3 AND TARGET SQLite::SQLite3) + matsdk_add_interface_dependency(SQLite3::SQLite3 SQLite::SQLite3) + endif() + if(NOT TARGET SQLite3::SQLite3 AND MATSDK_USING_VCPKG) find_package(unofficial-sqlite3 CONFIG REQUIRED) matsdk_add_interface_dependency( - SQLite::SQLite3 unofficial::sqlite3::sqlite3) + SQLite3::SQLite3 unofficial::sqlite3::sqlite3) endif() - if(NOT TARGET SQLite::SQLite3) + if(NOT TARGET SQLite3::SQLite3) message(FATAL_ERROR - "MATSDK_SQLITE_PROVIDER=SYSTEM requires SQLite::SQLite3. Install SQLite, " + "MATSDK_SQLITE_PROVIDER=SYSTEM requires SQLite3::SQLite3. Install SQLite, " "define the canonical target before adding 1DS, or choose MINIMAL/VENDORED.") endif() endif() endif() -if(TARGET SQLite::SQLite3 AND NOT TARGET SQLite3::SQLite3) - get_target_property(_matsdk_sqlite_target SQLite::SQLite3 ALIASED_TARGET) - if(_matsdk_sqlite_target) - add_library(SQLite3::SQLite3 ALIAS ${_matsdk_sqlite_target}) - else() - add_library(SQLite3::SQLite3 ALIAS SQLite::SQLite3) - endif() -endif() if(MATSDK_ZLIB_PROVIDER_RESOLVED STREQUAL "SYSTEM" AND NOT TARGET ZLIB::ZLIB) if(APPLE AND NOT MATSDK_USING_VCPKG) diff --git a/cmake/MSTelemetryConfig.cmake.in b/cmake/MSTelemetryConfig.cmake.in index 41ba63c0a..60a3579c2 100644 --- a/cmake/MSTelemetryConfig.cmake.in +++ b/cmake/MSTelemetryConfig.cmake.in @@ -14,9 +14,10 @@ if(@MATSDK_CONFIG_STATIC_PACKAGE@) endif() matsdk_add_package_system_dependency( MSTelemetry::sqlite_dependency - SQLite::SQLite3 + SQLite3::SQLite3 "@MATSDK_SQLITE_PROVIDER_RESOLVED@" SQLite3 + LEGACY_TARGET SQLite::SQLite3 ${_matsdk_package_sqlite_args}) matsdk_add_package_system_dependency( MSTelemetry::zlib_dependency diff --git a/cmake/MatsdkDependencyTargets.cmake b/cmake/MatsdkDependencyTargets.cmake index c21c338de..31e4b4d5f 100644 --- a/cmake/MatsdkDependencyTargets.cmake +++ b/cmake/MatsdkDependencyTargets.cmake @@ -20,7 +20,7 @@ function(matsdk_add_package_system_dependency dependency_target canonical_target endif() set(options APPLE_SYSTEM) - set(one_value_args APPLE_LIBRARY) + set(one_value_args APPLE_LIBRARY LEGACY_TARGET) cmake_parse_arguments(MATSDK_PACKAGE_DEP "${options}" "${one_value_args}" "" ${ARGN}) if(MATSDK_PACKAGE_DEP_APPLE_SYSTEM) @@ -33,7 +33,24 @@ function(matsdk_add_package_system_dependency dependency_target canonical_target matsdk_add_apple_system_library( "${canonical_target}" "${MATSDK_PACKAGE_DEP_APPLE_LIBRARY}") elseif(NOT TARGET "${canonical_target}") - find_dependency(${package_name}) + if(DEFINED MATSDK_PACKAGE_DEP_LEGACY_TARGET + AND TARGET "${MATSDK_PACKAGE_DEP_LEGACY_TARGET}") + matsdk_add_interface_dependency( + "${canonical_target}" "${MATSDK_PACKAGE_DEP_LEGACY_TARGET}") + else() + find_dependency(${package_name}) + endif() + endif() + + if(NOT TARGET "${canonical_target}" + AND DEFINED MATSDK_PACKAGE_DEP_LEGACY_TARGET + AND TARGET "${MATSDK_PACKAGE_DEP_LEGACY_TARGET}") + matsdk_add_interface_dependency( + "${canonical_target}" "${MATSDK_PACKAGE_DEP_LEGACY_TARGET}") + endif() + if(NOT TARGET "${canonical_target}") + message(FATAL_ERROR + "${package_name} did not create the required ${canonical_target} target.") endif() matsdk_add_interface_dependency("${dependency_target}" "${canonical_target}") diff --git a/cmake/MatsdkOptions.cmake b/cmake/MatsdkOptions.cmake index a56e468c6..23d491163 100644 --- a/cmake/MatsdkOptions.cmake +++ b/cmake/MatsdkOptions.cmake @@ -125,7 +125,7 @@ string(TOUPPER "${MATSDK_ZLIB_PROVIDER}" MATSDK_ZLIB_PROVIDER_RESOLVED) if(MATSDK_SQLITE_PROVIDER_RESOLVED STREQUAL "AUTO") if(MATSDK_ANDROID_USE_ROOM AND CMAKE_SYSTEM_NAME STREQUAL "Android") set(MATSDK_SQLITE_PROVIDER_RESOLVED NONE) - elseif(TARGET SQLite::SQLite3 OR TARGET SQLite3::SQLite3) + elseif(TARGET SQLite3::SQLite3 OR TARGET SQLite::SQLite3) set(MATSDK_SQLITE_PROVIDER_RESOLVED SYSTEM) elseif(NOT MATSDK_USING_VCPKG AND (WIN32 OR CMAKE_SYSTEM_NAME STREQUAL "Android")) diff --git a/lib/CMakeLists.txt b/lib/CMakeLists.txt index b08fd4537..48a818a89 100644 --- a/lib/CMakeLists.txt +++ b/lib/CMakeLists.txt @@ -560,8 +560,8 @@ if(MATSDK_BUNDLE_SQLITE AND NOT TARGET sqlite3_bundled) $<$>:-fdata-sections>) endif() endif() -if(MATSDK_BUNDLE_SQLITE AND NOT TARGET SQLite::SQLite3) - add_library(SQLite::SQLite3 ALIAS sqlite3_bundled) +if(MATSDK_BUNDLE_SQLITE AND NOT TARGET SQLite3::SQLite3) + add_library(SQLite3::SQLite3 ALIAS sqlite3_bundled) endif() if(MATSDK_BUNDLE_ZLIB AND NOT TARGET zlib_bundled) @@ -609,9 +609,9 @@ if(MATSDK_BUNDLE_ZLIB AND NOT TARGET ZLIB::ZLIB) endif() if(NOT MATSDK_SQLITE_PROVIDER_RESOLVED STREQUAL "NONE" - AND NOT TARGET SQLite::SQLite3) + AND NOT TARGET SQLite3::SQLite3) message(FATAL_ERROR - "SQLite::SQLite3 was not resolved for provider ${MATSDK_SQLITE_PROVIDER_RESOLVED}.") + "SQLite3::SQLite3 was not resolved for provider ${MATSDK_SQLITE_PROVIDER_RESOLVED}.") endif() if(NOT TARGET ZLIB::ZLIB) message(FATAL_ERROR @@ -624,7 +624,7 @@ elseif(MATSDK_BUNDLE_SQLITE) target_link_libraries(mat PRIVATE sqlite3_bundled) else() matsdk_add_interface_dependency( - matsdk_sqlite_dependency SQLite::SQLite3) + matsdk_sqlite_dependency SQLite3::SQLite3) target_link_libraries(mat PRIVATE "$" "$") diff --git a/lib/android_build/app/src/main/cpp/CMakeLists.txt b/lib/android_build/app/src/main/cpp/CMakeLists.txt index feb165ec7..64e93ab16 100644 --- a/lib/android_build/app/src/main/cpp/CMakeLists.txt +++ b/lib/android_build/app/src/main/cpp/CMakeLists.txt @@ -131,7 +131,7 @@ target_link_libraries( # Specifies the target library. native-lib mat matsdk_internal_config - SQLite::SQLite3 + SQLite3::SQLite3 ZLIB::ZLIB # Links the target library to the log library # included in the NDK. diff --git a/tests/embedding/CMakeLists.txt b/tests/embedding/CMakeLists.txt index d1bde3138..6883b3391 100644 --- a/tests/embedding/CMakeLists.txt +++ b/tests/embedding/CMakeLists.txt @@ -34,7 +34,7 @@ if(MATSDK_EMBEDDING_PRELOAD_CURL) endif() option(MATSDK_EMBEDDING_PRELOAD_STORAGE_DEPS - "Pre-create SQLite::SQLite3/ZLIB::ZLIB and disable later discovery" OFF) + "Pre-create legacy SQLite::SQLite3 and ZLIB::ZLIB targets" OFF) if(MATSDK_EMBEDDING_PRELOAD_STORAGE_DEPS) find_path(MATSDK_TEST_SQLITE_INCLUDE_DIR sqlite3.h) find_library(MATSDK_TEST_SQLITE_LIBRARY NAMES sqlite3) diff --git a/tests/functests/CMakeLists.txt b/tests/functests/CMakeLists.txt index 9c2a47919..e97bb0b30 100644 --- a/tests/functests/CMakeLists.txt +++ b/tests/functests/CMakeLists.txt @@ -65,7 +65,7 @@ target_link_libraries(FuncTests PRIVATE gtest gmock) if(NOT MATSDK_SQLITE_PROVIDER_RESOLVED STREQUAL "NONE") - target_link_libraries(FuncTests PRIVATE SQLite::SQLite3) + target_link_libraries(FuncTests PRIVATE SQLite3::SQLite3) endif() if(TARGET nlohmann_json::nlohmann_json) target_link_libraries(FuncTests PRIVATE nlohmann_json::nlohmann_json) diff --git a/tests/unittests/CMakeLists.txt b/tests/unittests/CMakeLists.txt index 05932e7b8..e973ccf4c 100644 --- a/tests/unittests/CMakeLists.txt +++ b/tests/unittests/CMakeLists.txt @@ -132,7 +132,7 @@ target_link_libraries(UnitTests PRIVATE gtest gmock) if(NOT MATSDK_SQLITE_PROVIDER_RESOLVED STREQUAL "NONE") - target_link_libraries(UnitTests PRIVATE SQLite::SQLite3) + target_link_libraries(UnitTests PRIVATE SQLite3::SQLite3) endif() if(TARGET nlohmann_json::nlohmann_json) target_link_libraries(UnitTests PRIVATE nlohmann_json::nlohmann_json) diff --git a/tools/ports/cpp-client-telemetry/portfile.cmake b/tools/ports/cpp-client-telemetry/portfile.cmake index 5bc5fddf4..fdbbf5374 100644 --- a/tools/ports/cpp-client-telemetry/portfile.cmake +++ b/tools/ports/cpp-client-telemetry/portfile.cmake @@ -40,12 +40,6 @@ if(VCPKG_TARGET_IS_OSX OR VCPKG_TARGET_IS_IOS) set(MATSDK_BUILD_APPLE_HTTP ON) endif() -# iOS build options -set(MATSDK_BUILD_IOS_LEGACY OFF) -if(VCPKG_TARGET_IS_IOS) - set(MATSDK_BUILD_IOS_LEGACY ON) -endif() - set(MATSDK_APPLE_DEPLOYMENT_OPTIONS) if(VCPKG_TARGET_IS_IOS) list(APPEND MATSDK_APPLE_DEPLOYMENT_OPTIONS @@ -170,7 +164,6 @@ vcpkg_cmake_configure( -DBUILD_SWIFT_WRAPPER=OFF -DBUILD_PACKAGE=OFF -DBUILD_APPLE_HTTP=${MATSDK_BUILD_APPLE_HTTP} - -DBUILD_IOS=${MATSDK_BUILD_IOS_LEGACY} ${MATSDK_APPLE_DEPLOYMENT_OPTIONS} ) From 1936f9c48a6ee8589fea108ecbd5985419f61b53 Mon Sep 17 00:00:00 2001 From: Bhagirath Mehta Date: Thu, 10 Sep 2026 11:24:06 -0500 Subject: [PATCH 2/2] Require the canonical SQLite target Keep the CMake target migration focused by dropping the legacy target adapter and updating the embedding fixture to provide SQLite3::SQLite3 directly. Files changed: - cmake/MSTelemetryConfig.cmake.in - cmake/MatsdkDependencyTargets.cmake - tests/embedding/CMakeLists.txt Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Copilot-Session: 037b338a-b5c0-4989-b9d3-36681fb822f5 --- cmake/MSTelemetryConfig.cmake.in | 1 - cmake/MatsdkDependencyTargets.cmake | 17 ++--------------- tests/embedding/CMakeLists.txt | 4 ++-- 3 files changed, 4 insertions(+), 18 deletions(-) diff --git a/cmake/MSTelemetryConfig.cmake.in b/cmake/MSTelemetryConfig.cmake.in index 60a3579c2..a46d7d94c 100644 --- a/cmake/MSTelemetryConfig.cmake.in +++ b/cmake/MSTelemetryConfig.cmake.in @@ -17,7 +17,6 @@ if(@MATSDK_CONFIG_STATIC_PACKAGE@) SQLite3::SQLite3 "@MATSDK_SQLITE_PROVIDER_RESOLVED@" SQLite3 - LEGACY_TARGET SQLite::SQLite3 ${_matsdk_package_sqlite_args}) matsdk_add_package_system_dependency( MSTelemetry::zlib_dependency diff --git a/cmake/MatsdkDependencyTargets.cmake b/cmake/MatsdkDependencyTargets.cmake index 31e4b4d5f..f5f320043 100644 --- a/cmake/MatsdkDependencyTargets.cmake +++ b/cmake/MatsdkDependencyTargets.cmake @@ -20,7 +20,7 @@ function(matsdk_add_package_system_dependency dependency_target canonical_target endif() set(options APPLE_SYSTEM) - set(one_value_args APPLE_LIBRARY LEGACY_TARGET) + set(one_value_args APPLE_LIBRARY) cmake_parse_arguments(MATSDK_PACKAGE_DEP "${options}" "${one_value_args}" "" ${ARGN}) if(MATSDK_PACKAGE_DEP_APPLE_SYSTEM) @@ -33,20 +33,7 @@ function(matsdk_add_package_system_dependency dependency_target canonical_target matsdk_add_apple_system_library( "${canonical_target}" "${MATSDK_PACKAGE_DEP_APPLE_LIBRARY}") elseif(NOT TARGET "${canonical_target}") - if(DEFINED MATSDK_PACKAGE_DEP_LEGACY_TARGET - AND TARGET "${MATSDK_PACKAGE_DEP_LEGACY_TARGET}") - matsdk_add_interface_dependency( - "${canonical_target}" "${MATSDK_PACKAGE_DEP_LEGACY_TARGET}") - else() - find_dependency(${package_name}) - endif() - endif() - - if(NOT TARGET "${canonical_target}" - AND DEFINED MATSDK_PACKAGE_DEP_LEGACY_TARGET - AND TARGET "${MATSDK_PACKAGE_DEP_LEGACY_TARGET}") - matsdk_add_interface_dependency( - "${canonical_target}" "${MATSDK_PACKAGE_DEP_LEGACY_TARGET}") + find_dependency(${package_name}) endif() if(NOT TARGET "${canonical_target}") message(FATAL_ERROR diff --git a/tests/embedding/CMakeLists.txt b/tests/embedding/CMakeLists.txt index 6883b3391..7b6a77370 100644 --- a/tests/embedding/CMakeLists.txt +++ b/tests/embedding/CMakeLists.txt @@ -34,7 +34,7 @@ if(MATSDK_EMBEDDING_PRELOAD_CURL) endif() option(MATSDK_EMBEDDING_PRELOAD_STORAGE_DEPS - "Pre-create legacy SQLite::SQLite3 and ZLIB::ZLIB targets" OFF) + "Pre-create SQLite3::SQLite3 and ZLIB::ZLIB targets" OFF) if(MATSDK_EMBEDDING_PRELOAD_STORAGE_DEPS) find_path(MATSDK_TEST_SQLITE_INCLUDE_DIR sqlite3.h) find_library(MATSDK_TEST_SQLITE_LIBRARY NAMES sqlite3) @@ -49,7 +49,7 @@ if(MATSDK_EMBEDDING_PRELOAD_STORAGE_DEPS) "${MATSDK_TEST_SQLITE_INCLUDE_DIR}") target_link_libraries(matsdk_test_sqlite INTERFACE "${MATSDK_TEST_SQLITE_LIBRARY}") - add_library(SQLite::SQLite3 ALIAS matsdk_test_sqlite) + add_library(SQLite3::SQLite3 ALIAS matsdk_test_sqlite) add_library(matsdk_test_zlib INTERFACE) target_include_directories(matsdk_test_zlib INTERFACE "${MATSDK_TEST_ZLIB_INCLUDE_DIR}")