KDb/Build
Requirements
Required software components
- C++ compiler, e.g. gcc
- Qt 4.7.0 or newer (both libraries and development files/tools)
- SQLite 3.6.16 or newer (both the library and development files)
Optional components
- libpq 7.3 or newer for PostgreSQL support (both the access library and development files)
- libmysqlclient (both the access library and development files)
Get the source code
Download Predicate source code as explained on the Download page. The root directory of the source code is referred as {predicate-source-dir}.
Configuration
Option 1: Configuration for global installation
If you want to have Predicate installed in the global PREFIX, type:
mkdir {predicate-build-dir} cd {predicate-build-dir} cmake {predicate-source-dir}
This will configure installation of Predicate libraries into /usr/local/lib, its binaries into /usr/local/bin, etc.
To change that to /usr/lib, etc., change the cmake command to:
cmake -DCMAKE_INSTALL_PREFIX=/usr {predicate-source-dir}
Option 2: Configuration for local installation
To void installing to global location like /usr, for whatever reason, for your convenience, config-for-local.sh script has been prepared with default configuration settings. You can find it in tools/ subdirectory of the source code. Use it as follows:
First make sure $PREDICATE_INSTALL_PREFIX environment variable is set to directory that is indended PREFIX for the local Predicate installation, e.g. $HOME/predicate/install. Then:
mkdir -p {predicate-build-dir} cd {predicate-build-dir}
(better pick your {predicate-build-dir} outside of the source code)
{predicate-source-dir}/tools/config-for-local.sh {predicate-source-dir}
Note that to have the Predicate installation work environment variables PATH, LD_LIBRARY_PATH, PKG_CONFIG_PATH, QT_PLUGIN_PATH should be set properly. Double check this:
_libdir=lib # or lib64 for 64-bit platforms export PATH=$PREDICATE_INSTALL_PREFIX/bin:$PATH export LD_LIBRARY_PATH=$PREDICATE_INSTALL_PREFIX/$_libdir:$LD_LIBRARY_PATH export PKG_CONFIG_PATH=$PREDICATE_INSTALL_PREFIX/$_libdir/pkgconfig:$PKG_CONFIG_PATH export QT_PLUGIN_PATH=$PREDICATE_INSTALL_PREFIX/$_libdir/plugins/predicate:$QT_PLUGIN_PATH
Option 3: Configuration for re-using local KDE 4 installation
If you use local KDE 4 installation, e.g. for developed applications, for your convenience, config-for-kde.sh script has been prepared with default configuration settings. You can find it in tools/ subdirectory of the source code. Use it as follows:
First make sure $KDEDIRS environment variable is set to directory that is intended PREFIX for the local KDE 4 installation, e.g. $HOME/kde4/inst. Then:
mkdir -p {predicate-build-dir} cd {predicate-build-dir}
(better pick your {predicate-build-dir} outside of the source code)
{predicate-source-dir}/tools/config-for-kde.sh
Note that to make the Predicate installation work, environment variables PATH, LD_LIBRARY_PATH, PKG_CONFIG_PATH, QT_PLUGIN_PATH should be set properly. Several of these are probably already set for the local KDE 4 installation but better double check this:
_libdir=lib # or lib64 for 64-bit platforms export PATH=$KDEDIRS/bin:$PATH export LD_LIBRARY_PATH=$KDEDIRS/$_libdir:$LD_LIBRARY_PATH export PKG_CONFIG_PATH=$KDEDIRS/$_libdir/pkgconfig:$PKG_CONFIG_PATH export QT_PLUGIN_PATH=$KDEDIRS/$_libdir/kde4/plugins:$QT_PLUGIN_PATH
Debugging options
Recommended for accurate debugging: The default debug setting is RelWithDebInfo which is suitable only for obtaining backtraces. If you are developing code that uses Predicate or developing Predicate itself you may want to precisely set breakpoints, watch points, use step by step command accurately in your debugger, rely on assertions, debug and warning messages. If this is the case, you can replace -DCMAKE_BUILD_TYPE=RelWithDebInfo cmake option with:
-DCMAKE_BUILD_TYPE=DebugFull
Using DebugFull results in a slower code. That can be acceptable in most cases during testing and development given the machine is fast enough. It is not intended for production releases of the software unless you know what you're doing.
Setting up building with tests
To build with tests enabled (both unit tests and functional tests), add -DBUILD_TESTING=ON to the cmake command.
Build
For any configuration option: Type the above configuration command only once, to configure the cmake-based buildsystem. Then just type:
make make install
Notes
To enable debugging inside of bison (.y) file, put this in .gdbinit:
set directories ~/dev/src/predicate/Predicate/parser