mirror of
https://github.com/johndoe6345789/MetalOS.git
synced 2026-04-24 13:45:02 +00:00
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:
3
.github/workflows/qemu-test.yml
vendored
3
.github/workflows/qemu-test.yml
vendored
@@ -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: |
|
||||
|
||||
3
.github/workflows/release.yml
vendored
3
.github/workflows/release.yml
vendored
@@ -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: |
|
||||
|
||||
4
.github/workflows/unit-tests.yml
vendored
4
.github/workflows/unit-tests.yml
vendored
@@ -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: |
|
||||
|
||||
@@ -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"]
|
||||
|
||||
10
README.md
10
README.md
@@ -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
|
||||
```
|
||||
|
||||
|
||||
Reference in New Issue
Block a user