11# Build Environment
22We build CodeCompass in a Linux environment. Currently, Ubuntu Long-Term
3- Support releases are the main targets: Ubuntu 20.04 LTS and Ubuntu 22.04 LTS.
3+ Support releases are the main targets: Ubuntu 22.04 LTS (and Ubuntu 24.04 LTS
4+ is planned).
45
56We also provide a Docker image that can be used as developer environment to
67CodeCompass. See its usage [ in a seperate document] ( /docker/README.md ) .
@@ -50,25 +51,6 @@ be installed from the official repository of the given Linux distribution.
5051The following command installs the packages except for those which have some
5152known issues.
5253
53- #### Ubuntu 20.04 ("Focal Fossa") LTS
54-
55- The standard Ubuntu Focal package repository contains only LLCM/Clang version 12,
56- which is not sufficient for CodeCompass, as at least version 15 is required.
57- Therefore LLVM and Clang should be installed from the official LLVM repositories:
58-
59- ``` bash
60- wget -O - https://apt.llvm.org/llvm-snapshot.gpg.key | sudo apt-key add -
61- echo " deb http://apt.llvm.org/focal/ llvm-toolchain-focal-15 main" | sudo tee /etc/apt/sources.list.d/llvm.list
62- echo " deb-src http://apt.llvm.org/focal/ llvm-toolchain-focal-15 main" | sudo -a tee /etc/apt/sources.list.d/llvm.list
63- sudo apt-get update
64-
65- sudo apt install git cmake make g++ libboost-all-dev \
66- llvm-15-dev clang-15 libclang-15-dev \
67- odb libodb-dev \
68- default-jdk libssl-dev libgraphviz-dev libmagic-dev libgit2-dev ctags doxygen \
69- libldap2-dev libgtest-dev
70- ```
71-
7254#### Ubuntu 22.04 ("Jammy Jellyfish") LTS
7355
7456``` bash
@@ -82,17 +64,7 @@ sudo apt install git cmake make g++ libboost-all-dev \
8264#### Database engine support
8365
8466Depending on the desired database engines to be supported, the following
85- packages should be installed:
86-
87- ##### Ubuntu 20.04 ("Focal Fossa") LTS
88-
89- ``` bash
90- # For SQLite database systems:
91- sudo apt install libodb-sqlite-dev libsqlite3-dev
92-
93- # For PostgreSQL database systems:
94- sudo apt install libodb-pgsql-dev postgresql-server-dev-12
95- ```
67+ packages should be installed.
9668
9769##### Ubuntu 22.04 ("Jammy Jellyfish") LTS
9870
@@ -166,46 +138,6 @@ time (depending on the machine one is using).
166138> ** Note:** now you may delete the * Build2* toolchain installed in the
167139> ` <build2_install_dir> ` folder, if you do not need any longer.
168140
169- ### Thrift (for Ubuntu 20.04)
170- CodeCompass needs [ Thrift] ( https://thrift.apache.org/ ) which provides Remote
171- Procedure Call (RPC) between the server and the client. A suitable version of
172- Thrift is, unfortunately, not part of the official Ubuntu repositories for
173- this version (only an older version is available), so you should download and
174- build from source.
175-
176- Thrift can generate stubs for many programming languages. The configure
177- script looks at the development environment and if it finds the environment
178- for a given language then it'll use it. For example in the previous step npm
179- was installed which requires NodeJS. If NodeJS can be found on your machine
180- then the corresponding stub will also compile. If you don't need it then you
181- can turn it off: ` ./configure --without-nodejs ` .
182-
183- In certain cases, installation may fail if development libraries for
184- languages are not installed on the target machine. E.g. if Python is
185- installed but the Python development headers are not, Thrift will unable to
186- install. Python, PHP and such other Thrift builds are NOT required by
187- CodeCompass, and can significantly increase compile time so it is advised to
188- avoid using them if it's not necessary.
189-
190- ``` bash
191- # Download and uncompress Thrift:
192- wget " http://www.apache.org/dyn/mirrors/mirrors.cgi?action=download&filename=thrift/0.16.0/thrift-0.16.0.tar.gz" \
193- -O thrift-0.16.0.tar.gz
194- tar -xvf ./thrift-0.16.0.tar.gz
195- cd thrift-0.16.0
196-
197- ./configure --prefix=< thrift_install_dir> --silent --without-python \
198- --enable-libtool-lock --enable-tutorial=no --enable-tests=no \
199- --with-libevent --with-zlib --without-nodejs --without-lua \
200- --without-ruby --without-csharp --without-erlang --without-perl \
201- --without-php --without-php_extension --without-dart \
202- --without-haskell --without-go --without-rs --without-haxe \
203- --without-dotnetcore --without-d --without-qt4 --without-qt5 \
204- --without-java
205-
206- make install -j $( nproc)
207- ```
208-
209141### Node.js and NPM
210142Make sure you are using at least version 18.17 of [ Node.js] ( https://nodejs.org/en/ ) .
211143Unfortunately only older versions are available in the official Ubuntu repositories
0 commit comments