Skip to content

Building the SWS Extension

Jeff0S edited this page Aug 16, 2014 · 32 revisions

##Windows The project files are in Visual Studio 2013 format. MSVC 2008 format is also provided for convenience, but these project files might not be maintained anymore in the future...

The build environment is setup to be portable. All you need to do is set a Windows REAPER_DIR equal to the path to your REAPER executable. Also set REAPER64_DIR to REAPER x64 if you plan to build/debug in x64. Make sure to generate the API header file from REAPER too (see below).

##OSX The project is built using XCode v3.1. Pretty standard XCode project. Use Debug mode for debug, release for universal binary build. There's a post-build script setup to copy the dylib from the sws_osx directory to the ~/Library/Application Support/REAPER/UserPlugins directory.

##WDL WDL from Cockos http://www.cockos.com/wdl/ needs to be installed on your system.

##File structure notes

  • /<development root>/ - A directory of your choosing

  • /<development root>/WDL/ - NEEDED See WDL section above

  • /<development root>/sws/ - Put the content of the source tree here. You can use a different name if you do not plan to build/release the extension ("sws" is required to generate LangPack files).

  • /<development root>/sws/reaper/ - REAPER SDK interface / files. You do not need anything from the SDK since the only file you need (reaper_plugin.h) is included/updated in the SWS source tree with permission.

  • /<development root>/sws/reaper/reaper_plugin.h - This file is copyright Cockos and is only included here for convenience. The original location of this file is http://www.reaper.fm/sdk/plugin/plugin.php. I'll keep this file up to date in the source tree.

  • /<development root>/sws/reaper/sws_rpf_wrapper.h - This file wraps the automatically generated file reaper_plugin_functions.h. You need to generate the file by running REAPER's action "API: Write C++ API functions header". Make sure the extension is not already installed though (it would exports some of its own functions there too). Then, if your REAPER is in a different directory, you'll need to customize this file to suit.

  • /<development root>/sws/SnM/ - Code written by Jeffos, actions with S&M in the title.

  • /<development root>/sws/Fingers/ - Code contributed by Fingers, actions with FNG in the title.

  • /<development root>/sws/Breeder/ - Code contributed by Breeder, actions with BR in the title.

  • etc

  • /<development root>/sws/AutoRender/ - Autorending utility, ported from AHK by Shane.

  • /<development root>/sws/Misc/ - General actions written by Tim.

  • /<development root>/sws/ + Color, Console, Freeze, MarkerActions, MarkerList, Snapshots, TrackList - These contain code for the functionality with the same name, written by Tim.

  • /<development root>/sws/ObjectState/ - Classes for parsing the text from REAPER GetObjectState() function. Quite incomplete at the moment!

  • /<development root>/sws/Utility/ - General utility classes