Skip to content
This repository has been archived by the owner on Jun 3, 2024. It is now read-only.

Setting up a build umbrealla

scunz edited this page Mar 11, 2013 · 1 revision

Because none of the MacGitver submodules is currently able to be built stand-alone, there is an umbrella project that allows to build individual parts of MacGitver. This technique is used

  • to work only on libGitwrap or libHeaven
  • to accomplish partial PR-Builds in Jenkins
  • to update Doxygen documentation

These actions are required to setup such a build umbrella

  • Create a designated place in your file system
  • Clone the macgitver/mgv-build-umbrealla git repository from github
  • Clone the projects you want to build (and their dependencies)
  • When running CMake, run it on the umbrella and give it a list of modules to include.
  • Run CMake and make to test this.

Short-Example

cd && mkdir dv
cd dv
git clone [email protected]:/macgitver/mgv-build-umbrella src
cd src
git clone [email protected]:/macgitver/libHeaven.git libHeaven
git clone [email protected]:/macgitver/libDiffViews.git libDiffViews
mkdir ../bin && cd ../bin
cmake ../src -DMODS=libHeaven;libDiffViews

Jenkins

Since this doesn't work well with jenkins, on jenkens we use this:

rm -rf umbrella
git clone [email protected]:/macgitver/mgv-build-umbrealla umbrella
ln -s ../src umbrella/libHeaven

The git-clone destination for libHeaven is then set to src, but cmake is configured to run from umbrella.

Full example for libHeaven

sacu@blacky ~ $ mkdir libHeaven
sacu@blacky ~ $ cd libHeaven
sacu@blacky ~/libHeaven $ git clone [email protected]:/macgitver/mgv-build-umbrella src
Klone nach 'src'...
remote: Counting objects: 26, done.
remote: Compressing objects: 100% (20/20), done.
remote: Total 26 (delta 13), reused 18 (delta 5)
Empfange Objekte: 100% (26/26), 6.65 KiB, done.
Löse Unterschiede auf: 100% (13/13), done.
sacu@blacky ~/libHeaven $ cd src
sacu@blacky ~/libHeaven/src $ git clone [email protected]:/macgitver/libHeaven.git libHeaven
Klone nach 'libHeaven'...
remote: Counting objects: 3182, done.
remote: Compressing objects: 100% (730/730), done.
remote: Total 3182 (delta 2493), reused 3110 (delta 2427)
Empfange Objekte: 100% (3182/3182), 521.99 KiB | 83 KiB/s, done.
Löse Unterschiede auf: 100% (2493/2493), done.
sacu@blacky ~/libHeaven/src $ cd ..
sacu@blacky ~/libHeaven $ mkdir bin
sacu@blacky ~/libHeaven $ cd bin
sacu@blacky ~/libHeaven/bin $ cmake ../src -DMODS=libHeaven
-- The C compiler identification is GNU 4.7.2
-- The CXX compiler identification is GNU 4.7.2
-- Check for working C compiler: /usr/bin/cc
-- Check for working C compiler: /usr/bin/cc -- works
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Check for working CXX compiler: /usr/bin/c++
-- Check for working CXX compiler: /usr/bin/c++ -- works
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Build strategy for Linux/Unicies
-- Looking for Q_WS_X11
-- Looking for Q_WS_X11 - found
-- Looking for Q_WS_WIN
-- Looking for Q_WS_WIN - not found
-- Looking for Q_WS_QWS
-- Looking for Q_WS_QWS - not found
-- Looking for Q_WS_MAC
-- Looking for Q_WS_MAC - not found
-- Found Qt4: /usr/bin/qmake (found suitable version "4.8.4", minimum required is "4.8.2") 
-- Configuring done
-- Generating done
-- Build files have been written to: /home/sacu/libHeaven/bin
sacu@blacky ~/libHeaven/bin $ make
Scanning dependencies of target hic
[  1%] Building CXX object libHeaven/src/hic/CMakeFiles/hic.dir/main.cpp.o
[  1%] Building CXX object libHeaven/src/hic/CMakeFiles/hic.dir/HICObject.cpp.o
[  2%] Building CXX object libHeaven/src/hic/CMakeFiles/hic.dir/HICProperty.cpp.o
[  3%] Building CXX object libHeaven/src/hic/CMakeFiles/hic.dir/HIDLexer.cpp.o
[  3%] Building CXX object libHeaven/src/hic/CMakeFiles/hic.dir/HIDParser.cpp.o
[  4%] Building CXX object libHeaven/src/hic/CMakeFiles/hic.dir/HIDToken.cpp.o
[  4%] Building CXX object libHeaven/src/hic/CMakeFiles/hic.dir/HIGeneratorBase.cpp.o
[  5%] Building CXX object libHeaven/src/hic/CMakeFiles/hic.dir/HIGenHeader.cpp.o
[  6%] Building CXX object libHeaven/src/hic/CMakeFiles/hic.dir/HIGenSource.cpp.o
^Cmake[2]: *** [libHeaven/src/hic/CMakeFiles/hic.dir/HIGenSource.cpp.o] Unterbrechung
make[1]: *** [libHeaven/src/hic/CMakeFiles/hic.dir/all] Unterbrechung
make: *** [all] Unterbrechung

sacu@blacky ~/libHeaven/bin $