Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
39 commits
Select commit Hold shift + click to select a range
dda585e
Add non-vcpkg CMake embedding target
bmehta001 Jul 28, 2026
ad301a2
Add fetched static curl for non-vcpkg embedding
bmehta001 Jul 28, 2026
e986414
Address Copilot review for fetched curl embedding
bmehta001 Jul 28, 2026
9df5b11
Harden curl capability handling in embedded builds
bmehta001 Jul 28, 2026
ca5a967
Modernize CMake embedding and portability
bmehta001 Jul 28, 2026
0fbdc66
Use typed libcurl write callbacks
bmehta001 Jul 28, 2026
bea4c28
Merge remote-tracking branch 'msft/main' into bhamehta/nonvcpkg-embed…
bmehta001 Jul 29, 2026
34137b6
Use explicit Apple package-config boolean
bmehta001 Jul 29, 2026
abbe7bd
Finish curl response handling and build argument safety
bmehta001 Jul 29, 2026
00ce80a
Simplify recent CMake compatibility surface
bmehta001 Jul 29, 2026
985e9bb
Standardize CMake embedding on canonical interfaces
bmehta001 Jul 30, 2026
a3c5523
Merge upstream main into CMake embedding rework
bmehta001 Jul 30, 2026
0db2f32
Make Apple system SQLite/zlib imported targets GLOBAL in package config
bmehta001 Jul 31, 2026
015cb57
Share Apple system SQLite/zlib target creation between build and install
bmehta001 Jul 31, 2026
3d8cf26
Add minimal backward-compat handling for pre-2026 legacy build inputs
bmehta001 Jul 31, 2026
aa52936
Merge branch 'main' into bhamehta/nonvcpkg-embedding-target
bmehta001 Aug 3, 2026
d7056ac
Consolidate dependency and build integration
bmehta001 Aug 6, 2026
b2bd27b
Align vcpkg iOS deployment target
bmehta001 Aug 6, 2026
ca440fc
Harden Apple packaging integration
bmehta001 Aug 6, 2026
c96f7de
Migrate Apple builds to canonical CMake variables
bmehta001 Aug 7, 2026
fd7b625
Merge branch 'main' into bhamehta/nonvcpkg-embedding-target
bmehta001 Aug 7, 2026
17a93ba
Harden dependency targets and test curl headers
bmehta001 Aug 7, 2026
0becea9
Let curl detect mbedTLS DES support
bmehta001 Aug 7, 2026
0fe4638
Fix test compiler flags and SQLite target aliases
bmehta001 Aug 7, 2026
b9fe803
Merge remote-tracking branch 'origin/pr-1511' into HEAD
bmehta001 Aug 7, 2026
c933fa3
Parse CMake options without shell evaluation
bmehta001 Aug 7, 2026
e114474
Load Apple dependency helpers only on Apple
bmehta001 Aug 7, 2026
6908ccb
Clarify data section compiler flag
bmehta001 Aug 7, 2026
c8fcb19
Honor standard SQLite target in auto detection
bmehta001 Aug 7, 2026
7e34813
Reject Android Room on non-Android builds
bmehta001 Aug 7, 2026
bf3e25d
Align iOS deployment target defaults
bmehta001 Aug 7, 2026
c61f27d
Clean up package helper installation
bmehta001 Aug 7, 2026
0b7b0cf
Use canonical CMake options directly
bmehta001 Aug 7, 2026
21deb75
Merge upstream main into nonvcpkg embedding target
bmehta001 Aug 7, 2026
7ec81d5
Avoid inaccessible recursive submodules in CI
bmehta001 Aug 7, 2026
aeb9a49
Fix functional test target after merge
bmehta001 Aug 8, 2026
a839f0b
Fix fetched mbedTLS target names
bmehta001 Aug 8, 2026
3c39674
Fix system SQLite alias handling
bmehta001 Aug 8, 2026
673c0b4
Expose fetched mbedTLS targets to curl
bmehta001 Aug 8, 2026
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
9 changes: 4 additions & 5 deletions .github/workflows/build-ios-mac.yml
Original file line number Diff line number Diff line change
Expand Up @@ -55,14 +55,13 @@ jobs:
run: |
sudo chown -R $USER:staff /usr/local
- uses: actions/checkout@11d5960a326750d5838078e36cf38b85af677262 # v4.4.0
with:
submodules: 'true'
continue-on-error: true
- name: Initialize googletest
run: git submodule update --init --depth=1 third_party/googletest
- name: build
run: |
if [[ "${{ matrix.os }}" == "macos-14" ]]; then
export IOS_DEPLOYMENT_TARGET=13.0;
export CMAKE_OSX_DEPLOYMENT_TARGET=13.0;
elif [[ "${{ matrix.os }}" == "macos-15" ]]; then
export IOS_DEPLOYMENT_TARGET=15.0;
export CMAKE_OSX_DEPLOYMENT_TARGET=15.0;
fi
./build-tests-ios.sh ${{ matrix.config }} ${{ matrix.simulator }}
3 changes: 2 additions & 1 deletion .github/workflows/build-posix-latest.yml
Original file line number Diff line number Diff line change
Expand Up @@ -44,7 +44,8 @@ jobs:
steps:
- name: Checkout
uses: actions/checkout@11d5960a326750d5838078e36cf38b85af677262 # v4.4.0
continue-on-error: true
- name: Initialize googletest
run: git submodule update --init --depth=1 third_party/googletest
- name: Test ${{ matrix.os }} ${{ matrix.config }}
run: ./build-tests.sh ${{ matrix.config }}

