2007-08-31 01:47:00 -06:00
|
|
|
PvPGN CMake Build Instructions
|
|
|
|
===================================
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
0. Getting "cmake"
|
|
|
|
|
|
|
|
Before anything you need to make sure you have a cmake (at least version
|
|
|
|
2.4.3) installed on the system you wish to compile PvPGN. On Linux/*BSD systems
|
|
|
|
this sould probably be provided by your package system one way or another or
|
|
|
|
you could try to build cmake from source. Follow the "Readme.txt" from cmake
|
|
|
|
sources if you are going over that path.
|
|
|
|
|
|
|
|
Another source of "cmake" may be the binary packages provided by the
|
|
|
|
cmake people on www.cmake.org. This is usually the way to get it on
|
|
|
|
Windows or exotic Unices. For BeOS you could get it from bebits.com.
|
|
|
|
|
|
|
|
Please note that "cmake" is not a build system by itself but rather a
|
|
|
|
"meta" build system. Parsing the cmake input files, cmake will generate
|
|
|
|
the build system files to use with your build system (which may be a
|
|
|
|
classic Unix style "make" or an IDE such as Visual Studio). cmake calls
|
|
|
|
the part of it that generates the project files a "generator" (and is
|
|
|
|
configurable).
|
|
|
|
|
|
|
|
|
|
|
|
1. Running "cmake"
|
|
|
|
|
|
|
|
Now that you have cmake (and also you have the pvpgn sources with the
|
|
|
|
cmake support) you should try to run cmake to generate the project files
|
|
|
|
(or makefiles, depending on your generator used with cmake). It is
|
|
|
|
recommended that you do an "out of source" build, this means you should
|
|
|
|
not try to build pvpgn inside the source directory but in a directory
|
|
|
|
specially made for building pvpgn.
|
|
|
|
|
|
|
|
Note: the instructions generally follow how to use the cmake command
|
|
|
|
line version which is more portable (available everywhere cmake is
|
|
|
|
available). For using various cmake GUIs one has to find out himself how
|
|
|
|
they work.
|
|
|
|
|
|
|
|
Create a build directory (preferably have it empty), change current
|
|
|
|
directory there, run cmake as "cmake /path/to/pvpgn-src" where
|
|
|
|
"/path/to/pvpgn-src" is obvioulsy the path to the pvpgn source
|
|
|
|
directory. This will have cmake generate the type of project files that
|
|
|
|
is default for your platform (which is "Unix Makefiles" on Unix/Linux
|
|
|
|
systems or "Visual Studio Project files" on Windows) without any
|
|
|
|
additional storage types (ie. no SQL support) and will install pvpgn on
|
|
|
|
"make install" in the default location (which is "/usr/local" for Unix
|
|
|
|
systems or "<System-Drive>:\\Program Files\\pvpgn" on Windows).
|
|
|
|
|
|
|
|
All these defaults are probably not what you wanted so cmake offers a
|
|
|
|
way to customize this by command line flags setting variables or
|
|
|
|
selecting the project files generator. Here are some useful options:
|
|
|
|
|
|
|
|
-G "Project Type" : tells cmake to use the "Project Type" project
|
|
|
|
files generator; on Unix systems this is by default "Unix Makefiles" and
|
|
|
|
on Windows "Visual Studio project files"; other useful values are
|
|
|
|
"KDevelop3", "MinGW Makefiles" or "MSYS Makefiles" (the last 2 are
|
|
|
|
obviously valid only on Windows)
|
|
|
|
|
|
|
|
-D CMAKE_INSTALL_PREFIX="/path/to" : it will tell cmake to set
|
|
|
|
accordingly values so that on "make install" it will install relative to
|
|
|
|
"/path/to"
|
|
|
|
|
2007-10-05 01:34:47 -06:00
|
|
|
-D WITH_MYSQL=true : it will tell cmake to check for MySQL
|
2007-08-31 01:47:00 -06:00
|
|
|
headers/libraries and if present prepare project files able to compile
|
|
|
|
PvPGN with MySQL
|
|
|
|
|
2007-10-05 01:34:47 -06:00
|
|
|
-D WITH_PGSQL=true or -D WITH_SQLITE3=true are similar to WITH_MYSQL
|
|
|
|
but for PostgreSQL/SQLite3 storage support
|
2007-08-31 01:47:00 -06:00
|
|
|
|
2008-06-29 12:57:44 -06:00
|
|
|
-D CMAKE_BUILD_TYPE=Debug : build in debug mode (to get meaningfull
|
|
|
|
stack traces)
|
|
|
|
|
2007-08-31 01:47:00 -06:00
|
|
|
WARNING: in between 2 cmake runs make sure you remove all build files
|
|
|
|
or at least remove the CMakeCache.txt file otherwise you may experience
|
|
|
|
strange problems.
|
|
|
|
|
|
|
|
2. Building PvPGN
|
|
|
|
|
|
|
|
After successfully running cmake you are ready to build pvpgn.
|
|
|
|
Depending on your project files generator used with cmake you do this in
|
|
|
|
various ways. Example: when using "Unix Makefiles" you should just issue
|
|
|
|
"make" and it should build your pvpgn binaries. When using some IDE
|
|
|
|
project file types such as KDevelop3 or Visual Studio you should run the
|
|
|
|
"Build" command of that IDE.
|
|
|
|
|
|
|
|
3. Installing PvPGN
|
|
|
|
|
|
|
|
|
|
|
|
Again, depending on the type of project files generator you used you
|
|
|
|
can install pvpgn to the CMAKE_INSTALL_DIR prefixed location. When using
|
|
|
|
the "Unix Makefiles" generator you can use "make install" to do so.
|
|
|
|
|
|
|
|
|
|
|
|
4. Full examples usage
|
|
|
|
|
|
|
|
4.1 Using cmake on a Unix/Linux system installing pvpgn under "~pvpgn"
|
|
|
|
with MySQL support
|
|
|
|
|
|
|
|
$ cd pvpgn-build
|
2009-01-31 15:37:17 -07:00
|
|
|
$ cmake -D CMAKE_INSTALL_PREFIX=/home/pvpgn -D WITH_MYSQL ../pvpgn-src
|
2007-08-31 01:47:00 -06:00
|
|
|
$ make
|
|
|
|
$ make install
|
|
|
|
|
|
|
|
4.2 Using cmake on a Windows (command line prompt) system with mingw32
|
|
|
|
> cd pvpgn-build
|
|
|
|
> cmake ..\pvpgn-src
|
|
|
|
> mingw32-make
|
|
|
|
> mingw32-make install
|
|
|
|
|
2007-08-31 01:53:24 -06:00
|
|
|
5. Problems
|
2007-08-31 01:47:00 -06:00
|
|
|
|
|
|
|
|
|
|
|
cmake building in PvPGN is a young feature as such many issues may
|
|
|
|
still arise. If you have problems with cmake please contact us at
|
|
|
|
pvpgn-dev@berlios.de (after you subscribe to the mailing list at
|
|
|
|
https://lists.berlios.de/mailman/listinfo/pvpgn-dev) or use the bug
|
|
|
|
tracker at http://developer.berlios.de/bugs/?group_id=2291 .
|
|
|
|
|
|
|
|
When reporting problems please provide all information such as pvpgn
|
|
|
|
version, your platform name/version, exactly what you tried to do (the
|
|
|
|
commands used) and exactly the errors you get.
|