Skip to content

Commit

Permalink
Merge branch 'main' into mkoscumb/MoveJsonHppStage3
Browse files Browse the repository at this point in the history
  • Loading branch information
mkoscumb authored Feb 11, 2025
2 parents 701cbda + 0747bc7 commit 773d95a
Show file tree
Hide file tree
Showing 10 changed files with 130 additions and 43 deletions.
3 changes: 1 addition & 2 deletions .github/workflows/build-android.yml
Original file line number Diff line number Diff line change
Expand Up @@ -25,8 +25,7 @@ jobs:
- name: Checkout
uses: actions/checkout@v3
with:
depth: 1
submodules: 'false'
submodules: false
- name: Update submodules
run: |
git submodule sync
Expand Down
54 changes: 54 additions & 0 deletions .github/workflows/build-ios-mac.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,54 @@
name: C/C++ CI for iOS

on:
push:
branches:
- master
- main
- dev
- dev/*
- release/*
- buildme/*

pull_request:
branches:
- master
- main
- dev

schedule:
- cron: 0 2 * * 1-5

jobs:
build:
strategy:
matrix:
os: [macos-13, macos-15]
config: [release, debug]
simulator: ["'iPhone 15'", "'iPad Pro (11-inch) (4th generation)'", "'iPhone 16'", "'iPad Air 11-inch (M2)'"]
exclude:
- os: macos-13
simulator: "'iPhone 16'"
- os: macos-13
simulator: "'iPad Air 11-inch (M2)'"
- os: macos-15
simulator: "'iPhone 15'"
- os: macos-15
simulator: "'iPad Pro (11-inch) (4th generation)'"
runs-on: ${{ matrix.os }}
steps:
- name: Grant write permissions to /usr/local
run: |
sudo chown -R $USER:staff /usr/local
- uses: actions/checkout@v2
with:
submodules: 'true'
continue-on-error: true
- name: build
run: |
if [[ "${{ matrix.os }}" == "macos-13" ]]; then
export IOS_DEPLOYMENT_TARGET=13.0;
elif [[ "${{ matrix.os }}" == "macos-15" ]]; then
export IOS_DEPLOYMENT_TARGET=15.0;
fi
./build-tests-ios.sh ${{ matrix.config }} ${{ matrix.simulator }}
35 changes: 0 additions & 35 deletions .github/workflows/build-ios-mac11.yml

This file was deleted.

3 changes: 2 additions & 1 deletion .github/workflows/test-android-mac.yml.off
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,8 @@ jobs:
- name: Checkout
uses: actions/checkout@v2
with:
submodules: 'true'
submodules: true
depth: 1
continue-on-error: true

- name: Build and Test
Expand Down
45 changes: 45 additions & 0 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -1,6 +1,51 @@
cmake_minimum_required(VERSION 3.1.0)
project(MSTelemetry)

# Set installation prefix for macOS and Linux
if(UNIX AND NOT DEFINED CMAKE_INSTALL_PREFIX)
set(CMAKE_INSTALL_PREFIX "/usr/local" CACHE PATH "Installation directory prefix" FORCE)
endif()


# Set installation prefix for Unix systems (macOS and Linux)
if(UNIX AND NOT DEFINED CMAKE_INSTALL_PREFIX)
# First try /usr/local
set(TEST_FILE "/usr/local/.ci_write_test")

# Try to create a test file
execute_process(
COMMAND ${CMAKE_COMMAND} -E touch "${TEST_FILE}"
RESULT_VARIABLE WRITE_RESULT
)

# Check if write was successful
if(WRITE_RESULT EQUAL 0)
# We have write access to /usr/local
set(CMAKE_INSTALL_PREFIX "/usr/local" CACHE PATH "Installation directory prefix" FORCE)
message(STATUS "Using /usr/local as installation prefix (write access confirmed)")
# Clean up test file
execute_process(COMMAND ${CMAKE_COMMAND} -E remove "${TEST_FILE}")
else()
# No write access, fall back to HOME directory
set(FALLBACK_DIR "$ENV{HOME}/mst_telemetry")

# Create the mst_telemetry directory
execute_process(
COMMAND ${CMAKE_COMMAND} -E make_directory "${FALLBACK_DIR}"
RESULT_VARIABLE CREATE_DIR_RESULT
)

if(NOT CREATE_DIR_RESULT EQUAL 0)
message(FATAL_ERROR "Failed to create directory: ${FALLBACK_DIR}")
endif()

set(CMAKE_INSTALL_PREFIX "${FALLBACK_DIR}" CACHE PATH "Installation directory prefix" FORCE)
message(STATUS "No write access to /usr/local, created and using ${FALLBACK_DIR} instead")
endif()
endif()



set(INSTALL_BIN_DIR "${CMAKE_INSTALL_PREFIX}/bin" CACHE PATH "Installation directory for executables")
set(INSTALL_LIB_DIR "${CMAKE_INSTALL_PREFIX}/lib" CACHE PATH "Installation directory for libraries")
set(INSTALL_INC_DIR "${CMAKE_INSTALL_PREFIX}/include" CACHE PATH "Installation directory for headers")
Expand Down
13 changes: 10 additions & 3 deletions build-gtest.sh
Original file line number Diff line number Diff line change
Expand Up @@ -27,19 +27,25 @@ fi
echo "Add ios and arm64 build steps for googletest"
cat > $GTEST_PATH/CMakeLists_temp.txt << EOF
# If building for iOS, set all the iOS options
if(BUILD_IOS)
if(BUILD_IOS)
message("-- Building for iOS simulator..")
message("-- CMAKE_OSX_DEPLOYMENT_TARGET \${CMAKE_OSX_DEPLOYMENT_TARGET}")
message("-- CMAKE_SYSTEM_NAME \${CMAKE_SYSTEM_NAME}")
message("-- CMAKE_OSX_ARCHITECTURES \${CMAKE_OSX_ARCHITECTURES}")
set(TARGET_ARCH "APPLE")
set(IOS True)
set(APPLE True)
set(CMAKE_OSX_DEPLOYMENT_TARGET "" CACHE STRING "Force unset of the deployment target for iOS" FORCE)
set(CMAKE_SYSTEM_NAME 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
OUTPUT_VARIABLE CMAKE_OSX_SYSROOT
OUTPUT_VARIABLE CMAKE_OSX_SYSROOT_OUT
ERROR_QUIET
OUTPUT_STRIP_TRAILING_WHITESPACE)
set(CMAKE_OSX_SYSROOT \${CMAKE_OSX_SYSROOT_OUT} CACHE STRING "Force set of the sysroot for iOS" FORCE)
message("-- CMAKE_OSX_SYSROOT \${CMAKE_OSX_SYSROOT}")
elseif(\${ARCH} STREQUAL "arm64")
set(CMAKE_C_FLAGS "\${CMAKE_C_FLAGS} -arch arm64")
Expand Down Expand Up @@ -67,6 +73,7 @@ cmake -Dgtest_build_samples=OFF \
-DARCH=$ARCH \
..
make

popd
# CTEST_OUTPUT_ON_FAILURE=1 make test
# make install
7 changes: 7 additions & 0 deletions build-tests-ios.sh
Original file line number Diff line number Diff line change
Expand Up @@ -4,9 +4,16 @@ SKU=${1:-release}
SIMULATOR=${2:-iPhone 8}

set -e

./build-ios.sh ${SKU}

# dyld_info /Users/runner/work/cpp_client_telemetry/cpp_client_telemetry/out/lib/libmat.a

cd tests/unittests

xcrun simctl list devices available
echo 'End of xcrun simctl list devices available'

xcodebuild test -scheme iOSUnitTests -destination "platform=iOS Simulator,name=$SIMULATOR"

cd ../functests
Expand Down
2 changes: 2 additions & 0 deletions tests/functests/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -108,6 +108,8 @@ else()
message("Current Dir: ${CMAKE_CURRENT_SOURCE_DIR}")
message("Binary Dir: ${CMAKE_BINARY_DIR}")

set(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE NEVER)

find_file(LIBGTEST
NAMES libgtest.a
PATHS
Expand Down
6 changes: 4 additions & 2 deletions tests/functests/functests-ios.xcodeproj/project.pbxproj
Original file line number Diff line number Diff line change
Expand Up @@ -317,6 +317,7 @@
GCC_WARN_UNUSED_VARIABLE = YES;
HEADER_SEARCH_PATHS = (
../,
../..,
../../lib/,
../../lib/include/,
../../lib/include/mat/,
Expand All @@ -326,7 +327,7 @@
../../third_party/googletest/googlemock/include/,
../common/,
);
IPHONEOS_DEPLOYMENT_TARGET = 11.2;
IPHONEOS_DEPLOYMENT_TARGET = 12.2;
MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE;
MTL_FAST_MATH = YES;
ONLY_ACTIVE_ARCH = NO;
Expand Down Expand Up @@ -380,6 +381,7 @@
GCC_WARN_UNUSED_VARIABLE = YES;
HEADER_SEARCH_PATHS = (
../,
../..,
../../lib/,
../../lib/include/,
../../lib/include/mat/,
Expand All @@ -389,7 +391,7 @@
../../third_party/googletest/googlemock/include/,
../common/,
);
IPHONEOS_DEPLOYMENT_TARGET = 11.2;
IPHONEOS_DEPLOYMENT_TARGET = 12.2;
MTL_ENABLE_DEBUG_INFO = NO;
MTL_FAST_MATH = YES;
ONLY_ACTIVE_ARCH = YES;
Expand Down
5 changes: 5 additions & 0 deletions tests/unittests/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -147,6 +147,8 @@ else()

include_directories( ${CMAKE_CURRENT_SOURCE_DIR}/../../lib/ )

set(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE NEVER)

find_file(LIBGTEST
NAMES libgtest.a
PATHS
Expand All @@ -159,6 +161,9 @@ else()
${CMAKE_CURRENT_SOURCE_DIR}/../../third_party/googletest/build/lib/
)

message("GTEST: ${LIBGTEST}")
message("GMOCK: ${LIBGMOCK}")

target_link_libraries(UnitTests
${LIBGTEST}
${LIBGMOCK}
Expand Down

0 comments on commit 773d95a

Please sign in to comment.