Switch to Clang as default compiler in CI/CD and Docker

Co-authored-by: johndoe6345789 <224850594+johndoe6345789@users.noreply.github.com>
This commit is contained in:
copilot-swe-agent[bot]
2025-12-28 22:09:59 +00:00
parent a9d2cba0c5
commit 2d536b0853
5 changed files with 16 additions and 11 deletions

View File

@@ -25,6 +25,7 @@ jobs:
sudo apt-get update
sudo apt-get install -y \
build-essential \
clang \
cmake \
nasm \
qemu-system-x86 \
@@ -49,7 +50,7 @@ jobs:
run: |
mkdir -p build
cd build
cmake .. -DCMAKE_TOOLCHAIN_FILE=../build/Release/generators/conan_toolchain.cmake
CC=clang CXX=clang++ cmake .. -DCMAKE_TOOLCHAIN_FILE=../build/Release/generators/conan_toolchain.cmake
- name: Build bootloader and kernel
run: |

View File

@@ -24,6 +24,7 @@ jobs:
sudo apt-get update
sudo apt-get install -y \
build-essential \
clang \
cmake \
nasm \
qemu-system-x86 \
@@ -47,7 +48,7 @@ jobs:
run: |
mkdir -p build
cd build
cmake .. -DCMAKE_TOOLCHAIN_FILE=../build/Release/generators/conan_toolchain.cmake
CC=clang CXX=clang++ cmake .. -DCMAKE_TOOLCHAIN_FILE=../build/Release/generators/conan_toolchain.cmake
- name: Build bootloader and kernel
run: |

View File

@@ -22,7 +22,7 @@ jobs:
set -e # Exit on any error
sudo apt-get update
sudo apt-get install -y build-essential cmake python3 python3-pip
sudo apt-get install -y build-essential clang cmake python3 python3-pip
# Install Conan
pip3 install conan
@@ -38,7 +38,7 @@ jobs:
run: |
mkdir -p build
cd build
cmake .. -DCMAKE_TOOLCHAIN_FILE=../build/Release/generators/conan_toolchain.cmake
CC=clang CXX=clang++ cmake .. -DCMAKE_TOOLCHAIN_FILE=../build/Release/generators/conan_toolchain.cmake
- name: Build unit tests
run: |

View File

@@ -13,8 +13,9 @@ WORKDIR /metalos
RUN apt-get update && apt-get install -y \
# Build essentials
build-essential \
gcc \
g++ \
clang \
clang++ \
lld \
nasm \
make \
cmake \
@@ -62,6 +63,8 @@ RUN cp /usr/share/OVMF/OVMF_CODE.fd /metalos/deps/ovmf/ 2>/dev/null || \
# Set environment variables
ENV PATH="/metalos/tools:${PATH}"
ENV METALOS_ROOT="/metalos"
ENV CC=clang
ENV CXX=clang++
# Default command
CMD ["/bin/bash"]

View File

@@ -67,7 +67,7 @@ See [docs/ROADMAP.md](docs/ROADMAP.md) for detailed phase breakdown.
## Building
MetalOS uses **CMake** as its build system for a modern, cross-platform build experience.
MetalOS uses **CMake** as its build system for a modern, cross-platform build experience. **Clang** is the default compiler.
### Quick Start (CMake)
@@ -87,13 +87,13 @@ ninja
ninja qemu
```
### Building with Clang
### Building with GCC
MetalOS supports both GCC and Clang compilers. To build with Clang:
MetalOS supports both Clang (default) and GCC compilers. To build with GCC:
```bash
mkdir build && cd build
CC=clang CXX=clang++ cmake ..
CC=gcc CXX=g++ cmake ..
cmake --build .
```
@@ -101,7 +101,7 @@ Or with Ninja:
```bash
mkdir build && cd build
CC=clang CXX=clang++ cmake -G Ninja ..
CC=gcc CXX=g++ cmake -G Ninja ..
ninja
```