1
1
# Build Environment
2
2
We 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).
4
5
5
6
We also provide a Docker image that can be used as developer environment to
6
7
CodeCompass. 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.
50
51
The following command installs the packages except for those which have some
51
52
known issues.
52
53
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
-
72
54
#### Ubuntu 22.04 ("Jammy Jellyfish") LTS
73
55
74
56
``` bash
@@ -82,17 +64,7 @@ sudo apt install git cmake make g++ libboost-all-dev \
82
64
#### Database engine support
83
65
84
66
Depending 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.
96
68
97
69
##### Ubuntu 22.04 ("Jammy Jellyfish") LTS
98
70
@@ -166,46 +138,6 @@ time (depending on the machine one is using).
166
138
> ** Note:** now you may delete the * Build2* toolchain installed in the
167
139
> ` <build2_install_dir> ` folder, if you do not need any longer.
168
140
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
-
209
141
### Node.js and NPM
210
142
Make sure you are using at least version 18.17 of [ Node.js] ( https://nodejs.org/en/ ) .
211
143
Unfortunately only older versions are available in the official Ubuntu repositories
0 commit comments