[cmake-developers] Ninja help

Nicolas Desprès nicolas.despres at gmail.com
Wed Feb 15 11:20:17 EST 2012


I use the master branch of Evan Martin's Ninja github repository as
reference: git://github.com/martine/ninja.git

For compiling and testing you can find all the information in the HACKING
file.

To use it with cmake I first
checkout 5138d2b41b5ea96e883c0bbd4d67893d52e01907 which is branch
ninja-generator-pr in pcc's github repository. Then I build cmake in a
_build build directory using this script to configure it and make to build
it:

#!/bin/sh

: ${SRCDIR:=..}

case $(uname -s) in
  Darwin)
    : ${CC:='/usr/local/Cellar/ccache/3.1.6/libexec/cc'}
    : ${CXX:='/usr/local/Cellar/ccache/3.1.6/libexec/c++'}
    CPACK_BINARY_BUNDLE=ON
    CPACK_BINARY_DEB=OFF
    CPACK_BINARY_DRAGNDROP=ON
    CPACK_BINARY_NSIS=OFF
    CPACK_BINARY_OSXX11=ON
    CPACK_BINARY_PACKAGEMAKER=ON
    CPACK_BINARY_RPM=OFF
    ;;
  Linux)
    if test -n "$CLANG"
    then
      : ${CC:="$CLANG"}
      : ${CXX:="$CLANG"}
    else
      : ${CC:='/usr/lib/ccache/gcc'}
      : ${CXX:='/usr/lib/ccache/g++'}
    fi
    CPACK_BINARY_BUNDLE=OFF
    CPACK_BINARY_DEB=ON
    CPACK_BINARY_DRAGNDROP=OFF
    CPACK_BINARY_NSIS=OFF
    CPACK_BINARY_OSXX11=OFF
    CPACK_BINARY_PACKAGEMAKER=OFF
    CPACK_BINARY_RPM=ON
    ;;
  *)
    CPACK_BINARY_BUNDLE=OFF
    CPACK_BINARY_DEB=OFF
    CPACK_BINARY_DRAGNDROP=OFF
    CPACK_BINARY_NSIS=OFF
    CPACK_BINARY_OSXX11=OFF
    CPACK_BINARY_PACKAGEMAKER=OFF
    CPACK_BINARY_RPM=OFF
    ;;
esac

: ${CFLAGS:='-Wall'}
: ${CXXFLAGS:="$CFLAGS"}

cmake "$SRCDIR"                                                 \
  -DCMAKE_INSTALL_PREFIX="$HOME/usr/stow/cmake"                 \
  -DCTEST_TEST_CTEST=ON                                         \
  -DCTEST_TEST_CPACK=ON                                         \
  -DCTEST_USE_XMLRPC=ON                                         \
  -DCMake_TEST_INSTALL=ON                                       \
  -DCPACK_BINARY_BUNDLE=$CPACK_BINARY_BUNDLE                    \
  -DCPACK_BINARY_DEB=$CPACK_BINARY_DEB                          \
  -DCPACK_BINARY_DRAGNDROP=$CPACK_BINARY_DRAGNDROP              \
  -DCPACK_BINARY_NSIS=$CPACK_BINARY_NSIS                        \
  -DCPACK_BINARY_OSXX11=$CPACK_BINARY_OSXX11                    \
  -DCPACK_BINARY_PACKAGEMAKER=$CPACK_BINARY_PACKAGEMAKER        \
  -DCPACK_BINARY_RPM=$CPACK_BINARY_RPM                          \
  -DCPACK_BINARY_TBZ2=ON                                        \
  -DCPACK_SOURCE_ZIP=ON                                         \
  -DBUILD_DOCUMENTATION=ON                                      \
  -DBUILD_QtDialog=ON                                           \
  -DBUILD_CursesDialog=ON                                       \
  -DCMAKE_BUILD_TYPE='Debug'                                    \
  "$@"


Then I build cmake using Ninja in a _build-ninja repository using this
script to configure it and ninja to build it (I put ninja in my PATH by
creating a symlink in ~/bin to it):

#!/bin/sh

: ${SRCDIR:=..}

