Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
23 commits
Select commit Hold shift + click to select a range
ad366f6
`README.md`: replace occurrences of github profiles: `mathiasbredholt…
ChristianFrisson Apr 20, 2026
38d4074
Merge branch 'main' into 1-compile-and-release-via-continous-integrat…
ChristianFrisson Apr 20, 2026
dc9d1d4
`.github/workflows/cmake-multi-platform.yml`: add ids to steps
ChristianFrisson Apr 20, 2026
1791777
`.github/workflows/cmake-multi-platform.yml`: add step `install-libma…
ChristianFrisson Apr 20, 2026
d560a63
`.github/workflows/cmake-multi-platform.yml`: simplify `matrix` tempo…
ChristianFrisson Apr 20, 2026
ccfadb2
`.github/workflows/cmake-multi-platform.yml`: start with `macos-lates…
ChristianFrisson Apr 20, 2026
7a2218b
`.github/workflows/cmake-multi-platform.yml`: update `install-libmapp…
ChristianFrisson Apr 20, 2026
fca1274
`.github/workflows/cmake-multi-platform.yml`: `install-libmapper`: re…
ChristianFrisson Apr 20, 2026
b9d5d15
`.github/workflows/cmake-multi-platform.yml`: `configure`: add `-DCMA…
ChristianFrisson Apr 20, 2026
18c8879
`.github/workflows/cmake-multi-platform.yml`: `matrix`: expand macos …
ChristianFrisson Apr 20, 2026
9ae4d88
`.github/workflows/cmake-multi-platform.yml`: extend `install-libmapp…
ChristianFrisson Apr 20, 2026
b8e27a0
`CMakeLists.txt`: support homebrew on macOS
ChristianFrisson Apr 21, 2026
23654ef
`.github/workflows/cmake-multi-platform.yml`: `on: push: branches:`: …
ChristianFrisson Apr 21, 2026
4093210
`README.md`: reformat, install libmapper as prerequisite for both Ins…
ChristianFrisson Apr 21, 2026
dcdddb4
`README.md`: simplify Compilation from source: unique cross-platform …
ChristianFrisson Apr 21, 2026
7fe3f7f
`CMakeLists.txt`: update `cmake_minimum_required (VERSION 4.3)`
ChristianFrisson Apr 21, 2026
bb5e90b
`.github/workflows/cmake-multi-platform.yml`: `configure`: remove `-D…
ChristianFrisson Apr 21, 2026
c14aa07
Update supercollider submodule to Version-3.14.1
ChristianFrisson Apr 21, 2026
c63f768
`.github/workflows/cmake-multi-platform.yml`: `checkout`: `with`: sub…
ChristianFrisson Apr 21, 2026
a89762e
`.github/workflows/cmake-multi-platform.yml`: `matrix`: update `macos…
ChristianFrisson Apr 21, 2026
f0beaf9
`.github/workflows/cmake-multi-platform.yml`: `c_compiler: [cc]`
ChristianFrisson Apr 21, 2026
1cb41bd
`.github/workflows/cmake-multi-platform.yml`: add steps `shorten-sha`…
ChristianFrisson Apr 21, 2026
9619aa1
`.github/workflows/cmake-multi-platform.yml`: `build`: append `--targ…
ChristianFrisson Apr 21, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
78 changes: 58 additions & 20 deletions .github/workflows/cmake-multi-platform.yml
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,8 @@ name: CMake on multiple platforms

on:
push:
branches:
- main
pull_request:

jobs:
Expand All @@ -21,29 +23,47 @@ jobs:
#
# To add more build types (Release, Debug, RelWithDebInfo, etc.) customize the build_type list.
matrix:
os: [ubuntu-latest, windows-latest]
os: [macos-latest] #, ubuntu-latest, windows-latest]
build_type: [Release]
c_compiler: [gcc, clang, cl]
c_compiler: [cc] #, clang, gcc, cl]
include:
- os: windows-latest
c_compiler: cl
cpp_compiler: cl
- os: ubuntu-latest
c_compiler: gcc
cpp_compiler: g++
- os: ubuntu-latest
c_compiler: clang
cpp_compiler: clang++
exclude:
- os: windows-latest
c_compiler: gcc
- os: windows-latest
c_compiler: clang
- os: ubuntu-latest
c_compiler: cl
- os: macos-latest
c_compiler: cc
cpp_compiler: c++
# - os: windows-latest
# c_compiler: cl
# cpp_compiler: cl
# - os: ubuntu-latest
# c_compiler: gcc
# cpp_compiler: g++
# - os: ubuntu-latest
# c_compiler: clang
# cpp_compiler: clang++
# exclude:
# - os: windows-latest
# c_compiler: gcc
# - os: windows-latest
# c_compiler: clang
# - os: ubuntu-latest
# c_compiler: cl

steps:
- uses: actions/checkout@v4
- name: Checkout
id: checkout
uses: actions/checkout@v4
with:
submodules: 'recursive'

- name: Install Homebrew (macOS only)
id: install-homebrew
if: contains(matrix.os,'macos')
run: |
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
- name: Install dependencies (macOS only)
id: install-dependencies
if: contains(matrix.os,'macos')
run: |
brew install boost libmapper

- name: Set reusable strings
# Turn repeated input strings (such as the build output directory) into step outputs. These step outputs can be used throughout the workflow file.
Expand All @@ -55,6 +75,7 @@ jobs:
- name: Configure CMake
# Configure CMake in a 'build' subdirectory. `CMAKE_BUILD_TYPE` is only required if you are using a single-configuration generator such as make.
# See https://cmake.org/cmake/help/latest/variable/CMAKE_BUILD_TYPE.html?highlight=cmake_build_type
id: configure
run: >
cmake -B ${{ steps.strings.outputs.build-output-dir }}
-DCMAKE_CXX_COMPILER=${{ matrix.cpp_compiler }}
Expand All @@ -65,10 +86,27 @@ jobs:

- name: Build
# Build your program with the given configuration. Note that --config is needed because the default Windows generator is a multi-config generator (Visual Studio generator).
run: cmake --build ${{ steps.strings.outputs.build-output-dir }} --config ${{ matrix.build_type }}
id: build
run: >
cmake --build ${{ steps.strings.outputs.build-output-dir }}
--config ${{ matrix.build_type }}
--target install

- name: Test
id: test
working-directory: ${{ steps.strings.outputs.build-output-dir }}
# Execute tests defined by the CMake configuration. Note that --build-config is needed because the default Windows generator is a multi-config generator (Visual Studio generator).
# See https://cmake.org/cmake/help/latest/manual/ctest.1.html for more detail
run: ctest --build-config ${{ matrix.build_type }}

- name: Shorten SHA
id: shorten-sha
run: |
echo "SHA_SHORT=$(git rev-parse --short HEAD)" >> $GITHUB_ENV

- name: Upload artifact
id: upload-artifact
uses: actions/upload-artifact@v7
with:
name: MapperUGen-${{ env.SHA_SHORT }}-${{matrix.os}}-${{matrix.build_type}}-${{matrix.c_compiler}}
path: build/MapperUGen/
2 changes: 1 addition & 1 deletion .gitmodules
Original file line number Diff line number Diff line change
@@ -1,3 +1,3 @@
[submodule "supercollider"]
path = supercollider
url = https://github.com/supercollider/supercollider.git
url = https://github.com/supercollider/supercollider/
12 changes: 11 additions & 1 deletion CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
set(FILENAME "Mapper.cpp") #specify the .cpp file here
cmake_minimum_required (VERSION 2.8)
cmake_minimum_required (VERSION 4.3)
get_filename_component(PROJECT ${FILENAME} NAME_WE) #automatically sets project name from the filename
# set(PROJECT "my_name") #alternatively set project name manually
message(STATUS "Project name is ${PROJECT}")
Expand Down Expand Up @@ -123,6 +123,16 @@ if(MINGW)
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -mstackrealign")
endif()

if(APPLE)
if(DEFINED ENV{HOMEBREW_PREFIX})
message(STATUS "Homebrew detected with prefix " $ENV{HOMEBREW_PREFIX})
include_directories(SYSTEM $ENV{HOMEBREW_PREFIX}/include)
link_directories(SYSTEM $ENV{HOMEBREW_PREFIX}/lib)
else()
message(STATUS "Homebrew not detected")
endif()
endif()

add_library(${PROJECT} MODULE ${FILENAME})
target_link_libraries(${PROJECT} ${MAPPER_LIB} ${Boost_libraries})

Expand Down
42 changes: 24 additions & 18 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,26 +1,32 @@
# MapperUGen

A SuperCollider UGen for using libmapper

## Installation
## Prerequisites

### Install libmapper

Please follow the [libmapper](https://github.com/libmapper/libmapper) documentation, unless your configuration is covered by specific cases below:

#### macOS with homebrew

- Install [Homebrew](https://brew.sh/)
- Install dependencies
```
brew install boost libmapper
```

## Installation from releases

* Install [SuperCollider](https://supercollider.github.io/)
* Build and install [libmapper](https://github.com/libmapper/libmapper)
* Unzip MapperUGen.zip from [releases](https://github.com/mathiasbredholt/MapperUGen/releases) into SuperCollider extensions folder (Platform.userExtensionDir)
* Unzip MapperUGen.zip from [releases](https://github.com/IDMIL/MapperUGen/releases) into SuperCollider extensions folder (Platform.userExtensionDir)

## Compilation from source

## Compile from source
* Build and install [libmapper](https://github.com/libmapper/libmapper)
### GNU/Linux
```
git clone https://github.com/mathiasbredholt/MapperUGen.git
cd MapperUGen
mkdir build && cd build
cmake -DSUPERNOVA=ON ..
cmake --build . --target install
```
### macOS/Windows
```
git clone --recursive https://github.com/mathiasbredholt/MapperUGen.git
git clone --recursive https://github.com/IDMIL/MapperUGen.git
cd MapperUGen
mkdir build && cd build
cmake -DSUPERNOVA=ON ..
cmake --build . --target install
mkdir -p build
cmake -B ./build -DSUPERNOVA=ON
cmake --build build --target install
```
2 changes: 1 addition & 1 deletion supercollider
Submodule supercollider updated 5018 files
Loading