Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
40 commits
Select commit Hold shift + click to select a range
cd2f1a9
Fix four latent safety bugs (JNI lifetime/null-safety, cancel race, U…
bmehta001 Jun 22, 2026
4c176db
Address review comments: harden two JNI string reads
bmehta001 Jun 22, 2026
dca30a7
Guard all remaining GetStringUTFChars reads against null
bmehta001 Jun 24, 2026
778a2e5
Merge branch 'main' into bhamehta/fix-jni-windows-uwp-safety
bmehta001 Jun 24, 2026
772ce61
Guard tenant_j for null before GetStringUTFChars in GetRecords (Copil…
bmehta001 Jun 25, 2026
80f865c
Guard remaining jstring inputs before GetStringUTFChars (Copilot review)
bmehta001 Jun 25, 2026
25df775
GetRecords: clear pending JNI exception after tenant-token read (Copi…
bmehta001 Jun 25, 2026
1274680
JStringToStdString: clear pending JNI exception on failed read (Copil…
bmehta001 Jun 25, 2026
76d75ed
UWP: include <exception> directly for std::exception catch (Copilot r…
bmehta001 Jun 25, 2026
a911fe4
Merge branch 'main' into bhamehta/fix-jni-windows-uwp-safety
bmehta001 Jul 2, 2026
e027995
Bound the HTTP cancel drains so they cannot spin or hang (issue #1437)
bmehta001 Jul 8, 2026
2449788
Merge remote-tracking branch 'fork/bhamehta/fix-jni-windows-uwp-safet…
bmehta001 Jul 8, 2026
c92066e
Distinguish best-effort (pause) from full-drain (teardown) HTTP cancel
bmehta001 Jul 8, 2026
d573254
Clear pending JNI exception before returning false in Signals_jni
bmehta001 Jul 9, 2026
1e7a93d
Drop issue-number references from code comments
bmehta001 Jul 9, 2026
08722d2
Drop issue-number reference from JniConvertors comment
bmehta001 Jul 9, 2026
348ea88
Only add <condition_variable> for the new member in HttpClient_WinInet
bmehta001 Jul 9, 2026
ceddf4a
Re-add <mutex> to HttpClient_WinInet for a self-contained header
bmehta001 Jul 9, 2026
377e70e
Merge branch 'main' into bhamehta/fix-jni-windows-uwp-safety
bmehta001 Jul 9, 2026
372a74d
Clarify that best-effort pause is only bounded on async-handler platf…
bmehta001 Jul 10, 2026
4ad8c16
Bound best-effort pause on Windows by plumbing a deadline into Cancel…
bmehta001 Jul 10, 2026
55f7c41
Address review: preserve CancelAllRequests() override compat and tigh…
bmehta001 Jul 10, 2026
53b1e72
Clarify CancelAllRequests compatibility: source-compatible, not ABI-s…
bmehta001 Jul 10, 2026
15c9eb1
Keep the no-arg CancelAllRequests() working on every built-in client
bmehta001 Jul 10, 2026
d03ff26
Avoid public timed HTTP cancel virtual
bmehta001 Jul 13, 2026
476ef4a
Merge branch 'main' into bhamehta/fix-jni-windows-uwp-safety
bmehta001 Jul 30, 2026
40fa223
Guard Signals JNI logger pointer and drop unused cancel return
bmehta001 Jul 31, 2026
88f0268
Merge remote updates into fix-jni-windows-uwp-safety
bmehta001 Jul 31, 2026
b8def81
Merge branch 'main' into bhamehta/fix-jni-windows-uwp-safety
bmehta001 Aug 3, 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
02c70ef
Harden nullable JNI and WinRT version inputs
bmehta001 Aug 7, 2026
d7ba6b3
Simplify cancellation documentation and clock setup
bmehta001 Aug 7, 2026
135676d
Merge branch 'main' into bhamehta/fix-jni-windows-uwp-safety
bmehta001 Aug 7, 2026
362fd54
Stop test runner looping after failures
bmehta001 Aug 7, 2026
4b995f4
Merge remote-tracking branch 'origin/bhamehta/fix-jni-windows-uwp-saf…
bmehta001 Aug 7, 2026
da833b7
Avoid RTTI dependency and report test failures
bmehta001 Aug 7, 2026
0a15be1
Preserve JNI allocation failures
bmehta001 Aug 8, 2026
e039185
Merge remote-tracking branch 'origin/main' into review-pr-1494-fixes
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
4 changes: 2 additions & 2 deletions .github/workflows/build-ios-mac.yml
Original file line number Diff line number Diff line change
Expand Up @@ -61,8 +61,8 @@ jobs:
- 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 }}
78 changes: 16 additions & 62 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -47,88 +47,42 @@ if(APPLE)
message(STATUS "BUILD_IOS: ${BUILD_IOS}")
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fobjc-arc")

# iOS build options
option(BUILD_IOS "Build for iOS" NO)
option(FORCE_RESET_OSX_DEPLOYMENT_TARGET "Clear the OSX Deployment Target Set" YES)
if (DEFINED FORCE_RESET_DEPLOYMENT_TARGET)
set(FORCE_RESET_OSX_DEPLOYMENT_TARGET ${FORCE_RESET_DEPLOYMENT_TARGET})
endif()
option(BUILD_IOS "Build for iOS-family Apple platforms" NO)

# When building via vcpkg, the toolchain file handles architecture, sysroot,
# deployment target, and platform flags. Skip manual flag configuration.
if(NOT MATSDK_USE_VCPKG_DEPS)
if(CMAKE_SYSTEM_NAME MATCHES "^(iOS|visionOS)$")
set(BUILD_IOS ON)
endif()
if(BUILD_IOS)
set(TARGET_ARCH "APPLE")
set(IOS True)
set(APPLE True)

if(FORCE_RESET_OSX_DEPLOYMENT_TARGET)
set(CMAKE_OSX_DEPLOYMENT_TARGET "" CACHE STRING "Force unset of the deployment target for iOS" FORCE)
if (${IOS_PLAT} STREQUAL "iphonesimulator")
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -mios-simulator-version-min=${IOS_DEPLOYMENT_TARGET}")
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -mios-simulator-version-min=${IOS_DEPLOYMENT_TARGET}")
else()
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -miphoneos-version-min=${IOS_DEPLOYMENT_TARGET}")
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -miphoneos-version-min=${IOS_DEPLOYMENT_TARGET}")
endif()
endif()

if((${IOS_PLAT} STREQUAL "iphoneos") OR (${IOS_PLAT} STREQUAL "iphonesimulator") OR (${IOS_PLAT} STREQUAL "xros") OR (${IOS_PLAT} STREQUAL "xrsimulator"))
set(IOS_PLATFORM "${IOS_PLAT}")
else()
message(FATAL_ERROR "Unrecognized iOS platform '${IOS_PLAT}'")
if(NOT CMAKE_OSX_SYSROOT)
message(FATAL_ERROR "CMAKE_OSX_SYSROOT must identify an Apple SDK")
endif()

if(${IOS_ARCH} STREQUAL "x86_64")
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -arch x86_64")
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -arch x86_64")
set(CMAKE_SYSTEM_PROCESSOR x86_64)
elseif(${IOS_ARCH} STREQUAL "arm64")
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -arch arm64")
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -arch arm64")
set(CMAKE_SYSTEM_PROCESSOR arm64)
elseif(${IOS_ARCH} STREQUAL "arm64e")
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -arch arm64e")
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -arch arm64e")
set(CMAKE_SYSTEM_PROCESSOR arm64e)
else()
message(FATAL_ERROR "Unrecognized iOS architecture '${IOS_ARCH}'")
endif()

execute_process(COMMAND xcodebuild -version -sdk ${IOS_PLATFORM} ONLY_ACTIVE_ARCH=NO Path
if(NOT IS_ABSOLUTE "${CMAKE_OSX_SYSROOT}")
execute_process(COMMAND xcodebuild -version -sdk "${CMAKE_OSX_SYSROOT}" Path
OUTPUT_VARIABLE CMAKE_OSX_SYSROOT
ERROR_QUIET
OUTPUT_STRIP_TRAILING_WHITESPACE)
if(NOT CMAKE_OSX_SYSROOT)
message(FATAL_ERROR "Unable to resolve the Apple SDK sysroot")
endif()
set(CMAKE_OSX_SYSROOT "${CMAKE_OSX_SYSROOT}" CACHE PATH "Apple SDK sysroot" FORCE)
endif()
message(STATUS "CMAKE_OSX_SYSROOT ${CMAKE_OSX_SYSROOT}")
message(STATUS "ARCHITECTURE: ${CMAKE_SYSTEM_PROCESSOR}")
message(STATUS "PLATFORM: ${IOS_PLATFORM}")
message(STATUS "DEPLOYMENT TARGET: ${CMAKE_OSX_DEPLOYMENT_TARGET}")
else()
if("${MAC_ARCH}" STREQUAL "x86_64")
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -arch x86_64")
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -arch x86_64")
set(CMAKE_SYSTEM_PROCESSOR x86_64)
set(TARGET_ARCH ${CMAKE_SYSTEM_PROCESSOR})
set(CMAKE_OSX_ARCHITECTURES ${MAC_ARCH})
set(APPLE True)
elseif("${MAC_ARCH}" STREQUAL "arm64")
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -arch arm64")
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -arch arm64")
set(CMAKE_SYSTEM_PROCESSOR arm64)
set(TARGET_ARCH ${CMAKE_SYSTEM_PROCESSOR})
set(CMAKE_OSX_ARCHITECTURES ${MAC_ARCH})
set(APPLE True)
else()
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -arch x86_64 -arch arm64")
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -arch x86_64 -arch arm64")
endif()
message(STATUS "MAC_ARCH: ${MAC_ARCH}")
message(STATUS "ARCHITECTURES: ${CMAKE_OSX_ARCHITECTURES}")
endif()
else()
# vcpkg mode: just set internal flags from what the toolchain provides
if(BUILD_IOS OR CMAKE_SYSTEM_NAME STREQUAL "iOS")
if(BUILD_IOS OR CMAKE_SYSTEM_NAME MATCHES "^(iOS|visionOS)$")
set(BUILD_IOS ON)
set(TARGET_ARCH "APPLE")
set(IOS True)
endif()
message(STATUS "vcpkg toolchain managing architecture and platform flags")
endif()
Expand Down
3 changes: 1 addition & 2 deletions build-gtest.sh
Original file line number Diff line number Diff line change
Expand Up @@ -39,9 +39,8 @@ if(BUILD_IOS)
set(CMAKE_OSX_DEPLOYMENT_TARGET "12.2" CACHE STRING "Force set of the deployment target for iOS" FORCE)
set(CMAKE_C_FLAGS "\${CMAKE_C_FLAGS} -miphoneos-version-min=10.0")
set(CMAKE_CXX_FLAGS "\${CMAKE_CXX_FLAGS} -miphoneos-version-min=10.0 -std=c++11")
set(IOS_PLATFORM "iphonesimulator")
set(CMAKE_SYSTEM_PROCESSOR x86_64)
execute_process(COMMAND xcodebuild -version -sdk \${IOS_PLATFORM} Path
execute_process(COMMAND xcodebuild -version -sdk iphonesimulator Path
OUTPUT_VARIABLE CMAKE_OSX_SYSROOT_OUT
ERROR_QUIET
OUTPUT_STRIP_TRAILING_WHITESPACE)
Expand Down
30 changes: 13 additions & 17 deletions build-ios.sh
Original file line number Diff line number Diff line change
Expand Up @@ -25,51 +25,47 @@ elif [ "$1" == "debug" ]; then
fi

# Set Architecture: arm64, arm64e or x86_64
IOS_ARCH=$(/usr/bin/uname -m)
APPLE_ARCH=$(/usr/bin/uname -m)
if [ "$1" == "arm64" ]; then
IOS_ARCH="arm64"
APPLE_ARCH="arm64"
shift
elif [ "$1" == "arm64e" ]; then
IOS_ARCH="arm64e"
APPLE_ARCH="arm64e"
shift
elif [ "$1" == "x86_64" ]; then
IOS_ARCH="x86_64"
APPLE_ARCH="x86_64"
shift
fi

# the last param is expected to specify the platform name: iphoneos|iphonesimulator|xros|xrsimulator
# so if it is non-empty and it is not "device", we take it as a valid platform name
# otherwise we fall back to old iOS logic which only supported iphoneos|iphonesimulator
IOS_PLAT="iphonesimulator"
APPLE_PLATFORM="iphonesimulator"
if [ -n "$1" ] && [ "$1" != "device" ]; then
IOS_PLAT="$1"
APPLE_PLATFORM="$1"
elif [ "$1" == "device" ]; then
IOS_PLAT="iphoneos"
APPLE_PLATFORM="iphoneos"
fi

echo "IOS_ARCH = $IOS_ARCH, IOS_PLAT = $IOS_PLAT, BUILD_TYPE = $BUILD_TYPE"
echo "architecture = $APPLE_ARCH, platform = $APPLE_PLATFORM, build type = $BUILD_TYPE"

FORCE_RESET_DEPLOYMENT_TARGET=NO
DEPLOYMENT_TARGET=""

if [ "$IOS_PLAT" == "iphoneos" ] || [ "$IOS_PLAT" == "iphonesimulator" ]; then
if [ "$APPLE_PLATFORM" == "iphoneos" ] || [ "$APPLE_PLATFORM" == "iphonesimulator" ]; then
SYS_NAME="iOS"
DEPLOYMENT_TARGET="$IOS_DEPLOYMENT_TARGET"
DEPLOYMENT_TARGET="$CMAKE_OSX_DEPLOYMENT_TARGET"
if [ -z "$DEPLOYMENT_TARGET" ]; then
DEPLOYMENT_TARGET="12.0"
FORCE_RESET_DEPLOYMENT_TARGET=YES
fi
elif [ "$IOS_PLAT" == "xros" ] || [ "$IOS_PLAT" == "xrsimulator" ]; then
elif [ "$APPLE_PLATFORM" == "xros" ] || [ "$APPLE_PLATFORM" == "xrsimulator" ]; then
SYS_NAME="visionOS"
DEPLOYMENT_TARGET="$XROS_DEPLOYMENT_TARGET"
DEPLOYMENT_TARGET="$CMAKE_OSX_DEPLOYMENT_TARGET"
if [ -z "$DEPLOYMENT_TARGET" ]; then
DEPLOYMENT_TARGET="1.0"
FORCE_RESET_DEPLOYMENT_TARGET=YES
fi
fi

echo "deployment target = $DEPLOYMENT_TARGET"
echo "force reset deployment target = $FORCE_RESET_DEPLOYMENT_TARGET"

# Install build tools and recent sqlite3
FILE=".buildtools"
Expand All @@ -92,7 +88,7 @@ cd out

CMAKE_PACKAGE_TYPE=tgz

cmake_cmd="cmake -DCMAKE_OSX_SYSROOT=$IOS_PLAT -DCMAKE_SYSTEM_NAME=$SYS_NAME -DCMAKE_IOS_ARCH_ABI=$IOS_ARCH -DCMAKE_OSX_DEPLOYMENT_TARGET=$DEPLOYMENT_TARGET -DBUILD_IOS=YES -DIOS_ARCH=$IOS_ARCH -DIOS_PLAT=$IOS_PLAT -DIOS_DEPLOYMENT_TARGET=$DEPLOYMENT_TARGET -DCMAKE_BUILD_TYPE=$BUILD_TYPE -DCMAKE_PACKAGE_TYPE=$CMAKE_PACKAGE_TYPE -DFORCE_RESET_DEPLOYMENT_TARGET=$FORCE_RESET_DEPLOYMENT_TARGET $CMAKE_OPTS .."
cmake_cmd="cmake -DCMAKE_OSX_SYSROOT=$APPLE_PLATFORM -DCMAKE_SYSTEM_NAME=$SYS_NAME -DCMAKE_OSX_ARCHITECTURES=$APPLE_ARCH -DCMAKE_OSX_DEPLOYMENT_TARGET=$DEPLOYMENT_TARGET -DBUILD_IOS=YES -DCMAKE_BUILD_TYPE=$BUILD_TYPE -DCMAKE_PACKAGE_TYPE=$CMAKE_PACKAGE_TYPE $CMAKE_OPTS .."
echo "${cmake_cmd}"
eval $cmake_cmd

Expand Down
12 changes: 5 additions & 7 deletions build-tests.cmd
Original file line number Diff line number Diff line change
Expand Up @@ -53,12 +53,10 @@ set MAXCPUCOUNT=%NUMBER_OF_PROCESSORS%
set SOLUTION=Solutions\MSTelemetrySDK.sln

msbuild %SOLUTION% /target:sqlite:Rebuild,zlib:Rebuild,Tests\gmock:Rebuild,Tests\gtest:Rebuild,Tests\UnitTests:Rebuild,Tests\FuncTests:Rebuild /p:BuildProjectReferences=true /maxcpucount:%MAXCPUCOUNT% /detailedsummary /p:Configuration=%CONFIGURATION% /p:Platform=%PLAT% %CUSTOM_PROPS%
if errorLevel 1 goto end
if not "%ERRORLEVEL%"=="0" exit /b %ERRORLEVEL%
Solutions\out\%CONFIGURATION%\%PLAT%\UnitTests\UnitTests.exe
if errorLevel 1 goto end
if not "%ERRORLEVEL%"=="0" exit /b %ERRORLEVEL%
Solutions\out\%CONFIGURATION%\%PLAT%\FuncTests\FuncTests.exe
:end
if errorLevel 1 goto end
start "" Solutions\out\%CONFIGURATION%\%PLAT%\FuncTests\FuncTests.exe --gtest_filter=MultipleLogManagersTests.MultiProcessesLogManager
start "" Solutions\out\%CONFIGURATION%\%PLAT%\FuncTests\FuncTests.exe --gtest_filter=MultipleLogManagersTests.MultiProcessesLogManager
:end
if not "%ERRORLEVEL%"=="0" exit /b %ERRORLEVEL%
powershell -NoProfile -ExecutionPolicy Bypass -Command "$path = Join-Path (Get-Location) 'Solutions\out\%CONFIGURATION%\%PLAT%\FuncTests\FuncTests.exe'; $args = '--gtest_filter=MultipleLogManagersTests.MultiProcessesLogManager'; $p1 = Start-Process -FilePath $path -ArgumentList $args -PassThru; $p2 = Start-Process -FilePath $path -ArgumentList $args -PassThru; $p1.WaitForExit(); $p2.WaitForExit(); if ($p1.ExitCode -ne 0 -or $p2.ExitCode -ne 0) { exit 1 }"
if not "%ERRORLEVEL%"=="0" exit /b %ERRORLEVEL%
21 changes: 10 additions & 11 deletions build.sh
Original file line number Diff line number Diff line change
Expand Up @@ -61,13 +61,13 @@ while [[ $# -gt 0 ]]; do
echo "BUILD_TYPE = $BUILD_TYPE"
;;
arm64|x86_64|universal)
if [[ -n "$MAC_ARCH" ]]; then
echo "Error: MAC_ARCH is already set to '$MAC_ARCH'. Cannot overwrite with $ARG." 1>&2
if [[ -n "$APPLE_ARCH" ]]; then
echo "Error: APPLE_ARCH is already set to '$APPLE_ARCH'. Cannot overwrite with $ARG." 1>&2
exit 1
else
MAC_ARCH="$ARG"
APPLE_ARCH="$ARG"
fi
echo "MAC_ARCH = $MAC_ARCH"
echo "APPLE_ARCH = $APPLE_ARCH"
;;
CUSTOM_BUILD_FLAGS*)
CUSTOM_CMAKE_CXX_FLAG="\"${ARG:19:999}\""
Expand All @@ -91,9 +91,9 @@ if [[ -z "$BUILD_TYPE" ]]; then
echo "Assuming default BUILD_TYPE = Debug"
fi

if [[ -z "$MAC_ARCH" ]]; then
MAC_ARCH=$(/usr/bin/uname -m)
echo "Using current machine MAC_ARCH = $MAC_ARCH"
if [[ -z "$APPLE_ARCH" ]]; then
APPLE_ARCH=$(/usr/bin/uname -m)
echo "Using current machine APPLE_ARCH = $APPLE_ARCH"
fi

# Evaluate switches
Expand Down Expand Up @@ -137,7 +137,7 @@ if [ "$LINK_TYPE" == "shared" ]; then
fi

# Set target MacOS minver
default_mac_os_target=$([ "$MAC_ARCH" == "arm64" ] && echo "11.10" || echo "10.10")
default_mac_os_target=$([ "$APPLE_ARCH" == "arm64" ] && echo "11.10" || echo "10.10")
[ -z $MACOSX_DEPLOYMENT_TARGET ] && export MACOSX_DEPLOYMENT_TARGET=${default_mac_os_target}
echo "macosx deployment target="$MACOSX_DEPLOYMENT_TARGET

Expand All @@ -147,7 +147,7 @@ OS_NAME=`uname -a`

if [ ! -f $FILE ]; then
case "$OS_NAME" in
*Darwin*) CMD="tools/setup-buildtools-apple.sh $MAC_ARCH" ;;
*Darwin*) CMD="tools/setup-buildtools-apple.sh $APPLE_ARCH" ;;
*Linux*) CMD="tools/setup-buildtools.sh" ;;
*) CMD=""; echo "WARNING: unsupported OS $OS_NAME, skipping build tools installation.." ;;
esac
Expand Down Expand Up @@ -185,8 +185,7 @@ fi
# Fail on error
set -e

# TODO: should this be improved to verify if the platform is Apple? Right now we unconditionally pass -DMAC_ARCH even if building for Windows or Linux.
cmake_cmd="cmake -DMAC_ARCH=$MAC_ARCH -DCMAKE_BUILD_TYPE=$BUILD_TYPE -DCMAKE_PACKAGE_TYPE=$CMAKE_PACKAGE_TYPE -DCMAKE_CXX_FLAGS="${CUSTOM_CMAKE_CXX_FLAG}" $CMAKE_OPTS .."
cmake_cmd="cmake -DCMAKE_OSX_ARCHITECTURES=$APPLE_ARCH -DCMAKE_OSX_DEPLOYMENT_TARGET=$MACOSX_DEPLOYMENT_TARGET -DCMAKE_BUILD_TYPE=$BUILD_TYPE -DCMAKE_PACKAGE_TYPE=$CMAKE_PACKAGE_TYPE -DCMAKE_CXX_FLAGS="${CUSTOM_CMAKE_CXX_FLAG}" $CMAKE_OPTS .."
echo $cmake_cmd
eval $cmake_cmd

Expand Down
11 changes: 10 additions & 1 deletion lib/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -490,7 +490,12 @@ if(MATSDK_BUNDLE_SQLITE AND NOT TARGET sqlite3_bundled)
else()
# Unstripped vendored build (Android legacy): keep the existing narrower
# warning suppression. -fno-finite-math-only guards the INFINITY macro.
target_compile_options(sqlite3_bundled PRIVATE -fno-finite-math-only -Wno-unused-function)
target_compile_options(sqlite3_bundled PRIVATE
-fno-finite-math-only
-Wno-unused-function
-Wno-shorten-64-to-32
-Wno-ambiguous-macro
)
endif()
endif()

Expand Down Expand Up @@ -561,6 +566,10 @@ else()
# real POSIX declarations for read/write/lseek/close instead of relying on
# implicit (int-returning) declarations.
target_compile_definitions(zlib_bundled PRIVATE Z_HAVE_UNISTD_H)
target_compile_options(zlib_bundled PRIVATE
-Wno-shorten-64-to-32
-Wno-ambiguous-macro
)

target_link_libraries(mat PRIVATE sqlite3_bundled zlib_bundled ${LIBS})
elseif(PAL_IMPLEMENTATION STREQUAL "WIN32")
Expand Down
Loading
Loading