README.md (4651B)
1 # ReaPack: Package manager for REAPER 2 3 [](https://ci.appveyor.com/project/cfillion/reapack/branch/master) 4 [](https://www.paypal.com/cgi-bin/webscr?business=T3DEWBQJAV7WL&cmd=_donations¤cy_code=CAD&item_name=ReaPack%3A+Package+manager+for+REAPER) 5 6 Visit the [ReaPack website](https://reapack.com/) for ready-to-use binaries, 7 the user guide or the package upload tool. 8 9 ## Building from source 10 11 Clone the repository and submodules: 12 13 git clone --recursive --shallow-submodules https://github.com/cfillion/reapack.git 14 15 ### Prerequisites 16 17 Software requirements: 18 19 - [CMake](https://cmake.org/) 3.15 or newer 20 - C++17 compiler (MSVC on Windows) 21 - PHP (Linux and macOS only) 22 23 #### Linux 24 25 Install the following libraries (and development headers if your system provides 26 them separately): 27 28 - [Boost](https://www.boost.org/) (1.56 or later) 29 - [Catch2](https://github.com/catchorg/Catch2) (3.0 or later) 30 - [libcurl](https://curl.haxx.se/libcurl/) 31 - [libxml2](http://www.xmlsoft.org/) 32 - [OpenSSL](https://www.openssl.org/) or compatible 33 - [SQLite](https://www.sqlite.org/) 34 - [zlib](https://www.zlib.net/) 35 36 #### macOS 37 38 Install Boost and Catch2 using [Homebrew](https://brew.sh) (recommended). 39 The build tools can be installed using `xcode-select --install` or the Xcode IDE. 40 41 #### Windows 42 43 MSVC can be installed with the [Build Tools for Visual Studio]( 44 https://visualstudio.microsoft.com/thank-you-downloading-visual-studio/?sku=BuildTools) 45 or the Visual Studio IDE. 46 47 Use the x64 or x86 Native Tools Command Prompt for VS 20XX matching the target 48 architecture when configuring or building ReaPack. 49 50 Install [vcpkg](https://docs.microsoft.com/cpp/build/vcpkg) in any directory: 51 52 git clone https://github.com/Microsoft/vcpkg.git C:\path\to\vcpkg 53 54 Set `VCPKG_TARGET_TRIPLET` and `CMAKE_TOOLCHAIN_FILE` when creating the build 55 tree: 56 57 -DVCPKG_TARGET_TRIPLET=%PLATFORM%-windows-static 58 -DCMAKE_TOOLCHAIN_FILE=C:\path\to\vcpkg\scripts\buildsystems\vcpkg.cmake 59 60 ### Build configuration 61 62 Create and configure a new build tree inside of the `build` directory. 63 64 cmake -B build -DCMAKE_BUILD_TYPE=Debug 65 66 Using the [Ninja](https://ninja-build.org/) generator is recommended for 67 best performance: 68 69 cmake -B build -G Ninja -DCMAKE_BUILD_TYPE=Debug 70 71 Alternatively, multiple build trees can be created if desired: 72 73 cmake -B build/debug -DCMAKE_BUILD_TYPE=Debug 74 cmake -B build/release -DCMAKE_BUILD_TYPE=Release 75 cmake -B build/portable -DCMAKE_BUILD_TYPE=RelWithDebInfo \ 76 -DCMAKE_INSTALL_PREFIX=/path/to/reaper/portable/install 77 78 ### Compile and install 79 80 To compile a build tree: 81 82 cmake --build build 83 84 To install ReaPack into your REAPER installation after building: 85 86 cmake --build build --target install 87 88 The following targets are available: 89 90 - **`all`**: Build ReaPack (default target) 91 - **`clean`**: Delete all generated files 92 (can be run before building another target using `--clean-first`) 93 - **`install`**: Build and install ReaPack into REAPER's resource directory 94 (as specified in `CMAKE_INSTALL_PREFIX`) 95 - **`test`**: Build and run the test suite 96 97 ### Cross-compilation 98 99 #### Linux 100 101 `g++-$TOOLCHAIN_PREFIX` will be used when compiling for architectures other than 102 i686. Libraries for the target architecture are expected to be in 103 `/usr/{include,lib}/$TOOLCHAIN_PREFIX`, `/usr/$TOOLCHAIN_PREFIX/{include,lib}` 104 or `/usr/lib32`. 105 106 ARCH=i686 TOOLCHAIN_PREFIX=i386-linux-gnu \ 107 cmake -B build/i686 -DCMAKE_TOOLCHAIN_FILE=cmake/linux-cross.cmake 108 109 ARCH=armv7l TOOLCHAIN_PREFIX=arm-linux-gnueabihf \ 110 cmake -B build/arm32 -DCMAKE_TOOLCHAIN_FILE=cmake/linux-cross.cmake 111 112 ARCH=aarch64 TOOLCHAIN_PREFIX=aarch64-linux-gnu \ 113 cmake -B build/arm64 -DCMAKE_TOOLCHAIN_FILE=cmake/linux-cross.cmake 114 115 #### macOS 116 117 macOS 10.14 or older, Xcode 9 and the latest Clang (`brew install llvm`) are 118 required for producing 32-bit builds. 119 120 cmake -B build \ 121 -DCMAKE_BUILD_TYPE=Release \ 122 -DCMAKE_OSX_ARCHITECTURES=i386 \ 123 -DCMAKE_OSX_DEPLOYMENT_TARGET=10.9 \ 124 -DCMAKE_TOOLCHAIN_FILE=cmake/brew-llvm.cmake 125 126 ## Support and feedback 127 128 Ask any ReaPack-releated questions in the 129 [ReaPack forum thread](https://forum.cockos.com/showthread.php?t=177978). 130 Questions related to development or packaging can be asked in the 131 [development thread](https://forum.cockos.com/showthread.php?t=169127). 132 133 Report bugs or request features in the 134 [issue tracker](https://github.com/cfillion/reapack/issues). 135 Send code contributions as pull requests.