diff --git a/.github/workflows/build.yaml b/.github/workflows/build.yaml index a110c018ec0a77c59f67cd7ec152e4ce72b646ac..0835f9751e278ba16bd51d4eb2dc5cd338e412cb 100644 --- a/.github/workflows/build.yaml +++ b/.github/workflows/build.yaml @@ -11,13 +11,15 @@ jobs: build: strategy: matrix: - runner: [windows-large] + runner: [windows-large, macos-12-xl] configuration: [ReleaseOS] addrsize: [64] include: - runner: windows-large configuration: ReleaseOS addrsize: 32 + - runner: macos-12-xl + developer_dir: "/Applications/Xcode_14.0.1.app/Contents/Developer" runs-on: ${{ matrix.runner }} env: AUTOBUILD_CONFIGURATION: ${{ matrix.configuration }} @@ -25,8 +27,10 @@ jobs: AUTOBUILD_INSTALLABLE_CACHE: ${{ github.workspace }}/.autobuild-installables AUTOBUILD_VARIABLES_FILE: ${{ github.workspace }}/.build-variables/variables AUTOBUILD_VSVER: "170" # vs2k22 + DEVELOPER_DIR: ${{ matrix.developer_dir }} LOGFAIL: debug # Show details when tests fail GIT_REF: ${{ github.head_ref || github.ref }} + LL_SKIP_REQUIRE_SYSROOT: 1 steps: - name: Checkout code uses: actions/checkout@v3 diff --git a/autobuild.xml b/autobuild.xml index a716315ca94a27e309f259768c0762512a423a23..2940c4492deb4f8b0f5adf73eedca233a0d3c59e 100644 --- a/autobuild.xml +++ b/autobuild.xml @@ -3183,6 +3183,7 @@ Copyright (c) 2012, 2014, 2015, 2016 nghttp2 contributors</string> <string>RelWithDebInfo</string> <string>-project</string> <string>SecondLife.xcodeproj</string> + <string>-parallelizeTargets</string> </array> </map> <key>configure</key> @@ -3214,6 +3215,7 @@ Copyright (c) 2012, 2014, 2015, 2016 nghttp2 contributors</string> <string>RelWithDebInfo</string> <string>-project</string> <string>SecondLife.xcodeproj</string> + <string>-parallelizeTargets</string> </array> </map> <key>configure</key> @@ -3239,6 +3241,7 @@ Copyright (c) 2012, 2014, 2015, 2016 nghttp2 contributors</string> <string>Release</string> <string>-project</string> <string>SecondLife.xcodeproj</string> + <string>-parallelizeTargets</string> </array> </map> <key>configure</key> @@ -3268,6 +3271,7 @@ Copyright (c) 2012, 2014, 2015, 2016 nghttp2 contributors</string> <string>Release</string> <string>-project</string> <string>SecondLife.xcodeproj</string> + <string>-parallelizeTargets</string> </array> </map> <key>configure</key> diff --git a/indra/cmake/LLAddBuildTest.cmake b/indra/cmake/LLAddBuildTest.cmake index bf569e5d992dcbef8bd8a5385f24beaa9a4ec126..405128d661d4819563fd63dd96384a0d263cc054 100644 --- a/indra/cmake/LLAddBuildTest.cmake +++ b/indra/cmake/LLAddBuildTest.cmake @@ -126,6 +126,13 @@ MACRO(LL_ADD_PROJECT_UNIT_TESTS project sources) message("LL_ADD_PROJECT_UNIT_TESTS ${name}_test_additional_CFLAGS ${${name}_test_additional_CFLAGS}") endif() + if (DARWIN) + # test binaries always need to be signed for local development + set_target_properties(PROJECT_${project}_TEST_${name} + PROPERTIES + XCODE_ATTRIBUTE_CODE_SIGN_IDENTITY "-") + endif () + # # Setup test targets # @@ -221,6 +228,13 @@ FUNCTION(LL_ADD_INTEGRATION_TEST ) endif () + if (DARWIN) + # test binaries always need to be signed for local development + set_target_properties(INTEGRATION_TEST_${testname} + PROPERTIES + XCODE_ATTRIBUTE_CODE_SIGN_IDENTITY "-") + endif () + # Add link deps to the executable if(TEST_DEBUG) message(STATUS "TARGET_LINK_LIBRARIES(INTEGRATION_TEST_${testname} ${libraries})") diff --git a/indra/cmake/Variables.cmake b/indra/cmake/Variables.cmake index 79de3a9055a34fde13419afebd390967b8f9a197..469fb3d3300285ab082c82c918601de78cdf0444 100644 --- a/indra/cmake/Variables.cmake +++ b/indra/cmake/Variables.cmake @@ -173,13 +173,17 @@ if (${CMAKE_SYSTEM_NAME} MATCHES "Darwin") set(CMAKE_XCODE_ATTRIBUTE_GCC_OPTIMIZATION_LEVEL "${CMAKE_MATCH_1}") message(STATUS "CMAKE_XCODE_ATTRIBUTE_GCC_OPTIMIZATION_LEVEL = '${CMAKE_XCODE_ATTRIBUTE_GCC_OPTIMIZATION_LEVEL}'") - string(REGEX MATCHALL "[^ ]+" LL_BUILD_LIST "$ENV{LL_BUILD}") - list(FIND LL_BUILD_LIST "-iwithsysroot" sysroot_idx) - if ("${sysroot_idx}" LESS 0) - message(FATAL_ERROR "Environment variable LL_BUILD must contain '-iwithsysroot'") - endif () - math(EXPR sysroot_idx "${sysroot_idx} + 1") - list(GET LL_BUILD_LIST "${sysroot_idx}" CMAKE_OSX_SYSROOT) + # allow disabling this check by setting LL_SKIP_REQUIRE_SYSROOT either ON as cmake cache var or non-empty as environment var + set(LL_SKIP_REQUIRE_SYSROOT OFF CACHE BOOL "Skip requirement to set toolchain sysroot ahead of time. Not skipped by default for consistency, but skipping can be useful for selecting alternative xcode versions side by side") + if("$ENV{LL_SKIP_REQUIRE_SYSROOT}" STREQUAL "" AND NOT ${LL_SKIP_REQUIRE_SYSROOT}) + string(REGEX MATCHALL "[^ ]+" LL_BUILD_LIST "$ENV{LL_BUILD}") + list(FIND LL_BUILD_LIST "-iwithsysroot" sysroot_idx) + if ("${sysroot_idx}" LESS 0) + message(FATAL_ERROR "Environment variable LL_BUILD must contain '-iwithsysroot'") + endif () + math(EXPR sysroot_idx "${sysroot_idx} + 1") + list(GET LL_BUILD_LIST "${sysroot_idx}" CMAKE_OSX_SYSROOT) + endif() message(STATUS "CMAKE_OSX_SYSROOT = '${CMAKE_OSX_SYSROOT}'") set(CMAKE_XCODE_ATTRIBUTE_GCC_VERSION "com.apple.compilers.llvm.clang.1_0")