Code Monkey home page Code Monkey logo

JamPlus Overview

JamPlus is a very fast and powerful code and data build system built on the code base of the original Perforce version of Jam written by Christopher Seiwald. JamPlus is regularly used to efficiently parallelize the builds of massive code and data sets.

A sampling of the features in the JamPlus distribution follows:

  • Multiplatform: Binaries can be easily bootstrapped for Windows, various Unix systems, and Mac OS X.
  • Compiler support: Out of box compiler support for Visual C++ 202x/201x/200x/6, GCC, Clang, and MinGW.
  • Platform targets: Platform modules are provided for building for Windows, Linux, macOS, iOS, and Android targets. Additionally, an Xbox 360 console platform is provided as a sample. If the machine has iOS Build Environment for Windows installed (see http://www.pmbaty.com/iosbuildenv/), then iOS builds can be made on a Windows Boot Camp partition.
  • Workspace/Project Generator: Output project files for the Visual Studio IDE and Xcode.
  • Multiple Passes: Run multiple internal passes collecting unknown dependencies, and execute them in a future pass.
  • Network Cache: Any to-be-built target can be retrieved from one or more shared network file caches of prebuilt targets.
  • Command-line Dependencies: When the 'command line' of a target (not necessarily the real command line) changes, the target is rebuilt.
  • Powerful New Variable Expansion: Convert between slash types, expand literal text, include or exclude list components, recursive file globs, and more.
  • Dependency (Header) Cache: When dependency information is scanned, it is cached for the next build, offering a huge performance boost.
  • Batch Compilation: JamPlus is able to batch files to tools that support it, such as the Visual C++ compiler.
  • Checksum support: Enable a flag, and JamPlus will use the checksums of files to detect change instead of timestamps.
  • Lua support: Either a partial build description or the entire build description can be written in Lua.

Build JamPlus on Windows

Prequisites

Detailed instructions are found in the Bootstrapping documentation, but a concise version is here for Visual Studio.

Build JamPlus

  • If you haven't already, clone JamPlus with:
d:\>git clone https://github.com/jamplus/jamplus.git
  • Bootstrap JamPlus by launching x64 Native Tools Command Prompt for whichever version of Visual Studio you are using and running:
d:\jamplus>bootstrap-win64-vc.bat
  • Close the x64 Native Tools Command Prompt.

Building JamPlus for Mac

Prerequisites

  • FILL ME IN.

Build JamPlus

  • If you haven't already, clone JamPlus with:
[~]git clone https://github.com/jamplus/jamplus.git
  • Bootstrap the JamPlus build tool by running:
[~/jamplus] ./bootstrap-macosx64.sh

Building JamPlus for Linux

Prerequisites

If building on Ubuntu, install the following:

sudo apt install build-essential uuid-dev

Build JamPlus

  • If you haven't already, clone JamPlus with:
[~]git clone https://github.com/jamplus/jamplus.git
  • Bootstrap the JamPlus build tool by running:
[~/jamplus] ./bootstrap-linux64.sh

Authors

Jam's author is Christopher Seiwald ([email protected]). Note: Much of the documentation is taken verbatim from the jam.html file which ships with the Perforce Jam build.

JamPlus's primary maintainer is Joshua Jensen ([email protected]).

Patches came from the Jam mailing list and Perforce Public Depot, with the primary authors being Alen Ladavac, Craig McPheeters, and Matt Armstrong. Additional patches are linked from the source code back to the Jamming mailing list.

jamplus's Projects

jamplus icon jamplus

JamPlus is a very fast code and data build system derived from the original Perforce version of Jam

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.