Skip to content

Commit

Permalink
Initial commit
Browse files Browse the repository at this point in the history
  • Loading branch information
robbielyman committed Oct 12, 2022
0 parents commit da1c26f
Show file tree
Hide file tree
Showing 14 changed files with 1,210 additions and 0 deletions.
49 changes: 49 additions & 0 deletions .appveyor.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,49 @@
version: '{build}'

clone_depth: 5

# https://www.appveyor.com/docs/build-environment/#build-worker-images
image: Visual Studio 2017

test: off

environment:
CMAKE_CONFIGURATION: Release

matrix:
- CMAKE_GENERATOR: "Visual Studio 15 2017"
ARCH: "x86"
# https://www.appveyor.com/docs/lang/cpp/
VCVARS_SCRIPT: "C:/Program Files (x86)/Microsoft Visual Studio/2017/Community/VC/Auxiliary/Build/vcvars32.bat"

- CMAKE_GENERATOR: "Visual Studio 15 2017 Win64"
ARCH: "x64"
VCVARS_SCRIPT: "C:/Program Files (x86)/Microsoft Visual Studio/2017/Community/VC/Auxiliary/Build/vcvars64.bat"

install:
# Load command-line tools (lib.exe)
- cmd: call "%VCVARS_SCRIPT%"

- cmd: echo "Get SuperCollider"
- cmd: git clone --recursive --depth 1 https://github.com/supercollider/supercollider ../supercollider

before_build:
- mkdir build
- cd build

build_script:
- cmake -G "%CMAKE_GENERATOR%" -DSC_PATH=../supercollider -DCMAKE_INSTALL_PREFIX=_install ..
- cmake --build . --target install --config %CMAKE_CONFIGURATION%

artifacts:
- path: build\_install
name: FormantTriPTR-windows-$(ARCH)-$(APPVEYOR_REPO_TAG_NAME)

# deploy:
# - provider: GitHub
# description: PTR triangle wave oscillator with variable slope and formant - Release $(APPVEYOR_REPO_TAG_NAME)
# artifact: FormantTriPTR-windows-$(ARCH)-$(APPVEYOR_REPO_TAG_NAME)
# auth_token:
# secure: YOUR_TOKEN_HERE
# on:
# appveyor_repo_tag: true
79 changes: 79 additions & 0 deletions .github/workflows/pluginbuild.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,79 @@
on:
push:
tags:
- 'v*' # Push events to matching v*, i.e. v1.0, v20.15.10

jobs:
build:

runs-on: ${{ matrix.os }}
name: ${{ matrix.name }}
strategy:
matrix:
include:

- name: macOS
os: macos-10.15

- name: Linux-x64
os: ubuntu-18.04

- name: Windows-x64
os: windows-2019

env:
SC_PATH: ${{ github.workspace }}/supercollider
BUILD_PATH: ${{ github.workspace }}/build
INSTALL_PATH: ${{ github.workspace }}/build/Install
ARCHIVE_NAME: FormantTriPTR-${{ matrix.name }}.zip
steps:
- name: Checkout FormantTriPTR
uses: actions/checkout@v2

- name: Checkout SuperCollider
uses: actions/checkout@v2
with:
repository: supercollider/supercollider
path: ${{ env.SC_PATH }}
ref: main

# Create a separate build directory
# We'll use this as our working directory for subsequent commands
- name: Create Build Environment
shell: bash
run: cmake -E make_directory $BUILD_PATH

- name: Configure CMake
shell: bash
working-directory: ${{ env.BUILD_PATH }}
run: cmake .. -DCMAKE_BUILD_TYPE='Release' -DSC_PATH="$SC_PATH" -DCMAKE_INSTALL_PREFIX="$INSTALL_PATH"

- name: Build
shell: bash
working-directory: ${{ env.BUILD_PATH }}
env:
CMAKE_BUILD_PARALLEL_LEVEL: 4
run: cmake --build . --config "Release" --target install

# Gather all files in a zip
- name: Zip up build (Unix)
if: runner.os != 'Windows'
shell: bash
working-directory: ${{ env.INSTALL_PATH }}
run: zip -r "$ARCHIVE_NAME" "FormantTriPTR"

# Gather all files in a zip
- name: Zip up build (Windows)
if: runner.os == 'Windows'
shell: bash
working-directory: ${{ env.INSTALL_PATH }}
run: 7z a "$ARCHIVE_NAME" -tzip "FormantTriPTR"

- name: Upload binaries to release
uses: svenstaro/upload-release-action@v2
with:
repo_token: ${{ secrets.GITHUB_TOKEN }}
file: ${{ env.INSTALL_PATH }}/${{ env.ARCHIVE_NAME }}
prerelease: true
body: ""
tag: ${{ github.ref }}
3 changes: 3 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
.vimrc

