APACHE CELIX - BUILDING AND INSTALLATION OVERVIEW Notes ----- * Currently Apache Celix only builds and works on Unix/Linux like systems (including MacOSX). * Apache Celix requires CMake for building, other requirements/dependencies are listed per subproject on http://celix.apache.org/subprojects.html * More information about the build system, and how to extend it, can be found at the website: http://celix.apache.org/documentation.html Quick Start ----------- # Create a build directory next to the celix source directory $ mkdir celix-build; cd celix-build $ ccmake ../celix # When this is the first time the CMake cache is created, a configuration has to be created # This is done by running Configure (c) in CMake. # Enable/Disable the required sub projects (BUILD_{NAME} entries) # Optionally, enable advanced mode (t) and change CMAKE_INSTALL_PREFIX # Run Configure (might be needed multiple times) # Run Generate (this also returns to the shell) $ make # To deploy the included examples $ make deploy # Navigate to /deploy/ $ sh run.sh # To install the release (framework, headers and bundles) $ make install-all # To see a list of all available targets $ make help Unit testing using CppUTest --------------------------- Apache Celix has two build options that enable a set of unit tests. These tests are based on CUnit a fork of CppUTest. CUnit can simply be installed and is normally found by the CMake scripts, but for CppUTest a fork needs to be build. The fork can be found on https://github.com/abroekhuis/cpputest/tree/backup. Simply cloning, building and updating the build configuration to point to the build files should be enough. Some background, CppUTest doesn't support output parameters, but Celix's API relies heavily on those. The fork adds support for this. Background information ---------------------- Apache Celix uses CMake to generate the build files needed for compilation. deployment and installation. * CMake (http://www.cmake.org) CMake generated build files based on specific CMake files. To setup a build a console (ccmake) and GUI (cmake-gui) method is provided. With these editors include paths, installation prefix etc can be changed. CMake stores the configuration in a cache, which is used during the build. To keep the cache/build files separate from the source, a out-of-source build is preferred. To start from scratch, the build directory can be deleted and new build files can be generated. * Apache Celix Subprojects Since Apache Celix provides a modular framework, it makes sense to provide the available components as modules as well. To enable/disable these modules cmake is used. In the GUI or console there are settings named BUILD_{NAME} which can be switched on or off. On http://celix.apache.org/subprojects.html a list of all subprojects is given. * Apache Celix deployment/installation With a modular system it doesn't make sense to simply install everything to the file system. Depending on the needs different version/modules can be needed. To cater for this, Celix provides deployment support which takes care of copying the required bundles to a named target. A basic run script is created as well. Installing the framework (and its dependencies) might make sense, every target needs the framework. To install only the framework a dedicated target is available: make install-release.