case $(uname -s) in
  Darwin)
    : ${CC:='/usr/local/Cellar/ccache/3.1.6/libexec/cc'}
    : ${CXX:='/usr/local/Cellar/ccache/3.1.6/libexec/c++'}
    CPACK_BINARY_BUNDLE=ON
    CPACK_BINARY_DEB=OFF
    CPACK_BINARY_DRAGNDROP=ON
    CPACK_BINARY_NSIS=OFF
    CPACK_BINARY_OSXX11=ON
    CPACK_BINARY_PACKAGEMAKER=ON
    CPACK_BINARY_RPM=OFF
    ;;
  Linux)
    if test -n "$CLANG"
    then
      : ${CC:="$CLANG"}
      : ${CXX:="$CLANG"}
    else
      : ${CC:='/usr/lib/ccache/gcc'}
      : ${CXX:='/usr/lib/ccache/g++'}
    fi
    CPACK_BINARY_BUNDLE=OFF
    CPACK_BINARY_DEB=ON
    CPACK_BINARY_DRAGNDROP=OFF
    CPACK_BINARY_NSIS=OFF
    CPACK_BINARY_OSXX11=OFF
    CPACK_BINARY_PACKAGEMAKER=OFF
    CPACK_BINARY_RPM=ON
    ;;
  *)
    CPACK_BINARY_BUNDLE=OFF
    CPACK_BINARY_DEB=OFF
    CPACK_BINARY_DRAGNDROP=OFF
    CPACK_BINARY_NSIS=OFF
    CPACK_BINARY_OSXX11=OFF
    CPACK_BINARY_PACKAGEMAKER=OFF
    CPACK_BINARY_RPM=OFF
    ;;
esac

: ${CFLAGS:='-Wall'}
: ${CXXFLAGS:="$CFLAGS"}

../_build/bin/cmake "$SRCDIR"                                   \
  -GNinja                                                       \
  -DCMAKE_INSTALL_PREFIX="$HOME/usr/stow/cmake"                 \
  -DCTEST_TEST_CTEST=ON                                         \
  -DCTEST_TEST_CPACK=ON                                         \
  -DCTEST_USE_XMLRPC=ON                                         \
  -DCMake_TEST_INSTALL=ON                                       \
  -DCPACK_BINARY_BUNDLE=$CPACK_BINARY_BUNDLE                    \
  -DCPACK_BINARY_DEB=$CPACK_BINARY_DEB                          \
  -DCPACK_BINARY_DRAGNDROP=$CPACK_BINARY_DRAGNDROP              \
  -DCPACK_BINARY_NSIS=$CPACK_BINARY_NSIS                        \
  -DCPACK_BINARY_OSXX11=$CPACK_BINARY_OSXX11                    \
  -DCPACK_BINARY_PACKAGEMAKER=$CPACK_BINARY_PACKAGEMAKER        \
  -DCPACK_BINARY_RPM=$CPACK_BINARY_RPM                          \
  -DCPACK_BINARY_TBZ2=ON                                        \
  -DCPACK_SOURCE_ZIP=ON                                         \
  -DBUILD_DOCUMENTATION=ON                                      \
  -DBUILD_QtDialog=ON                                           \
  -DBUILD_CursesDialog=ON                                       \
  -DCMAKE_BUILD_TYPE='Debug'                                    \
  "$@"

Hope this help.

Cheers,
-Nico

On Wed, Feb 15, 2012 at 4:47 PM, Bill Hoffman <bill.hoffman at kitware.com>wrote:

> Where at are the versions of Ninja that I need to use with CMake for:
>
> Windows:
> Mac:
> Linux:
>
>
> I have seen several git branches mentioned in emails, and it is not clear
> to me where to get the right Ninja for CMake on all platforms.  To setup
> nightly testing, is there a master git branch that we should test against?
>  This would let us know if Ninja breaks CMake support right away.
>
> Thanks.
>
> -Bill
> --
>
> Powered by www.kitware.com
>
> Visit other Kitware open-source projects at http://www.kitware.com/**
> opensource/opensource.html<http://www.kitware.com/opensource/opensource.html>
>
> Please keep messages on-topic and check the CMake FAQ at:
> http://www.cmake.org/Wiki/**CMake_FAQ<http://www.cmake.org/Wiki/CMake_FAQ>
>
> Follow this link to subscribe/unsubscribe:
> http://public.kitware.com/cgi-**bin/mailman/listinfo/cmake-**developers<http://public.kitware.com/cgi-bin/mailman/listinfo/cmake-developers>
>



-- 
Nicolas Desprès
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://public.kitware.com/pipermail/cmake-developers/attachments/20120215/02c15bf8/attachment.htm>


More information about the cmake-developers mailing list