Merge pull request #295 from bkryza/add-macos-github-action

Added macos build action
This commit is contained in:
Bartek Kryza
2024-07-13 14:01:46 +02:00
committed by GitHub
4 changed files with 69 additions and 3 deletions

View File

@@ -1,4 +1,4 @@
name: build name: Linux
on: on:
push: push:
@@ -8,6 +8,8 @@ on:
- 'util/**' - 'util/**'
- 'uml/**' - 'uml/**'
- '**.md' - '**.md'
- '**.svg'
- '**.png'
branches-ignore: branches-ignore:
- 'noactions/*' - 'noactions/*'
pull_request: pull_request:
@@ -30,6 +32,8 @@ jobs:
uses: actions/checkout@v4 uses: actions/checkout@v4
- name: Update package database - name: Update package database
run: sudo apt -y update run: sudo apt -y update
- name: ccache
uses: hendrikmuhs/ccache-action@v1.2
- name: Install deps - name: Install deps
run: sudo apt -y install git make pkg-config gcc-11 g++-11 ccache cmake libyaml-cpp-dev llvm-15 clang-15 libclang-15-dev libclang-cpp15-dev clang-format-15 lcov zlib1g-dev libunwind-dev libdw-dev run: sudo apt -y install git make pkg-config gcc-11 g++-11 ccache cmake libyaml-cpp-dev llvm-15 clang-15 libclang-15-dev libclang-cpp15-dev clang-format-15 lcov zlib1g-dev libunwind-dev libdw-dev
- name: Select g++ version - name: Select g++ version

49
.github/workflows/macos.yml vendored Normal file
View File

@@ -0,0 +1,49 @@
name: macOS
on:
push:
paths-ignore:
- 'docs/**'
- 'packaging/**'
- 'util/**'
- 'uml/**'
- '**.md'
- '**.svg'
- '**.png'
branches-ignore:
- 'noactions/*'
pull_request:
paths-ignore:
- 'docs/**'
- 'packaging/**'
- 'util/**'
- 'uml/**'
- '**.md'
- '**.svg'
- '**.png'
branches-ignore:
- 'noactions/*'
jobs:
build-macos:
name: Build and test on macos
runs-on: macos-14
steps:
- name: Checkout
uses: actions/checkout@v4
- name: ccache
uses: hendrikmuhs/ccache-action@v1.2
- name: Install dependencies using homebrew
run: brew install llvm@18 ninja yaml-cpp cmake ccache
- name: Build and test
run: CC=/opt/homebrew/opt/llvm/bin/clang CXX=/opt/homebrew/opt/llvm/bin/clang++ CMAKE_PREFIX=/opt/homebrew/opt/llvm/lib/cmake/llvm/ CMAKE_GENERATOR=Ninja CMAKE_EXE_LINKER_FLAGS="-L/opt/homebrew/opt/llvm/lib/c++ -Wl,-rpath,/opt/homebrew/opt/llvm/lib/c++" make test
- name: Print build version
run: debug/src/clang-uml --version
- name: Print help
run: debug/src/clang-uml --help

View File

@@ -2,7 +2,8 @@
# C++ UML diagram generator based on Clang # C++ UML diagram generator based on Clang
[![Build status](https://github.com/bkryza/clang-uml/actions/workflows/build.yml/badge.svg)](https://github.com/bkryza/clang-uml/actions) [![Linux build status](https://github.com/bkryza/clang-uml/actions/workflows/build.yml/badge.svg)](https://github.com/bkryza/clang-uml/actions)
[![macos build status](https://github.com/bkryza/clang-uml/actions/workflows/macos.yml/badge.svg)](https://github.com/bkryza/clang-uml/actions)
[![Coverage](https://codecov.io/gh/bkryza/clang-uml/branch/master/graph/badge.svg)](https://codecov.io/gh/bkryza/clang-uml) [![Coverage](https://codecov.io/gh/bkryza/clang-uml/branch/master/graph/badge.svg)](https://codecov.io/gh/bkryza/clang-uml)
[![Version](https://img.shields.io/badge/version-0.5.3-blue)](https://github.com/bkryza/clang-uml/releases) [![Version](https://img.shields.io/badge/version-0.5.3-blue)](https://github.com/bkryza/clang-uml/releases)
[![Version](https://img.shields.io/badge/LLVM-12,13,14,15,16,17,18-orange)](https://github.com/bkryza/clang-uml/releases) [![Version](https://img.shields.io/badge/LLVM-12,13,14,15,16,17,18-orange)](https://github.com/bkryza/clang-uml/releases)

View File

@@ -122,8 +122,9 @@ make install DESTDIR=/opt/clang-uml
export PATH=$PATH:$PWD/release export PATH=$PATH:$PWD/release
``` ```
#### macos #### macOS
On Intel-based macOS:
```bash ```bash
brew install ccache cmake llvm yaml-cpp brew install ccache cmake llvm yaml-cpp
@@ -134,6 +135,17 @@ LLVM_VERSION=16 make release
CMAKE_PREFIX=/usr/local/opt/llvm/lib/cmake/llvm make release CMAKE_PREFIX=/usr/local/opt/llvm/lib/cmake/llvm make release
``` ```
On Arm-based macOS:
```bash
brew install ccache cmake llvm yaml-cpp
export CC=/opt/homebrew/opt/llvm/bin/clang
export CXX=/opt/homebrew/opt/llvm/bin/clang++
CMAKE_PREFIX=/usr/local/opt/llvm/lib/cmake/llvm CMAKE_EXE_LINKER_FLAGS="-L/opt/homebrew/opt/llvm/lib/c++ -Wl,-rpath,/opt/homebrew/opt/llvm/lib/c++" make release
```
> These paths will use the latest LLVM version installed by `brew`.
> If you want to use a specific version, you will need to adjust the paths.
#### Windows #### Windows
##### Visual Studio native build ##### Visual Studio native build