-
Notifications
You must be signed in to change notification settings - Fork 6
Building, installing and using
The following software is required to build the project:
- Git
- CMake
- C++ compiler which supports C++11, GCC and CLang are the only compilers supported right now
- Platform dependent threads implementation
- zlib
- OpenSSL*
- X11/X.Org
- Freetype
The following software is recommended to build the project:
- libpng
- libjpeg-turbo*
- libtiff
- libmng
- iconv
- CUPS
- Fontconfig
- ICU
- DBus
- UnixODBC*
- PostgreSQL
- MySQL*
- Sqlite
- NSL (part of the standard C library)
- Network Information Service (part of the standard C library)
*The software mentioned has know alternative(s) which is also supported, such as LibreSSL which is almost a drop-in replacement for OpenSSL, JPEG 9 as an alternative to libjpeg-turbo, iODBC as an alternative to UnixODBC or MariaDB as an alternative to MySQL.
- Learn how to take advantage of the flexible build system
- If size matters build with
MinSizeRelasCMAKE_BUILD_TYPE, LTO and no exceptions - If time and disk space for building matters build with
KATIE_ALLINONEset toON - Create packages via
cpack,make packageor a native package via the provided package files for various distributions
KATIE_ALLINONE build option will raise the memory required for building the GUI component to 2Gb (if not more) when the build type is RelWithDebInfo (which is the default) and even more when it is Debug
git clone --depth=1 git://github.com/fluxer/katie
cd katie
ln -sv package/debian .
dpkg-buildpackage -nc -b
sudo dpkg -i ../katie-git*.deb
git clone --depth=1 git://github.com/fluxer/katie
cd katie/package/archlinux
makepkg -s
sudo pacman -U katie-git*.pkg.tar.xz
other UNIX-like system
git clone --depth=1 git://github.com/fluxer/katie
mkdir -pv katie/build
cd katie/build
cmake ../ -DCMAKE_INSTALL_PREFIX=/usr -DKATIE_SETTINGS_FULL=/etc/xdg -DKATIE_LDCONF_FULL=/etc/ld.so.conf.d -DKATIE_PROFILE_FULL=/etc/profile.d
make
sudo make install
- Run
sudo ldconfigso that the libraries paths are cached, systems using musl libc or uclibc may not require this step - Logout and login so that the project specific Shell profile file has effect, note that the file requires the Shell to be login otherwise it has no effect
- Watch out for tools/scripts that alter environmental variables (e.g. sudo) such as
PATH,LD_LIBRARY_PATH,PKG_CONFIG_PATHand ensure that the binaries, libraries, etc. can be located by other projects in the environment you will be building and using them:
echo $PATH
echo $LD_LIBRARY_PATH
echo $PKG_CONFIG_PATH
If the project files are no installed in one of the locations printed by the code above or the fallback that is used (empty means fallback, e.g set when building Bash, GNU libc, pkg-config) then you will have to tinker with your system.
- Verify the installation:
echo '#include <QDebug>
int main(int argc, char *argv[])
{
qDebug() << "<insert kool joke here>";
return 0;
}' > kk.cpp
g++ kk.cpp $(pkg-config --cflags --libs KtCore) -std=c++11 -DQT_NAMESPACE_COMPAT -o kk
./kk
- Report any issues and suggestions you may have
Katie is part of the Katana Desktop Environment project.