Skip to content

Documenting Reaper stuff. #259

Documenting Reaper stuff.

Documenting Reaper stuff. #259

Workflow file for this run

name: CMake
on:
push:
branches:
- master
- internal_cppsound
pull_request:
branches:
- master
- develop
env:
# Customize the CMake build type here (Release, Debug, RelWithDebInfo, etc.)
BUILD_TYPE: RelWithDebInfo
# This will change for later macOS versions, to /opt/homebrew.
HOMEBREW_PREFIX: /usr/local
jobs:
build:
runs-on: ${{ matrix.config.os }}
strategy:
fail-fast: false
matrix:
config:
- name: "macOS Latest Clang"
os: "macos-14"
cc: "clang"
cxx: "clang++"
- name: "Ubuntu Latest GCC"
os: ubuntu-latest
cc: "gcc"
cxx: "g++"
#~ - name: "Windows Latest MSVC"
#~ os: windows-latest
#~ cc: "cl"
#~ cxx: "cl"
#~ environment_script: "C:/Program Files/Microsoft Visual Studio/2022/Enterprise/VC/Auxiliary/Build/vcvars64.bat"
steps:
- name: Check out repository
uses: actions/checkout@v3
- name: Install boost on macOS
uses: MarkusJx/install-boost@v2.4.5
id: install-boost-macos
if: runner.os == 'macOS'
with:
# REQUIRED: Specify the required boost version
# A list of supported versions can be found here:
# https://github.com/actions/boost-versions/blob/main/versions-manifest.json
boost_version: 1.79.0
# OPTIONAL: Specify a platform version
platform_version: 11
# OPTIONAL: Specify a custom install location
# Should be $GITHUB_WORKSPACE
# boost_install_dir: ${{ env.GITHUB_WORKSPACE }}
# OPTIONAL: Specify a toolset
toolset: clang
- name: Install boost on Linux
uses: MarkusJx/install-boost@v2.4.5
id: install-boost-linux
if: runner.os == 'Linux'
with:
# REQUIRED: Specify the required boost version
# A list of supported versions can be found here:
# https://github.com/actions/boost-versions/blob/main/versions-manifest.json
boost_version: 1.79.0
# OPTIONAL: Specify a platform version
platform_version: 20.04
# OPTIONAL: Specify a custom install location
# boost_install_dir: /home/runner/work/csound-ac/csound-ac
# OPTIONAL: Specify a toolset
toolset: gcc
- name: Install boost on Windows
uses: MarkusJx/install-boost@v2.4.5
id: install-boost-windows
if: runner.os == 'Windows'
with:
# REQUIRED: Specify the required boost version
# A list of supported versions can be found here:
# https://github.com/actions/boost-versions/blob/main/versions-manifest.json
boost_version: 1.79.0
# OPTIONAL: Specify a platform version
platform_version: 2022
# OPTIONAL: Specify a custom install location
# boost_install_dir: D:\a\csound-ac\csound-ac
# OPTIONAL: Specify a toolset
toolset: msvc
link: shared
- name: Build on Mac OS
# Most homebrew packages can be found in ${HOMEBREW_PREFIX}/opt.
if: runner.os == 'macOS'
run: |
echo "Installing tools..."
brew update
brew install python@3.11 --overwrite
brew upgrade
brew install graphviz
brew install doxygen
brew install texlive
echo "Installing dependencies..."
brew install opencv
brew install csound
ls -ll
echo "Updating all git submodules..."
git submodule update --init --recursive
git submodule status --recursive
echo "Environment:"
env
echo "Finished updating all git submodules."
echo "brew list csound:"
brew list csound
echo "brew list libsndfile:"
brew list libsndfile
# Configure CMake in a 'build' subdirectory. `CMAKE_BUILD_TYPE` is only required if you are using a single-configuration generator such as make.
cmake -B ${{github.workspace}}/build -DCMAKE_BUILD_TYPE=${{env.BUILD_TYPE}} -DBOOST_ROOT=${{ steps.install-boost-macos.outputs.BOOST_ROOT }} -DCSOUND_INCLUDE_DIR=/usr/local/opt/csound/include -DCSOUND_LIBRARY=/usr/local/opt/csound/Frameworks/CsoundLib64.framework -DLIBSNDFILE_INCLUDE_DIR=/usr/local/Cellar/libsndfile/1.1.0/include -DLIBSNDFILE_LIBRARY=/usr/local/opt/libsndfile/lib/libsndfile.dylib -DBOOST_HAS_UNISTD_H=0
# Build with CMake.
cmake --build ${{github.workspace}}/build --config ${{env.BUILD_TYPE}}
echo "Documenting..."
cd ${{github.workspace}}/doc
doxygen
cd ..
echo "Packaging..."
cd build
pwd
sudo cpack -V -G ZIP
ls -ll
- name: Build on Linux
if: runner.os == 'Linux'
run: |
echo "Installing tools..."
sudo apt-get update
sudo apt-get install graphviz
sudo apt-get install doxygen
sudo apt-get install texlive
echo "Installing dependencies..."
sudo apt-get install libopencv-dev
sudo apt-get install libsndfile1-dev
sudo apt-get install libcsound64-dev
sudo apt-get install libcsnd6-6.0v5
sudo apt-get install libcsnd-dev
ls -ll
echo "Environment:"
env
echo "Trying to find csdl.h..."
#find /opt/runner . -name "csdl.h" -ls 2>/dev/null
find /home/runner . -name "csdl.h" -ls 2>/dev/null
find /usr . -name "csdl.h" -ls 2>/dev/null
echo "Trying to find csnd6 library..."
#find /opt/runner . -name "*csnd*" -ls 2>/dev/null
find /home/runner . -name "*csnd*" -ls 2>/dev/null
find /usr . -name "*csnd*" -ls 2>/dev/null
echo "Trying to find all CMake package config files..."
find /home/runner . -name "*onfig.cmake" -ls 2>/dev/null
find /usr . -name "*onfig.cmake" -ls 2>/dev/null
echo "Updating all git submodules..."
git submodule update --init --recursive
git submodule status --recursive
find /usr . -name "*csnd*" -ls 2>/dev/null
echo "Finished updating all git submodules."
# Configure CMake in a 'build' subdirectory. `CMAKE_BUILD_TYPE` is only required if you are using a single-configuration generator such as make.
cmake -B ${{github.workspace}}/build -Wno-dev -DCMAKE_PREFIX_PATH=/usr/local:/usr -DCMAKE_BUILD_TYPE=${{env.BUILD_TYPE}} -DBOOST_ROOT=${{ steps.install-boost-linux.outputs.BOOST_ROOT }} -DCSND6_LIBRARY=/usr/lib/libcsnd6.so.6.0
# Build with CMake.
cmake --build ${{github.workspace}}/build --config ${{env.BUILD_TYPE}}
echo "Documenting..."
cd ${{github.workspace}}/doc
doxygen
cd ..
echo "Packaging..."
cd build
pwd
sudo cpack -V -G ZIP
ls -ll
- name: Build on Windows
if: runner.os == 'Windows'
run: |
echo "Installing tools..."
choco install wget -y
choco install graphviz -y
choco install doxygen -y
echo "Installing dependencies..."
choco install opencv -y
choco install libsndfile -y
echo "Refreshing env..."
refreshenv
echo "Current env..."
env
echo "dir..."
dir "${{github.workspace}}"
#ls -r "C:\tools"
echo "info opencv..."
choco info opencv
echo "info libsndfile..."
choco info libsndfile
#ls -r "C:\Program Files\libsndfile"
# The Windows installer doesn't seem to do anything on the Windows
# GitHub runner, so we download a consistent set of binaries and
# headers from the Csound repository.
echo "Downloading Csound binaries..."
wget -v https://github.com/csound/csound/releases/download/6.17.0/csound-6.17.0-windows-x64-binaries.zip
unzip csound-6.17.0-windows-x64-binaries.zip -dCsound6
wget -v https://github.com/csound/csound/archive/refs/tags/6.17.0.zip
unzip 6.17.0.zip -dcsound
refreshenv
ls -r Csound6
ls -r csound
echo "Current environment:"
env
echo "Current PATH:"
echo "${PATH}"
pwd
refreshenv
echo "Updating all git submodules..."
git submodule update --init --recursive
git submodule status --recursive
echo "Finished updating all git submodules."
# Configure CMake in a 'build' subdirectory. `CMAKE_BUILD_TYPE` is only required if you are using a single-configuration generator such as make.
cmake -B ${{github.workspace}}/build -DCMAKE_BUILD_TYPE=${{env.BUILD_TYPE}} -DBOOST_ROOT=${{ steps.install-boost-windows.outputs.BOOST_ROOT }} -DCSOUND_INCLUDE_DIR=${{github.workspace}}/Csound6/include -DCSOUND_LIBRARY=${{github.workspace}}/Csound6/build/Release/csound64.lib -DLIBSNDFILE_LIBRARY="C:\Program Files\libsndfile\lib\sndfile.lib" -DCSND6_LIBRARY=${{github.workspace}}/Csound6/build/Release/csnd6.dll -DOpenCV_DIR="C:\tools\opencv\build" -DCSOUND_SOURCE_HOME="${{github.workspace}}/csound/csound-6.17.0" -DLIBSNDFILE_INCLUDE_DIR="C:\Program Files\libsndfile\include" -DUNISTD_WIN32_INCLUDE_DIR="${{github.workspace}}/unistd_win32"
# Build with CMake.
cmake --build ${{github.workspace}}/build --config ${{env.BUILD_TYPE}}
# dir ${{github.workspace}}/build/Release
echo "Documenting..."
cd ${{github.workspace}}/doc
doxygen
cd ..
echo "Packaging..."
cd build
pwd
cpack -V -G TGZ
dir
- uses: "marvinpinto/action-automatic-releases@latest"
if: runner.os == 'macOS'
with:
repo_token: "${{ secrets.GITHUB_TOKEN }}"
automatic_release_tag: "macos-latest"
prerelease: true
title: "Mac OS Development Release"
files: |
LICENSE
README.md
${{github.workspace}}/build/*.zip
- uses: "marvinpinto/action-automatic-releases@latest"
if: runner.os == 'Linux'
with:
repo_token: "${{ secrets.GITHUB_TOKEN }}"
automatic_release_tag: "linux-latest"
prerelease: true
title: "Linux Development Release"
files: |
LICENSE
README.md
${{github.workspace}}/build/*.zip
- uses: "marvinpinto/action-automatic-releases@latest"
if: runner.os == 'Windows'
with:
repo_token: "${{ secrets.GITHUB_TOKEN }}"
automatic_release_tag: "windows-latest"
prerelease: true
title: "Windows Development Release"
files: |
LICENSE
README.md
build/*.zip