build*
35 changes: 35 additions & 0 deletions .travis.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
language: cpp

matrix:
include:
- os: linux
sudo: required
dist: trusty
- os: osx

before_install:
- git clone --recursive --depth 1 https://github.com/supercollider/supercollider.git ../supercollider

before_script:
- mkdir build
- cd build
- cmake -DCMAKE_INSTALL_PREFIX=_install -DCMAKE_BUILD_TYPE=Release -DCMAKE_PATH=../supercollider ..

script:
- cmake --build . --target install

before_deploy:
- mkdir -p $HOME/artifacts
- cd $TRAVIS_BUILD_DIR/build/_install
- zip -r --symlinks $HOME/artifacts/FormantTriPTR-$TRAVIS_OS_NAME-$TRAVIS_TAG.zip *

deploy:
# github releases - only tags
- provider: releases
api_key: $GITHUB_TOKEN
file: $HOME/artifacts/FormantTriPTR-$TRAVIS_OS_NAME-$TRAVIS_TAG.zip
skip_cleanup: true
on:
condition: -n "$GITHUB_TOKEN"
tags: true
all_branches: true
93 changes: 93 additions & 0 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,93 @@
####################################################################################################
# CMakeLists file for FormantTriPTR
# Generated by Rylee Alanza Lyman
# 2022-10-11
####################################################################################################

####################################################################################################
# basic project config
cmake_minimum_required(VERSION 3.12)
set(project_name "FormantTriPTR")
set(CMAKE_MODULE_PATH ${CMAKE_SOURCE_DIR}/cmake_modules ${CMAKE_MODULE_PATH})
set(CMAKE_CXX_STANDARD 17)

####################################################################################################
# load modules
include(SuperColliderServerPlugin RESULT_VARIABLE server_plugin_found)
if(NOT server_plugin_found)
message(FATAL_ERROR "Could not find server plugin functions module")
endif()

include(SuperColliderCompilerConfig RESULT_VARIABLE compiler_config_found)
if(NOT compiler_config_found)
message(FATAL_ERROR "Could not find compiler config module")
endif()

# Windows - puts redistributable DLLs in install directory
include(InstallRequiredSystemLibraries)

sc_check_sc_path("${SC_PATH}")
message(STATUS "Found SuperCollider: ${SC_PATH}")
set(SC_PATH "${SC_PATH}" CACHE PATH
"Path to SuperCollider source. Relative paths are treated as relative to this script" FORCE)

include("${SC_PATH}/SCVersion.txt")
message(STATUS "Building plugins for SuperCollider version: ${SC_VERSION}")

# set project here to avoid SCVersion.txt clobbering our version info
project(${project_name})
sc_do_initial_compiler_config() # do after setting project so compiler ID is available

if(CMAKE_INSTALL_PREFIX_INITIALIZED_TO_DEFAULT OR NOT CMAKE_INSTALL_PREFIX)
message(WARNING "No install prefix provided, defaulting to $BUILD_DIR/install")
set(CMAKE_INSTALL_PREFIX "${CMAKE_BINARY_DIR}/install" CACHE PATH "Install prefix" FORCE)
endif()

message(STATUS "Install directory set to: ${CMAKE_INSTALL_PREFIX}")

####################################################################################################
# options
option(SUPERNOVA "Build plugins for supernova" ON)
option(SCSYNTH "Build plugins for scsynth" ON)
option(NATIVE "Optimize for native architecture" OFF)
option(STRICT "Use strict warning flags" OFF)
option(NOVA_SIMD "Build plugins with nova-simd support." ON)

####################################################################################################
# include libraries

if (NOVA_SIMD)
add_definitions(-DNOVA_SIMD)
include_directories(${SC_PATH}/external_libraries/nova-simd)
endif()

####################################################################################################
# Begin target FormantTriPTR

set(FormantTriPTR_cpp_files
plugins/FormantTriPTR/FormantTriPTR.cpp
plugins/FormantTriPTR/FormantTriPTR.hpp
)
set(FormantTriPTR_sc_files
plugins/FormantTriPTR/FormantTriPTR.sc
)
set(FormantTriPTR_schelp_files
plugins/FormantTriPTR/FormantTriPTR.schelp
)

sc_add_server_plugin(
"FormantTriPTR/FormantTriPTR" # desination directory
"FormantTriPTR" # target name
"${FormantTriPTR_cpp_files}"
"${FormantTriPTR_sc_files}"
"${FormantTriPTR_schelp_files}"
)

# End target FormantTriPTR
####################################################################################################

####################################################################################################
# END PLUGIN TARGET DEFINITION
####################################################################################################

message(STATUS "Generating plugin targets done")
Loading

0 comments on commit da1c26f

Please sign in to comment.