diff --git a/.github/workflows/build-ios-mac.yml b/.github/workflows/build-ios-mac.yml new file mode 100644 index 000000000..dae79812d --- /dev/null +++ b/.github/workflows/build-ios-mac.yml @@ -0,0 +1,45 @@ +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 16'", "'iPad Air 11-inch (M2)'"] + 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 }} diff --git a/.github/workflows/build-ios-mac11.yml b/.github/workflows/build-ios-mac11.yml deleted file mode 100644 index 9c60f195a..000000000 --- a/.github/workflows/build-ios-mac11.yml +++ /dev/null @@ -1,35 +0,0 @@ -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: - runs-on: macOS-11 - strategy: - matrix: - config: [release, debug] - simulator: ["'iPhone 8'", "'iPad Air (3rd generation)'"] - steps: - - uses: actions/checkout@v2 - with: - submodules: 'true' - continue-on-error: true - - name: build - run: export IOS_DEPLOYMENT_TARGET=11.0 && ./build-tests-ios.sh ${{ matrix.config }} ${{ matrix.simulator }} diff --git a/CMakeLists.txt b/CMakeLists.txt index 815834bc9..9bf34850d 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -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") diff --git a/build-tests-ios.sh b/build-tests-ios.sh index fb48b4ea7..d0f7d428d 100755 --- a/build-tests-ios.sh +++ b/build-tests-ios.sh @@ -1,4 +1,7 @@ #!/bin/sh +// Add current user +current_user=`id` +echo "CURRENT USER:" $current_user cd ${0%/*} SKU=${1:-release} SIMULATOR=${2:-iPhone 8}