reapack

Package manager for REAPER
Log | Files | Refs | Submodules | README | LICENSE

commit 05754ae6fe9194b57c37de38ee3a11a222f62dc2
parent 2479ab6ee9427e7f702375e2f8b204bda60d51db
Author: cfillion <cfillion@users.noreply.github.com>
Date:   Mon, 30 Jul 2018 13:47:50 -0400

remove rake, run tup directly and optionally make

Diffstat:
AMakefile | 12++++++++++++
MREADME.md | 23++++++++++-------------
DRakefile | 26--------------------------
3 files changed, 22 insertions(+), 39 deletions(-)

diff --git a/Makefile b/Makefile @@ -0,0 +1,12 @@ +.PHONY: all +all: + $(error Run 'tup' to build or 'make test' instead) + +.PHONY: prepare +prepare: + @ruby prepare.rb src/*.{{h,c}pp,mm} + +.PHONY: test +test: + -x64/bin/test + -x86/bin/test diff --git a/README.md b/README.md @@ -8,18 +8,18 @@ and the user guide. ## Compilation The following section describes how to build ReaPack on your computer. -The build system uses Rake and is based on [Tup](http://gittup.org/tup/). +The build system is based on [Tup](http://gittup.org/tup/). A modern compiler (gcc/clang/msvc) with C++17 support is needed. -By default the `rake` command triggers both the 64-bit and 32-bit builds and -runs the test suite. Use `rake 'default[x64]'` or `rake 'default[x86]'` -to select a single architecture. +By default the `tup` command triggers both the 64-bit and 32-bit builds. +Use `tup x64` or `tup x86` to select a single architecture. Run the test suite +with `make test`. The 64-bit and 32-bit binaries (such as `reaper_reapack64.so`) are created in `x64/bin` and `x86/bin` respectively. Copy or link the desired one into `<REAPER resource path>/UserPlugins` and restart REAPER to use it. -Compiling ReaPack requires several external libraries and files depending +Compiling ReaPack requires a few external libraries and files depending on the operating system. Put the REAPER extension SDK into the `vendor` directory: @@ -33,11 +33,8 @@ Clone [WDL](http://www.cockos.com/wdl/): `git clone https://github.com/justinfra ### Linux -Install GCC/G++ (multilib version if building for both 64-bit and 32-bit), -tup, Ruby and PHP. - -Install libraries and development files for Boost (1.56 or newer), Catch2, -libcurl (7.52 or newer), SQLite3 and zlib matching the target architecture(s). +Install GCC/G++, tup, PHP and the development files for Boost (1.56 or later), +Catch2, libcurl (7.52 or later), SQLite3 and zlib matching the target architecture(s). #### Custom compiler @@ -75,8 +72,8 @@ Apply these patches to WDL: ### Windows -Install [Ruby for Windows](http://rubyinstaller.org/), -tup ([explicit-variant](http://gittup.org/tup/win32/tup-explicit-variant-v0.7.3-45-gcf6a829.zip) branch, see [this thread](https://groups.google.com/d/topic/tup-users/UNUSE15PQdA/discussion)) +Install tup ([explicit-variant](http://gittup.org/tup/win32/tup-explicit-variant-v0.7.3-45-gcf6a829.zip) +branch, see [this thread](https://groups.google.com/d/topic/tup-users/UNUSE15PQdA/discussion)) and [Visual Studio 2017 with C++ support](https://www.visualstudio.com/vs/community/). Clone [vcpkg](https://github.com/Microsoft/vcpkg) into `vendor` and install @@ -90,7 +87,7 @@ the build dependencies: vendor\vcpkg\vcpkg install --triplet x64-windows-static %vcpkg-deps% vendor\vcpkg\vcpkg install --triplet x86-windows-static %vcpkg-deps% -Run the build commands using the Developer Command Prompt for VS 2017. +Always run `tup` using the Developer Command Prompt for VS 2017. ## Support and feedback diff --git a/Rakefile b/Rakefile @@ -1,26 +0,0 @@ -task :default => [:prepare, :build, :test] - -desc 'Prepare the source code for building using prepare.rb' -task :prepare do - sources = FileList['src/*.{{h,c}pp,mm}'] - ruby 'prepare.rb', *sources, verbose: false -end - -desc 'Build ReaPack (by default both 64-bit and 32-bit builds are generated)' -task :build, [:variants] do |_, args| - vars = Array(args[:variants]) + args.extras - vars.reject &:empty? - - if Gem.win_platform? && ENV['VCINSTALLDIR'].nil? - raise "VCINSTALLDIR is unset. Is this Developer Command Prompt for Visual Studio?" - end - - sh 'tup', *vars, verbose: false -end - -desc 'Run the test suite for all architectures' -task :test do - FileList['x{86,64}/bin/test{,.exe}'].each {|exe| - sh exe - } -end