This page is intended for developers.
Assumption: You checked out the trunk into holdingnuts/trunk and created a build-directory holdingnuts/build. If not, see page hacking.
The client needs to find its data-directory. Without it, the client displays an error-message and exits.
On UN*X, create a symbolic link from holdingnuts/trunk/data to holdingnuts/build/data.
On Windows, create a windows-shortcut to holdingnuts/build/src/client/holdingnuts.exe and set holdingnuts/trunk as the working directory.
There's a CMake option for updating the translations (rescan the sources).
The following commands update the translation files, e.g. holdingnuts/trunk/src/client/translations/hn_de.ts.
cd build cmake -DUPDATE_TRANSLATIONS=On ../trunk make translations cmake -DUPDATE_TRANSLATIONS=Off ../trunk linguist ../trunk/src/client/translations/hn_de.ts
Warning: Don't forget to turn the option off again (cmake -DUPDATE_TRANSLATIONS=Off ../trunk). A make clean would delete the translation-source files!
There's a special make-target called translations which builds all available translations (*.ts → *.qm).
The following commands build the translation files, e.g. holdingnuts/build/src/client/hn_de.qm.
cd build make translations
Note:: The CMake option UPDATE_TRANSLATIONS must not be On.
After building the translations, copy the files into holdingnuts/trunk/data/i18n.
cd build mkdir ../trunk/data/i18n cp -v src/client/hn_*.qm ../trunk/data/i18n/
Important: DO NOT check-in those files into SVN, because these are generated files. In a release package the files will -of course- already be present in data/i18n.
Note: If there's no Qt installation on your system, you'll need to copy the Qt's own translations ($QT_DIR/translations/qt_*.qm) into /trunk/data/i18n/ as well. In a release package these files are present, too.
There's an internal CMake variable called CMAKE_BUILD_TYPE which specifies whether to build a release or debug version.
In order to build a release version, run following:
cd build cmake -DCMAKE_BUILD_TYPE=Release ../trunk make
Sometimes it's useful to see which commands are executed and which compiler-/linker-flags are used during a build. Use following to get verbose output of the build process:
cd build make VERBOSE=1
There are some options for including/excluding features:
Example: Configure for not building the client.
cmake -DENABLE_CLIENT=Off ../trunk
The definition CMAKE_DATA_PATH (Default: unset) adds an own search-path for the data-dir.
cmake -DCMAKE_DATA_PATH=/usr/local/share ../trunk
In this example the data-dir will be located at /usr/local/share/holdingnuts/data.
Note: There are already several search-paths compiled in. Usually this option isn't needed. If the CMAKE_DATA_PATH is specified then this is the only path the data-dir is searched.
The option USE_SVNREV (Default: Off) activates inclusion of a SVN revision string in the build.
cmake -DUSE_SVNREV=On ../trunk
Note: Each time the revision increases, the whole sources are re-built. This is because the SVN revision-string is provided as a definition (CPP macro; #define). Only enable this option if you plan to give away a specific revision for testing purpose.
Doxygen generated source documentation can be built with:
cd build cmake -DBUILD_DOCUMENTATION=On ../trunk make documentation
The doxygen output can be found in build/doxygen/doc.
cmake -DCMAKE_INSTALL_PREFIX=/usr ../trunk make install
cmake -DCMAKE_INSTALL_PREFIX=/usr/games -CMAKE_DATA_PATH=/usr/share/games ../trunk make install
The client as well as the server creates an application-settings directory.
On UN*X it's ~/.holdingnuts/, on Windows it's %APPDATA%\HoldingNuts\.
log_msg())dbg_msg())log_msg())