Skip to content

Commit

Permalink
#99: Add conan info to building documentation
Browse files Browse the repository at this point in the history
  • Loading branch information
pnoltes committed Sep 10, 2023
1 parent 511fdb2 commit d1b14e4
Showing 1 changed file with 45 additions and 2 deletions.
47 changes: 45 additions & 2 deletions documents/building/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -40,16 +40,59 @@ git clone --single-branch --branch master https://github.com/apache/celix.git
```

## Building and installing
Apache Celix uses [CMake](https://cmake.org) as build system. CMake can generate (among others) makefiles.
Apache Celix can be build using [Conan](https://conan.io) as package manager/build system or by directly using
[CMake](https://cmake.org).

### Building and installing with preinstalled libraries
### Building Apache Celix using Conan
The following packages (libraries + headers) should be installed on your system:

* Development Environment
* build-essentials (gcc/g++ or clang/clang++)
* java or zip (for packaging bundles)
* make (3.14 or higher)
* git
* cmake (3.18 or higher)
* Conan (2 or higher)

For Ubuntu 20.04, use the following commands:
```bash
sudo apt-get install -yq --no-install-recommends \
build-essential \
git \
default-jdk \
python3 \
python3-pip

#The cmake version for Ubuntu 20 is older than 3.14,
#use snap to install the latest cmake version
snap install cmake

#Install conan
pip3 install -U conan
```

Configure conan default profile using automatic detection of the system
```bash
conan profile detect
```

Create Apache Celix package - and build the dependencies - in the Conan cache:
```bash
cd <celix_source_dir>
conan create . --output-folder build --build missing -o build_all=True
```

Note installing Apache Celix is not required when using Conan, because Conan will install the Apache Celix package
in the local Conan cache.

### Building Apache Celix directly using CMake
The following packages (libraries + headers) should be installed on your system:

* Development Environment
* build-essentials (gcc/g++ or clang/clang++)
* java or zip (for packaging bundles)
* make (3.18 or higher)
* git
* Apache Celix Dependencies
* libzip
* uuid
Expand Down

0 comments on commit d1b14e4

Please sign in to comment.