From bd3877103a1b9f91673bb60d59458b8649db10ac Mon Sep 17 00:00:00 2001 From: Jared Van Bortel Date: Thu, 13 Feb 2025 15:20:21 -0500 Subject: [PATCH] ci: use LLVM Clang on macOS Signed-off-by: Jared Van Bortel --- .circleci/continue_config.yml | 74 +++++++++++++++++++---------------- 1 file changed, 40 insertions(+), 34 deletions(-) diff --git a/.circleci/continue_config.yml b/.circleci/continue_config.yml index 3a68ac5e..9cd44eb0 100644 --- a/.circleci/continue_config.yml +++ b/.circleci/continue_config.yml @@ -18,6 +18,17 @@ parameters: type: boolean default: false +job-macos-executor: &job-macos-executor + macos: + xcode: 16.2.0 + resource_class: macos.m1.medium.gen1 + environment: + HOMEBREW_NO_AUTO_UPDATE: 1 + +job-macos-install-deps: &job-macos-install-deps + name: Install common macOS dependencies + command: brew install ccache llvm wget + jobs: # work around CircleCI-Public/path-filtering-orb#20 noop: @@ -34,8 +45,7 @@ jobs: name: Verify that commit is on the main branch command: git merge-base --is-ancestor HEAD main build-offline-chat-installer-macos: - macos: - xcode: 15.4.0 + <<: *job-macos-executor steps: - checkout - run: @@ -46,12 +56,11 @@ jobs: - restore_cache: keys: - ccache-gpt4all-macos- + - run: + <<: *job-macos-install-deps - run: name: Install Rosetta command: softwareupdate --install-rosetta --agree-to-license # needed for QtIFW - - run: - name: Install dependencies - command: brew install ccache wget - run: name: Installing Qt command: | @@ -86,6 +95,8 @@ jobs: -DCMAKE_BUILD_TYPE=Release \ -DCMAKE_PREFIX_PATH:PATH=~/Qt/6.8.2/macos/lib/cmake \ -DCMAKE_MAKE_PROGRAM:FILEPATH=~/Qt/Tools/Ninja/ninja \ + -DCMAKE_C_COMPILER=/opt/homebrew/opt/llvm/bin/clang \ + -DCMAKE_CXX_COMPILER=/opt/homebrew/opt/llvm/bin/clang++ \ -DCMAKE_C_COMPILER_LAUNCHER=ccache \ -DCMAKE_CXX_COMPILER_LAUNCHER=ccache \ -DBUILD_UNIVERSAL=ON \ @@ -128,8 +139,7 @@ jobs: - upload sign-offline-chat-installer-macos: - macos: - xcode: 15.4.0 + <<: *job-macos-executor steps: - checkout # attach to a workspace containing unsigned dmg @@ -163,8 +173,7 @@ jobs: - upload notarize-offline-chat-installer-macos: - macos: - xcode: 15.4.0 + <<: *job-macos-executor steps: - checkout - attach_workspace: @@ -203,8 +212,7 @@ jobs: hdiutil detach /Volumes/gpt4all-installer-darwin build-online-chat-installer-macos: - macos: - xcode: 15.4.0 + <<: *job-macos-executor steps: - checkout - run: @@ -215,12 +223,11 @@ jobs: - restore_cache: keys: - ccache-gpt4all-macos- + - run: + <<: *job-macos-install-deps - run: name: Install Rosetta command: softwareupdate --install-rosetta --agree-to-license # needed for QtIFW - - run: - name: Install dependencies - command: brew install ccache wget - run: name: Installing Qt command: | @@ -255,6 +262,8 @@ jobs: -DCMAKE_BUILD_TYPE=Release \ -DCMAKE_PREFIX_PATH:PATH=~/Qt/6.8.2/macos/lib/cmake \ -DCMAKE_MAKE_PROGRAM:FILEPATH=~/Qt/Tools/Ninja/ninja \ + -DCMAKE_C_COMPILER=/opt/homebrew/opt/llvm/bin/clang \ + -DCMAKE_CXX_COMPILER=/opt/homebrew/opt/llvm/bin/clang++ \ -DCMAKE_C_COMPILER_LAUNCHER=ccache \ -DCMAKE_CXX_COMPILER_LAUNCHER=ccache \ -DBUILD_UNIVERSAL=ON \ @@ -290,8 +299,7 @@ jobs: - upload sign-online-chat-installer-macos: - macos: - xcode: 15.4.0 + <<: *job-macos-executor steps: - checkout # attach to a workspace containing unsigned dmg @@ -325,8 +333,7 @@ jobs: - upload notarize-online-chat-installer-macos: - macos: - xcode: 15.4.0 + <<: *job-macos-executor steps: - checkout - attach_workspace: @@ -1227,8 +1234,7 @@ jobs: - ..\.ccache build-gpt4all-chat-macos: - macos: - xcode: 15.4.0 + <<: *job-macos-executor steps: - checkout - run: @@ -1239,12 +1245,11 @@ jobs: - restore_cache: keys: - ccache-gpt4all-macos- + - run: + <<: *job-macos-install-deps - run: name: Install Rosetta command: softwareupdate --install-rosetta --agree-to-license # needed for QtIFW - - run: - name: Install dependencies - command: brew install ccache wget - run: name: Installing Qt command: | @@ -1267,6 +1272,8 @@ jobs: -DCMAKE_BUILD_TYPE=Release \ -DCMAKE_PREFIX_PATH:PATH=~/Qt/6.8.2/macos/lib/cmake \ -DCMAKE_MAKE_PROGRAM:FILEPATH=~/Qt/Tools/Ninja/ninja \ + -DCMAKE_C_COMPILER=/opt/homebrew/opt/llvm/bin/clang \ + -DCMAKE_CXX_COMPILER=/opt/homebrew/opt/llvm/bin/clang++ \ -DCMAKE_C_COMPILER_LAUNCHER=ccache \ -DCMAKE_CXX_COMPILER_LAUNCHER=ccache \ -DBUILD_UNIVERSAL=ON \ @@ -1387,18 +1394,17 @@ jobs: - "*.whl" build-py-macos: - macos: - xcode: 15.4.0 - resource_class: macos.m1.large.gen1 + <<: *job-macos-executor steps: - checkout - restore_cache: keys: - ccache-gpt4all-macos- + - run: + <<: *job-macos-install-deps - run: name: Install dependencies command: | - brew install ccache cmake pip install setuptools wheel cmake - run: name: Build C library @@ -1409,6 +1415,8 @@ jobs: cd gpt4all-backend cmake -B build \ -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_C_COMPILER=/opt/homebrew/opt/llvm/bin/clang \ + -DCMAKE_CXX_COMPILER=/opt/homebrew/opt/llvm/bin/clang++ \ -DCMAKE_C_COMPILER_LAUNCHER=ccache \ -DCMAKE_CXX_COMPILER_LAUNCHER=ccache \ -DBUILD_UNIVERSAL=ON \ @@ -1582,8 +1590,7 @@ jobs: - runtimes/linux-x64/*.so build-bindings-backend-macos: - macos: - xcode: 15.4.0 + <<: *job-macos-executor steps: - checkout - run: @@ -1595,9 +1602,7 @@ jobs: keys: - ccache-gpt4all-macos- - run: - name: Install dependencies - command: | - brew install ccache cmake + <<: *job-macos-install-deps - run: name: Build Libraries no_output_timeout: 30m @@ -1608,6 +1613,8 @@ jobs: cd runtimes/build cmake ../.. \ -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_C_COMPILER=/opt/homebrew/opt/llvm/bin/clang \ + -DCMAKE_CXX_COMPILER=/opt/homebrew/opt/llvm/bin/clang++ \ -DCMAKE_C_COMPILER_LAUNCHER=ccache \ -DCMAKE_CXX_COMPILER_LAUNCHER=ccache \ -DBUILD_UNIVERSAL=ON \ @@ -1725,8 +1732,7 @@ jobs: - runtimes/linux-x64/*-*.so build-nodejs-macos: - macos: - xcode: 15.4.0 + <<: *job-macos-executor steps: - checkout - attach_workspace: