| | |
| | | # Build - Linux |
| | | |
| | | ## Install prerequisites |
| | | Below the prerequisites for compiling open-license-manager. For developing it we use Eclipse. Recent CDT works smoothly with CMake. Remember to install the Ninja package as build system and Cmake Gui for a good eclipse integration. |
| | | Below the prerequisites for compiling `licensecc`. For developing it we use Eclipse. |
| | | Recent CDT works smoothly with CMake. Remember to install the Ninja package as build system and Cmake Gui for a good eclipse integration. |
| | | |
| | | ### Ubuntu |
| | | Supported Ubuntu distributions are 18.04 (Bionic Beaver) and 16.04 (Xenial) though it should be possible to build on any recent Ubuntu version. |
| | | Supported Ubuntu distributions are 20.04 (Focal Fossa), 18.04 (Bionic Beaver) and 16.04 (Xenial). |
| | | It should be possible to build on any recent Debian-derivate distribution. |
| | | |
| | | Install prerequisites: |
| | | |
| | |
| | | |
| | | ### CentOS 7 |
| | | |
| | | CentOS 7 ships with gcc 4.8 that isn't working for a bug on regular expression. It's necessary to update to gcc 4.9 or later. |
| | | CentOS 7 ships with gcc 4.8 that isn't compiling for a bug on regular expression. It's necessary to update to gcc 4.9 or later. |
| | | Install prerequisites: |
| | | |
| | | ```console |
| | | yum -y update && yum -y install wget boost boost-devel boost-static openssl openssl-devel glibc-static centos-release-scl-rh |
| | | yum -y install devtoolset-7-toolchain devtoolset-7-gcc devtoolset-7-gcc-c++ devtoolset-7-valgrind-devel |
| | | yum -y update && yum -y install install centos-release-scl |
| | | yum -y install wget boost boost-devel boost-static openssl openssl-devel openssl-static |
| | | yum -y install glibc-static devtoolset-7-toolchain devtoolset-7-gcc devtoolset-7-gcc-c++ devtoolset-7-valgrind-devel |
| | | |
| | | scl enable devtoolset-7 bash |
| | | export CC=/opt/rh/devtoolset-7/root/usr/bin/gcc |
| | | export CXX=/opt/rh/devtoolset-7/root/usr/bin/g++ |
| | | ``` |
| | | |
| | | Centos 7 ships with CMake 2.8.11 that's not supported anymore. You need to compile and install a newer (>3.6) version of CMake. |
| | | Centos 7 ships with CMake 2.8.11 that's not supported. You need to compile and install a newer (>3.6) version of CMake. |
| | | |
| | | ```console |
| | | wget https://cmake.org/files/v3.11/cmake-3.11.0.tar.gz |
| | |
| | | cmake --version #(check it's 3.11.0) |
| | | ``` |
| | | |
| | | If you don't want to install all these prerequisites you can also build the library in a docker container. Check for the corresponding section in the `.travis.yml` file at the base of the project. |
| | | If you don't want to install all these prerequisites in your machine you can also build the library in a docker container. |
| | | Check for the corresponding Centos 7 section in the `.travis.yml` file at the base of the project. |
| | | |
| | | ### CentOS 8 |
| | | Install prerequisites: |
| | |
| | | ``` |
| | | |
| | | ### Other linux |
| | | Open License Manager should compile on any recent (2019) linux distribution. Being CentOS 7 the older distribution we keep compatibilty with. |
| | | Licensecc should compile on any recent (2020) linux distribution. Being CentOS 7 the older distribution we keep compatibilty with. |
| | | |
| | | Minimum prerequisites |
| | | * gcc => 4.9, cmake => 3.6 |
| | | * zlib, openssl => 1.0.2 |
| | | * Boost => 1.53 (If you want to compile your own boost version remember to use the flag `runtime-link=static`) |
| | | * Boost => 1.57 (If you want to compile your own boost version remember to use the flag `runtime-link=static`) |
| | | |
| | | Optional prerequisites: |
| | | * Dbus (if you want to enable dbus generated identifiers) |
| | | * Doxygen |
| | | * Doxygen, Sphynx for documentation |
| | | |
| | | ## Download and compile |
| | | |
| | |
| | | This project has a submodule (the license generator). Remember to add the option `--recursive` to clone it. |
| | | |
| | | ```console |
| | | git clone --recursive https://github.com/open-license-manager/open-license-manager.git |
| | | git clone --recursive https://github.com/open-license-manager/licensecc.git |
| | | ``` |
| | | |
| | | ### Configure: |
| | | |
| | | ```console |
| | | cd open-license-manager/build |
| | | cd licensecc/build |
| | | cmake .. -DCMAKE_INSTALL_PREFIX=../install |
| | | ``` |
| | | |
| | |
| | | cmake -DCMAKE_TOOLCHAIN_FILE=../modules/toolchain-ubuntu-mingw64.cmake -DOPENSSL_ROOT_DIR=$CUR_PATH/openssl-OpenSSL_1_1_1d/dist -DCMAKE_FIND_DEBUG_MODE=ON -DOPENSSL_USE_STATIC_LIBS=ON -DBOOST_ROOT=$CUR_PATH/boost_1_71_0/dist .. |
| | | |
| | | ``` |
| | | |
| | | ###Build documentation |
| | | |
| | | Setup the python virtual environment: |
| | | |
| | | ``` |
| | | python3 -m venv .venv |
| | | |
| | | . .venv/bin/activate |
| | | pip install wheel |
| | | pip install -r requirements.txt |
| | | |
| | | ``` |
| | | |
| | | Build the docs: |
| | | |
| | | ``` |
| | | . .venv/bin/activate |
| | | cd build |
| | | cmake .. |
| | | make documentation |
| | | ``` |