Expand Down
3 changes: 2 additions & 1 deletion .github/workflows/build-ubuntu-2204.yml
Original file line number Diff line number Diff line change
Expand Up @@ -44,6 +44,7 @@ jobs:
steps:
- name: Checkout
uses: actions/checkout@11d5960a326750d5838078e36cf38b85af677262 # v4.4.0
continue-on-error: true
- name: Initialize googletest
run: git submodule update --init --depth=1 third_party/googletest
- name: Test ${{ matrix.os }} ${{ matrix.config }}
run: ./build-tests.sh ${{ matrix.config }}
233 changes: 233 additions & 0 deletions .github/workflows/test-embedding.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,233 @@
name: Source embedding matrix

on:
push:
branches:
- main
- master
- dev
pull_request:
branches:
- main
- master
- dev

permissions:
contents: read

concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: ${{ github.event_name == 'pull_request' }}

jobs:
linux:
runs-on: ubuntu-latest
strategy:
matrix:
include:
- dependencies: system
library-type: STATIC
shared: OFF
fetchcontent: OFF
preload-curl: ON
preload-storage: ON
- dependencies: system
library-type: SHARED
shared: ON
fetchcontent: ON
preload-curl: OFF
preload-storage: OFF
- dependencies: self-contained
library-type: STATIC
shared: OFF
fetchcontent: ON
preload-curl: OFF
preload-storage: OFF
steps:
- uses: actions/checkout@v4
- name: Install system dependencies
if: matrix.dependencies == 'system'
run: sudo apt-get update && sudo apt-get install -y libcurl4-openssl-dev libsqlite3-dev ninja-build zlib1g-dev
- name: Configure
shell: bash
run: |
options=(
-G Ninja
-S tests/embedding
-B build-embedding
-DCMAKE_BUILD_TYPE=Release
-DMATSDK_EMBEDDING_USE_FETCHCONTENT=${{ matrix.fetchcontent }}
-DMATSDK_EMBEDDING_PRELOAD_CURL=${{ matrix.preload-curl }}
-DMATSDK_EMBEDDING_PRELOAD_STORAGE_DEPS=${{ matrix.preload-storage }}
-DBUILD_SHARED_LIBS=${{ matrix.shared }}
)
if [[ "${{ matrix.dependencies }}" == "self-contained" ]]; then
options+=(
-DMATSDK_CURL_PROVIDER=FETCH
-DMATSDK_CURL_TLS_BACKEND=MBEDTLS
-DMATSDK_SQLITE_PROVIDER=MINIMAL
-DMATSDK_ZLIB_PROVIDER=VENDORED
)
else
options+=(
-DMATSDK_SQLITE_PROVIDER=SYSTEM
-DMATSDK_ZLIB_PROVIDER=SYSTEM
)
fi
cmake "${options[@]}"
- name: Build and run
run: |
cmake --build build-embedding --target embedding_test --parallel 4
./build-embedding/embedding_test

windows:
runs-on: windows-2022
steps:
- uses: actions/checkout@v4
- name: Configure
run: >
cmake -S tests/embedding -B build-embedding -A x64
-DMATSDK_EMBEDDING_USE_FETCHCONTENT=ON
-DMATSDK_SQLITE_PROVIDER=VENDORED
-DMATSDK_ZLIB_PROVIDER=VENDORED
- name: Build and run
shell: pwsh
run: |
cmake --build build-embedding --config Release --target embedding_test -- /m
& .\build-embedding\Release\embedding_test.exe

