Giter VIP home page Giter VIP logo

jom's Introduction

jom - the parallel make tool for Windows

It's aimed to be an nmake clone with support for parallel builds.
The project's wiki is here: http://wiki.qt.io/Jom

== How to compile jom ==
Jom is a Qt program. The steps to compile jom on command line are:
    qmake
    nmake

== How to compile jom with cmake ==
We assume that everything we do happens in the folder X:\build-jom 
1. unpack these sources of jom into X:\build-jom\jom
2. add a build directory somewhere - this normally either is a
   directory on the same level as the build directory
   or a subdirectory of the source root directory.
   !!! Do not try to build from within the source directory !!!
3. switch into the build directory and run the following commands:

     X:\build-jom\build> cmake X:\build-jom\jom -G "NMake Makefiles" -DCMAKE_PREFIX_PATH=X:\build-jom -DCMAKE_INSTALL_PREFIX=X:\build-jom\install
     ...

   To take a special version of Qt, append -DQT_QMAKE_EXECUTABLE:PATH=X:\build-jom\qt\bin\qmake.exe .

   Now just run:

     X:\build-jom\build> nmake && nmake install
     ...

   If you want to begin new, just throw away the build dir.

== Running the tests ==
   To build the unit tests in jom, add the option -DJOM_ENABLE_TESTS=ON
   to the cmake line.
   To run the tests, you can simply type

    X:\build-jom\> nmake test
    ...

== Environment variables ==

Like nmake, jom reads default command line arguments from an environment variable: JOMFLAGS.
If JOMFLAGS is not set, MAKEFLAGS is read.
This is useful to set up separate flags for nmake and jom, e.g.
    set MAKEFLAGS=L
    set JOMFLAGS=Lj8

== .SYNC dependents ==

You can use the .SYNC directive on the right side of a description
block definition T to prevent jom from running all of T's dependents
in parallel.
For example the following description block adds further dependencies
between its dependents.

    all: Init Prebuild .SYNC Build .SYNC Postbuild

This adds these additional dependencies:
    Build -> Init Prebuild
    Postbuild -> Build

Now the 'Init' and 'Prebuild' targets are built before 'Build'.
 

jom's People

Contributors

jobor avatar rpavlik avatar sengels avatar orgads avatar stematsb avatar net147 avatar davispuh avatar faldzip avatar krf avatar podsvirov avatar okuoku avatar

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.