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
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.
Instructions here
-
Install homebrew if you don't already have it. Instructions are here
-
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 withcurl
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
-
Install Java 8
brew tap homebrew/cask brew tap AdoptOpenJDK/openjdk brew cask install adoptopenjdk/openjdk/adoptopenjdk8
-
Necessary Python support for Bazel builds
pip install future
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
The PreBuild scripts will check if TensorFlow needs to be built, but to manually build it yourself:
Tools/Helpers/BuildTensorFlowMac.sh
The PreBuild scripts will check if Cnpy needs to be build, but to manually build it yourself:
Tools/Helpers/BuildCnpy.sh
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:
- Open Incubator1.jucer with Projucer
- Export the project files from Projucer (
command-shift-L
) - 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.
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 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
-
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
-
Install Java 8.
sudo apt update sudo apt install openjdk-8-jre-headless
-
Necessary Python support for Bazel builds
pip install future
sudo apt install libssh-dev libarchive-dev
Tools/Helpers/BuildCnpy.sh
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.