installed-package-linux:
runs-on: ubuntu-latest
strategy:
matrix:
mode: [system, fetched]
steps:
- uses: actions/checkout@v4
- name: Install system dependencies
if: matrix.mode == 'system'
run: sudo apt-get update && sudo apt-get install -y libcurl4-openssl-dev libsqlite3-dev zlib1g-dev
- name: Configure, install, and consume
shell: bash
run: |
options=(
-G Ninja
-S .
-B build-package
-DCMAKE_BUILD_TYPE=Release
-DBUILD_SHARED_LIBS=OFF
-DMATSDK_BUILD_UNIT_TESTS=OFF
-DMATSDK_BUILD_FUNC_TESTS=OFF
-DMATSDK_BUILD_PACKAGE=OFF
-DMATSDK_BUILD_OBJC_WRAPPER=OFF
-DMATSDK_BUILD_SWIFT_WRAPPER=OFF
-DCMAKE_INSTALL_PREFIX="${RUNNER_TEMP}/matsdk"
)
if [[ "${{ matrix.mode }}" == "fetched" ]]; then
options+=(
-DMATSDK_CURL_PROVIDER=FETCH
-DMATSDK_CURL_TLS_BACKEND=MBEDTLS
-DMATSDK_SQLITE_PROVIDER=MINIMAL
-DMATSDK_ZLIB_PROVIDER=VENDORED
)
else
options+=(
-DMATSDK_SQLITE_PROVIDER=SYSTEM
-DMATSDK_ZLIB_PROVIDER=SYSTEM
)
fi
cmake "${options[@]}"
cmake --build build-package --target mat --parallel 4
cmake --install build-package
cmake -G Ninja -S tests/vcpkg -B build-consumer \
-DCMAKE_BUILD_TYPE=Release \
-DCMAKE_PREFIX_PATH="${RUNNER_TEMP}/matsdk"
cmake --build build-consumer --parallel 4
./build-consumer/vcpkg_test

installed-package-macos:
runs-on: macos-latest
steps:
- uses: actions/checkout@v4
- name: Configure, install, and consume
run: |
cmake -G Ninja -S . -B build-package \
-DCMAKE_BUILD_TYPE=Release \
-DBUILD_SHARED_LIBS=OFF \
-DMATSDK_BUILD_UNIT_TESTS=OFF \
-DMATSDK_BUILD_FUNC_TESTS=OFF \
-DMATSDK_BUILD_PACKAGE=OFF \
-DMATSDK_BUILD_OBJC_WRAPPER=OFF \
-DMATSDK_BUILD_SWIFT_WRAPPER=OFF \
-DMATSDK_SQLITE_PROVIDER=SYSTEM \
-DMATSDK_ZLIB_PROVIDER=SYSTEM \
-DCMAKE_INSTALL_PREFIX="${RUNNER_TEMP}/matsdk"
cmake --build build-package --target mat --parallel 4
cmake --install build-package
cmake -G Ninja -S tests/vcpkg -B build-consumer \
-DCMAKE_BUILD_TYPE=Release \
-DCMAKE_PREFIX_PATH="${RUNNER_TEMP}/matsdk"
cmake --build build-consumer --parallel 4
./build-consumer/vcpkg_test

macos:
runs-on: macos-latest
strategy:
matrix:
architectures: [arm64, "arm64;x86_64"]
steps:
- uses: actions/checkout@v4
- name: Configure
run: >
cmake -G Ninja -S tests/embedding -B build-embedding
-DCMAKE_BUILD_TYPE=Release
"-DCMAKE_OSX_ARCHITECTURES=${{ matrix.architectures }}"
-DMATSDK_EMBEDDING_USE_FETCHCONTENT=ON
-DMATSDK_SQLITE_PROVIDER=SYSTEM
-DMATSDK_ZLIB_PROVIDER=SYSTEM
- name: Build
run: cmake --build build-embedding --target embedding_test --parallel 4

ios:
runs-on: macos-latest
strategy:
matrix:
include:
- sdk: iphoneos
sqlite-provider: SYSTEM
zlib-provider: SYSTEM
- sdk: iphonesimulator
sqlite-provider: VENDORED
zlib-provider: VENDORED
steps:
- uses: actions/checkout@v4
- name: Configure
run: >
cmake -G Xcode -S tests/embedding -B build-embedding
-DCMAKE_SYSTEM_NAME=iOS
-DCMAKE_OSX_SYSROOT=${{ matrix.sdk }}
-DCMAKE_OSX_ARCHITECTURES=arm64
-DCMAKE_OSX_DEPLOYMENT_TARGET=13.0
-DCMAKE_XCODE_ATTRIBUTE_CODE_SIGNING_ALLOWED=NO
-DCMAKE_XCODE_ATTRIBUTE_CODE_SIGNING_REQUIRED=NO
-DMATSDK_EMBEDDING_USE_FETCHCONTENT=ON
-DMATSDK_SQLITE_PROVIDER=${{ matrix.sqlite-provider }}
-DMATSDK_ZLIB_PROVIDER=${{ matrix.zlib-provider }}
- name: Build
run: cmake --build build-embedding --config Release --target embedding_test --parallel 4

android:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Configure
run: >
cmake -G Ninja -S tests/embedding -B build-embedding
-DCMAKE_TOOLCHAIN_FILE=${ANDROID_NDK_LATEST_HOME}/build/cmake/android.toolchain.cmake
-DANDROID_ABI=arm64-v8a
-DANDROID_PLATFORM=23
-DCMAKE_BUILD_TYPE=Release
-DMATSDK_EMBEDDING_USE_FETCHCONTENT=ON
-DMATSDK_SQLITE_PROVIDER=VENDORED
-DMATSDK_ZLIB_PROVIDER=VENDORED
- name: Build
run: cmake --build build-embedding --target embedding_test --parallel 4
Loading
Loading