Skip to content

Sinnerboy89/vibrary

 
 

Repository files navigation

Developer Startup

Get the project

Clone the project and initialize the submodules in 3rdParty.

git clone --recurse-submodules https://github.com/artandlogic/vibrary.git

Or if you already have cloned the project

git submodule update --init

Get the JUCE framework

The JUCE repository is not kept as a submodule, so please use your own installation. If you are not already set up, you can follow the instructions here.

After installation, build the Projucer, set its global paths, and you should be able to export the project files.

Configure the Server

Instructions here

MacOS

Prepare to build Tensorflow C++ libraries

  1. Install homebrew if you don't already have it. Instructions are here

  2. Install Bazel for TensorFlow build

    The version of Tensorflow used requires Bazel 0.24.1, a version homebrew no longer has available. Install it manually.

    Binary builds are available here

    macOS 10.15 will prevent bazel-real from opening because it isn't signed. You can work around this by downloading with curl instead of the browser. The following downloads the installer version.

     curl -L -O https://github.com/bazelbuild/bazel/releases/download/0.24.1/bazel-0.24.1-installer-darwin-x86_64.sh
     . bazel-0.24.1-installer-darwin-x86_64.sh
    
  3. Install Java 8

     brew tap homebrew/cask
     brew tap AdoptOpenJDK/openjdk
     brew cask install adoptopenjdk/openjdk/adoptopenjdk8
    
  4. Necessary Python support for Bazel builds

     pip install future
    

Install other dependencies

Note that libarchive will not be linked by homebrew because macOS includes its own version. We need this specific build to handle the Linux server's zip archives. See the Projucer other linker flags for the location of this library.

WARNING: The PostBuild script(s) in the Tools directory and Vibrary.jucer file have references to specific versions of these libraries and may need to be udpated after the install or brew update.

brew install libssh libarchive

(Optional) Build Tensorflow

The PreBuild scripts will check if TensorFlow needs to be built, but to manually build it yourself:

Tools/Helpers/BuildTensorFlowMac.sh

(Optional) Build cnpy

The PreBuild scripts will check if Cnpy needs to be build, but to manually build it yourself:

Tools/Helpers/BuildCnpy.sh

Build Vibrary

Run Tools/BuildMac.sh, which will perform multiple steps. Manual steps are outlined below. By default the BuildMac.sh script shows little output. To see the progress of the BuildMac.sh script, run (in another terminal window)

tail -f build.log

Currently there is only an Xcode exporter configured.

Manual build steps:

  1. Open Incubator1.jucer with Projucer
  2. Export the project files from Projucer (command-shift-L)
  3. Build with Xcode.

Or to build and create an archive of the app, giving it a specific version

Tools/BuildMac.sh <version> replacing version with the version number of the release. If no version is given the current version is bumped up one.

Linux (still under construction)

Create a virtual environment

These instructions assume a Python environment based on pip & virtualenv on an Ubuntu Linux distribution. Start a new environment via

cd vibrary
python3 -m venv env
source env/bin/activate
pip install --upgrade pip

Install Tensorflow

  1. Install Bazel

    Binary builds are available here. A basic Linux download & build can proceed as follows:

    curl -LO https://github.com/bazelbuild/bazel/releases/download/0.24.1/bazel-0.24.1-installer-linux-x86_64.sh
    chmod u+x bazel-0.24.1-installer-linux-x86_64.sh

    Then install either system-wide via

    sudo ./bazel-0.24.1-installer-linux-x86_64.sh

    or as a user-specific installation via

    ./bazel-0.24.1-installer-linux-x86_64.sh --user

  2. Build Tensorflow via Bazel

Tools/Helpers/BuildTensorFlowLinux.sh

This might take a few attempts - the parallel nature of Bazel is nice, but not the most stable. If you encounter errors relating to "gettid" declaration conflicts, these are likely to do with a very recent version of gcc or clang being used. Hints on a solution can be found here: tensorflow/tensorflow#34291 (comment) which references this comment: https://gist.github.com/kmhofmann/e368a2ebba05f807fa1a90b3bf9a1e03#gistcomment-3323371

  1. Install Java 8.

    sudo apt update
    sudo apt install openjdk-8-jre-headless
  2. Necessary Python support for Bazel builds

    pip install future

Install/build other dependencies

sudo apt install libssh-dev libarchive-dev
Tools/Helpers/BuildCnpy.sh

Build Vibrary

Run the Projucer JUCE app, choose "Open Existing Project" and select the Vibrary.jucer file in the vibrary directory, and "Save" the project (Ctrl+s) to prompt Projucer to output the Makefile needed by make to build vibrary.

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • C++ 98.0%
  • Shell 1.3%
  • Python 0.7%