reapack

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

README.md (4651B)


      1 # ReaPack: Package manager for REAPER
      2 
      3 [![Build status](https://ci.appveyor.com/api/projects/status/hq0g2nleele3pqrl/branch/master?svg=true)](https://ci.appveyor.com/project/cfillion/reapack/branch/master)
      4 [![Donate](https://img.shields.io/badge/donate-paypal-orange.svg)](https://www.paypal.com/cgi-bin/webscr?business=T3DEWBQJAV7WL&cmd=_donations&currency_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.