diff --git a/.github/workflows/clang-tidy.yml b/.github/workflows/clang-tidy.yml index e70bc6f2a..8e15829d2 100644 --- a/.github/workflows/clang-tidy.yml +++ b/.github/workflows/clang-tidy.yml @@ -68,7 +68,7 @@ jobs: scripts\download-toolchain.bat - name: Build run: | - set VCToolsVersion=14.16 + set VCToolsVersion=14.29 set Winsdk=10.0.19041.0 set "WindowsSDKVersion=%Winsdk%\" if "${{ matrix.arch }}" == "arm64" (call :SetNewVCToolsVersion) diff --git a/.github/workflows/compiler.yml b/.github/workflows/compiler.yml index e49a16cdc..98f25aed2 100644 --- a/.github/workflows/compiler.yml +++ b/.github/workflows/compiler.yml @@ -35,7 +35,7 @@ jobs: strategy: fail-fast: false matrix: - arch: [x64, x86] + arch: [x86] crt-linkage: [static] build_type: [Debug, Release] runs-on: windows-2022 @@ -152,9 +152,8 @@ jobs: uses: actions/cache@v3 with: path: | - third_party/llvm-mingw-20230614-msvcrt-ubuntu-20.04-x86_64 third_party/llvm-mingw-20230614-ucrt-ubuntu-20.04-x86_64 - key: ${{ runner.os }}-mingw64-third_party-llvm-20230614-msvcrt-and-ucrt + key: ${{ runner.os }}-mingw64-third_party-llvm-20230614-ucrt - name: Cache mingw64 curl id: curl-cache uses: actions/cache@v3 @@ -190,9 +189,7 @@ jobs: if: ${{ steps.mingw-cache.outputs.cache-hit != 'true' }} run: | pushd third_party - curl -L -O https://github.com/mstorsjo/llvm-mingw/releases/download/20230614/llvm-mingw-20230614-msvcrt-ubuntu-20.04-x86_64.tar.xz curl -L -O https://github.com/mstorsjo/llvm-mingw/releases/download/20230614/llvm-mingw-20230614-ucrt-ubuntu-20.04-x86_64.tar.xz - tar -xf llvm-mingw-20230614-msvcrt-ubuntu-20.04-x86_64.tar.xz tar -xf llvm-mingw-20230614-ucrt-ubuntu-20.04-x86_64.tar.xz rm -vf llvm-mingw-*.xz popd @@ -369,10 +366,6 @@ jobs: # brew update # brew install ninja cmake p7zip brew install ninja - - name: Set up Xcode to 14.2 (macos 12) - if: ${{ matrix.os == 'macos-12' }} - run: | - sudo xcode-select -s /Applications/Xcode_14.2.app - name: Set up Xcode to 15.0.1 (macos 13) if: ${{ matrix.os == 'macos-13' }} run: | diff --git a/.github/workflows/releases-mingw-new.yml b/.github/workflows/releases-mingw-new.yml index 531764a85..b378b780a 100644 --- a/.github/workflows/releases-mingw-new.yml +++ b/.github/workflows/releases-mingw-new.yml @@ -68,9 +68,8 @@ jobs: uses: actions/cache@v3 with: path: | - third_party/llvm-mingw-20230614-msvcrt-ubuntu-20.04-x86_64 - third_party/llvm-mingw-20230614-ucrt-ubuntu-20.04-x86_64 - key: ${{ runner.os }}-mingw64-third_party-llvm-20230614-msvcrt-and-ucrt + third_party/llvm-mingw-20230614-${{ matrix.variant }}-ubuntu-20.04-x86_64 + key: ${{ runner.os }}-mingw64-third_party-llvm-20230614-${{ matrix.variant }} - name: Cache mingw64 curl id: curl-cache uses: actions/cache@v3 @@ -106,10 +105,8 @@ jobs: if: ${{ steps.mingw-cache.outputs.cache-hit != 'true' }} run: | pushd third_party - curl -L -O https://github.com/mstorsjo/llvm-mingw/releases/download/20230614/llvm-mingw-20230614-msvcrt-ubuntu-20.04-x86_64.tar.xz - curl -L -O https://github.com/mstorsjo/llvm-mingw/releases/download/20230614/llvm-mingw-20230614-ucrt-ubuntu-20.04-x86_64.tar.xz - tar -xf llvm-mingw-20230614-msvcrt-ubuntu-20.04-x86_64.tar.xz - tar -xf llvm-mingw-20230614-ucrt-ubuntu-20.04-x86_64.tar.xz + curl -L -O https://github.com/mstorsjo/llvm-mingw/releases/download/20230614/llvm-mingw-20230614-${{ matrix.variant }}-ubuntu-20.04-x86_64.tar.xz + tar -xf llvm-mingw-20230614-${{ matrix.variant }}-ubuntu-20.04-x86_64.tar.xz rm -vf llvm-mingw-*.xz popd - name: "Download dependency: curl" diff --git a/.github/workflows/sanitizers.yml b/.github/workflows/sanitizers.yml index 9f0cbc25a..779236ac5 100644 --- a/.github/workflows/sanitizers.yml +++ b/.github/workflows/sanitizers.yml @@ -60,6 +60,10 @@ jobs: sudo apt-get update -qq - name: Populate depedencies run: sudo apt-get update -qq && sudo apt-get install -y cmake ninja-build llvm libcurl4-openssl-dev + - name: Set clang environment + run: | + echo "CC=${{ github.workspace }}/third_party/llvm-build/Release+Asserts/bin/clang" >> $GITHUB_ENV + echo "CXX=${{ github.workspace }}/third_party/llvm-build/Release+Asserts/bin/clang++" >> $GITHUB_ENV - name: Build Unittests run: | mkdir build diff --git a/.gitignore b/.gitignore index 998ce0eca..f368617a8 100644 --- a/.gitignore +++ b/.gitignore @@ -25,6 +25,7 @@ sscxx /third_party/curl-8.4.0_7-win64a-mingw /third_party/llvm-mingw-20230614-msvcrt-ubuntu-20.04-x86_64 /third_party/llvm-mingw-20230614-ucrt-ubuntu-20.04-x86_64 +/third_party/llvm-mingw-20230614-ucrt-macos-universal /third_party/crashpad /third_party/depot_tools *.aps diff --git a/CMakeLists.txt b/CMakeLists.txt index c44bd4096..d59a33ad0 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -2272,6 +2272,22 @@ if (IOS) set(_CRASHPAD_OS "-ios-simulator") set(_CRASHPAD_ARCH "${CMAKE_SYSTEM_PROCESSOR}") endif() +elseif (ANDROID) + set(_CRASHPAD_OS "-android") + if (CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64-v8a") + set(_CRASHPAD_ARCH "arm64") + elseif (CMAKE_SYSTEM_PROCESSOR STREQUAL "armeabi-v7a") + set(_CRASHPAD_ARCH "arm") + elseif (CMAKE_SYSTEM_PROCESSOR STREQUAL "x86") + set(_CRASHPAD_ARCH "x86") + elseif (CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64") + set(_CRASHPAD_ARCH "x64") + elseif (CMAKE_SYSTEM_PROCESSOR STREQUAL "riscv64") + set(_CRASHPAD_ARCH "riscv64") + else() + message(WARNING "crashpad: unsupported android architecture ${CMAKE_SYSTEM_PROCESSOR}") + set(_CRASHPAD_ARCH "${CMAKE_SYSTEM_PROCESSOR}") + endif() elseif (NOT OSX_CROSS_ARCHITECTURES_COUNT) set(_CRASHPAD_ARCH "${CMAKE_SYSTEM_PROCESSOR}") elseif (OSX_CROSS_ARCHITECTURES_COUNT EQUAL 1) @@ -2287,12 +2303,9 @@ elseif (_CRASHPAD_ARCH STREQUAL "i386" OR _CRASHPAD_ARCH STREQUAL "i586" OR _CRA elseif (_CRASHPAD_ARCH STREQUAL "aarch64") set(_CRASHPAD_ARCH "arm64") endif() -if (ANDROID) - set(_CRASHPAD_OS "-android") -endif() set(_CRASHPAD_PREFIX "${CMAKE_CURRENT_SOURCE_DIR}/third_party/crashpad/crashpad/out/Default-${_CRASHPAD_ARCH}${_CRASHPAD_OS}") set(_CRASHPAD_BINARY_PREFIX "${CMAKE_CURRENT_SOURCE_DIR}/third_party/crashpad/crashpad/out/Binary-${_CRASHPAD_ARCH}${_CRASHPAD_OS}") -if ((${CMAKE_BUILD_TYPE} MATCHES MinSizeRel OR ${CMAKE_BUILD_TYPE} MATCHES Release) AND EXISTS "${_CRASHPAD_PREFIX}/obj/client/libclient.a") +if (UNIX AND (${CMAKE_BUILD_TYPE} MATCHES MinSizeRel OR ${CMAKE_BUILD_TYPE} MATCHES Release) AND EXISTS "${_CRASHPAD_PREFIX}/obj/client/libclient.a") message(STATUS "Compiling with bundled crashpad client library") add_library(crashpad_common STATIC IMPORTED) set_property(TARGET crashpad_common PROPERTY