I am very excited to announce the open source release of re-cmake, the CMake based build framework for building Rack Extensions. Here are the main features:
- native support in IDEs handling CMake directly, like CLion or Visual Studio Code (with the CMake extension)
- project generation for most of the generators supported by CMake, like XCode for macOS, Visual Studio for Windows, Unix Makefiles, and many more
- completely isolated build (no polluting the source tree)
- much faster builds (due to proper dependency management, no need to recompile everything all the time)
- proper integration with IDEs for debugging (for example starting Recon from CLion in debug mode and putting a breakpoint in the source tree)
- native toolchain builds allowing for non sandboxed builds for easy development (use of std::string, std::cout, etc...)
- easy to use script (re.sh for macOS, re.bat for Windows) to invoke all the various phases of the build so no need to remember long and complicated syntax
1) documentation for the framework
2) a project that can easily be cloned to start your own rack extension: it contains all the boilerplate code and file structure and because it uses the CMake build framework, you only need to change the info.lua file with your own names (and CMakeLists.txt for the project name and this is where you add your own graphics and source code) and you are good to go..
Here is a screenshot showing a few things:
- The project loaded in CLion with all the targets available
- The source code of the "main" method (does nothing / empty)
- The result of the native-install target run in CLion which has compiled and installed the plugin in its location so that Recon can find it
- A shell showing the command that can be run on the command line to do the same outside the IDE
- The plugin loaded in Recon
Finally I wanted to thank David Antliff from Pitchblende who provided much appreciated help and feedback during the development process.
Feel free to contact me personally or use the ticket/issue on github for feedback, bugs, etc...