annotate LinuxCompilation.txt @ 5624:790335c99713 default tip

more detailed error message for 'Cannot write DICOM file to memory'
author Alain Mazy <am@orthanc.team>
date Tue, 14 May 2024 09:47:50 +0200
parents 59e3b6f8c5be
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
634
d775a3cb5a06 refactoring of CMake scripts
jodogne
parents:
diff changeset
1 This file is a complement to "INSTALL", which contains instructions
2086
630606097798 GNU/Linux
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 2014
diff changeset
2 that are specific to GNU/Linux.
634
d775a3cb5a06 refactoring of CMake scripts
jodogne
parents:
diff changeset
3
d775a3cb5a06 refactoring of CMake scripts
jodogne
parents:
diff changeset
4
2086
630606097798 GNU/Linux
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 2014
diff changeset
5 Static linking for GNU/Linux
630606097798 GNU/Linux
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 2014
diff changeset
6 ============================
634
d775a3cb5a06 refactoring of CMake scripts
jodogne
parents:
diff changeset
7
2086
630606097798 GNU/Linux
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 2014
diff changeset
8 The most simple way of building Orthanc under GNU/Linux consists in
634
d775a3cb5a06 refactoring of CMake scripts
jodogne
parents:
diff changeset
9 statically linking against all the third-party dependencies. In this
d775a3cb5a06 refactoring of CMake scripts
jodogne
parents:
diff changeset
10 case, the system-wide libraries will not be used. The build tool
d775a3cb5a06 refactoring of CMake scripts
jodogne
parents:
diff changeset
11 (CMake) will download the sources of all the required packages and
1208
6502517fd4af improved doc thanks to Vincent Kersten
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1150
diff changeset
12 automatically compile them.
634
d775a3cb5a06 refactoring of CMake scripts
jodogne
parents:
diff changeset
13
2086
630606097798 GNU/Linux
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 2014
diff changeset
14 This process should work on any GNU/Linux distribution, provided that a
1208
6502517fd4af improved doc thanks to Vincent Kersten
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1150
diff changeset
15 C/C++ compiler ("build-essential" in Debian-based systems), the Python
6502517fd4af improved doc thanks to Vincent Kersten
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1150
diff changeset
16 interpreter, CMake, the "unzip" system tool, and the development
6502517fd4af improved doc thanks to Vincent Kersten
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1150
diff changeset
17 package for libuuid ("uuid-dev" in Debian) are installed.
936
9c7f5fd8a7a2 build instructions for Mac OS X
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 875
diff changeset
18
634
d775a3cb5a06 refactoring of CMake scripts
jodogne
parents:
diff changeset
19
1208
6502517fd4af improved doc thanks to Vincent Kersten
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1150
diff changeset
20 We now make the assumption that Orthanc source code is placed in the
6502517fd4af improved doc thanks to Vincent Kersten
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1150
diff changeset
21 folder "~/Orthanc" and that the binaries will be compiled to
4091
19a2f1d2b816 moved CMakeLists.txt for the server to the OrthancServer folder
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 3869
diff changeset
22 "~/Orthanc/Build". To build binaries with debug information:
634
d775a3cb5a06 refactoring of CMake scripts
jodogne
parents:
diff changeset
23
4091
19a2f1d2b816 moved CMakeLists.txt for the server to the OrthancServer folder
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 3869
diff changeset
24 # cd ./Build
19a2f1d2b816 moved CMakeLists.txt for the server to the OrthancServer folder
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 3869
diff changeset
25 # cmake -DSTATIC_BUILD=ON -DCMAKE_BUILD_TYPE=Debug ../OrthancServer/
634
d775a3cb5a06 refactoring of CMake scripts
jodogne
parents:
diff changeset
26 # make
d775a3cb5a06 refactoring of CMake scripts
jodogne
parents:
diff changeset
27 # make doc
d775a3cb5a06 refactoring of CMake scripts
jodogne
parents:
diff changeset
28
d775a3cb5a06 refactoring of CMake scripts
jodogne
parents:
diff changeset
29
d775a3cb5a06 refactoring of CMake scripts
jodogne
parents:
diff changeset
30 To build a release version:
d775a3cb5a06 refactoring of CMake scripts
jodogne
parents:
diff changeset
31
4091
19a2f1d2b816 moved CMakeLists.txt for the server to the OrthancServer folder
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 3869
diff changeset
32 # cd ./Build
19a2f1d2b816 moved CMakeLists.txt for the server to the OrthancServer folder
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 3869
diff changeset
33 # cmake -DSTATIC_BUILD=ON -DCMAKE_BUILD_TYPE=Release ../OrthancServer/
634
d775a3cb5a06 refactoring of CMake scripts
jodogne
parents:
diff changeset
34 # make
d775a3cb5a06 refactoring of CMake scripts
jodogne
parents:
diff changeset
35 # make doc
d775a3cb5a06 refactoring of CMake scripts
jodogne
parents:
diff changeset
36
d775a3cb5a06 refactoring of CMake scripts
jodogne
parents:
diff changeset
37
1208
6502517fd4af improved doc thanks to Vincent Kersten
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1150
diff changeset
38 Note 1- When the "STATIC_BUILD" option is set to "ON", the build tool
634
d775a3cb5a06 refactoring of CMake scripts
jodogne
parents:
diff changeset
39 will not ask you the permission to download packages from the
d775a3cb5a06 refactoring of CMake scripts
jodogne
parents:
diff changeset
40 Internet.
d775a3cb5a06 refactoring of CMake scripts
jodogne
parents:
diff changeset
41
1208
6502517fd4af improved doc thanks to Vincent Kersten
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1150
diff changeset
42 Note 2- If the development package of libuuid was not installed when
6502517fd4af improved doc thanks to Vincent Kersten
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1150
diff changeset
43 first invoking cmake, you will have to manually remove the build
4091
19a2f1d2b816 moved CMakeLists.txt for the server to the OrthancServer folder
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 3869
diff changeset
44 directory ("rm -rf ~/Orthanc/Build") after installing this package,
1208
6502517fd4af improved doc thanks to Vincent Kersten
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1150
diff changeset
45 then run cmake again.
6502517fd4af improved doc thanks to Vincent Kersten
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1150
diff changeset
46
3869
c23ef85c7d9c fix typo, as suggested by jackoliverjoy on github mirror pull request 2
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 3544
diff changeset
47 Note 3- To build the documentation, you will have to install doxygen.
1219
c4ae92753d57 note about doxygen
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1208
diff changeset
48
634
d775a3cb5a06 refactoring of CMake scripts
jodogne
parents:
diff changeset
49
2086
630606097798 GNU/Linux
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 2014
diff changeset
50 Use system-wide libraries under GNU/Linux
630606097798 GNU/Linux
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 2014
diff changeset
51 =========================================
634
d775a3cb5a06 refactoring of CMake scripts
jodogne
parents:
diff changeset
52
2086
630606097798 GNU/Linux
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 2014
diff changeset
53 Under GNU/Linux, by default, Orthanc links against the shared
630606097798 GNU/Linux
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 2014
diff changeset
54 libraries of your system (the "STATIC_BUILD" option is set to
630606097798 GNU/Linux
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 2014
diff changeset
55 "OFF"). This greatly speeds up the compilation. This is also required
630606097798 GNU/Linux
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 2014
diff changeset
56 when building packages for GNU/Linux distributions. Because using
630606097798 GNU/Linux
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 2014
diff changeset
57 system libraries is the default behavior, you just have to use:
634
d775a3cb5a06 refactoring of CMake scripts
jodogne
parents:
diff changeset
58
4091
19a2f1d2b816 moved CMakeLists.txt for the server to the OrthancServer folder
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 3869
diff changeset
59 # cd ./Build
19a2f1d2b816 moved CMakeLists.txt for the server to the OrthancServer folder
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 3869
diff changeset
60 # cmake -DCMAKE_BUILD_TYPE=Debug ../OrthancServer
634
d775a3cb5a06 refactoring of CMake scripts
jodogne
parents:
diff changeset
61 # make
d775a3cb5a06 refactoring of CMake scripts
jodogne
parents:
diff changeset
62
3355
eb18269de57f Fixed typo
Benjamin Golinvaux <bgo@osimis.io>
parents: 3179
diff changeset
63 Note that to build the documentation, you will have to install doxygen.
634
d775a3cb5a06 refactoring of CMake scripts
jodogne
parents:
diff changeset
64
2086
630606097798 GNU/Linux
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 2014
diff changeset
65 However, on some GNU/Linux distributions, it is still required to
630606097798 GNU/Linux
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 2014
diff changeset
66 download and static link against some third-party dependencies,
630606097798 GNU/Linux
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 2014
diff changeset
67 e.g. when the system-wide library is not shipped or is
630606097798 GNU/Linux
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 2014
diff changeset
68 outdated. Because of difference in the packaging of the various
630606097798 GNU/Linux
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 2014
diff changeset
69 GNU/Linux distribution, it is also sometimes required to fine-tune
630606097798 GNU/Linux
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 2014
diff changeset
70 some options.
634
d775a3cb5a06 refactoring of CMake scripts
jodogne
parents:
diff changeset
71
2086
630606097798 GNU/Linux
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 2014
diff changeset
72 You will find below build instructions for specific GNU/Linux
634
d775a3cb5a06 refactoring of CMake scripts
jodogne
parents:
diff changeset
73 distributions. Distributions tagged by "SUPPORTED" are tested by
d775a3cb5a06 refactoring of CMake scripts
jodogne
parents:
diff changeset
74 Sébastien Jodogne. Distributions tagged by "CONTRIBUTED" come from
d775a3cb5a06 refactoring of CMake scripts
jodogne
parents:
diff changeset
75 Orthanc users.
d775a3cb5a06 refactoring of CMake scripts
jodogne
parents:
diff changeset
76
d775a3cb5a06 refactoring of CMake scripts
jodogne
parents:
diff changeset
77
636
9ac1e8383877 build instructions for Debian Sid and Fedora 18
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 635
diff changeset
78 SUPPORTED - Debian Jessie/Sid
9ac1e8383877 build instructions for Debian Sid and Fedora 18
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 635
diff changeset
79 -----------------------------
9ac1e8383877 build instructions for Debian Sid and Fedora 18
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 635
diff changeset
80
4173
24759c286b5e missing installation of patch in LinuxInstallation.txt
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 4168
diff changeset
81 # sudo apt-get install build-essential unzip cmake mercurial patch \
636
9ac1e8383877 build instructions for Debian Sid and Fedora 18
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 635
diff changeset
82 uuid-dev libcurl4-openssl-dev liblua5.1-0-dev \
1974
ea4b8975d064 no need for google log anymore
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1622
diff changeset
83 libgtest-dev libpng-dev libjpeg-dev \
678
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 677
diff changeset
84 libsqlite3-dev libssl-dev zlib1g-dev libdcmtk2-dev \
1077
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1046
diff changeset
85 libboost-all-dev libwrap0-dev libjsoncpp-dev libpugixml-dev
636
9ac1e8383877 build instructions for Debian Sid and Fedora 18
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 635
diff changeset
86
4096
d633e5bb7ba3 reusing of ISqlLookupFormatter and DatabaseConstraint in orthanc-databases project
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 4091
diff changeset
87 # cd ./Build
651
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 645
diff changeset
88 # cmake -DALLOW_DOWNLOADS=ON \
3138
ab46e537f92e renamed class MongooseServer as HttpServer, CivetWeb made default HTTP server
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 3131
diff changeset
89 -DUSE_SYSTEM_CIVETWEB=OFF \
2403
06536b4f30c0 rename USE_GOOGLE_TEST_DEBIAN_SOURCE_PACKAGE as USE_GOOGLE_TEST_DEBIAN_PACKAGE
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 2402
diff changeset
90 -DUSE_GOOGLE_TEST_DEBIAN_PACKAGE=ON \
1078
5d35f9e16fd1 compilation notes
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1077
diff changeset
91 -DDCMTK_LIBRARIES=dcmjpls \
2709
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 2403
diff changeset
92 -DCMAKE_BUILD_TYPE=Release \
4091
19a2f1d2b816 moved CMakeLists.txt for the server to the OrthancServer folder
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 3869
diff changeset
93 ../OrthancServer/
19a2f1d2b816 moved CMakeLists.txt for the server to the OrthancServer folder
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 3869
diff changeset
94 # make
636
9ac1e8383877 build instructions for Debian Sid and Fedora 18
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 635
diff changeset
95
9ac1e8383877 build instructions for Debian Sid and Fedora 18
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 635
diff changeset
96 Note: Have also a look at the official package:
9ac1e8383877 build instructions for Debian Sid and Fedora 18
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 635
diff changeset
97 http://anonscm.debian.org/viewvc/debian-med/trunk/packages/orthanc/trunk/debian/
9ac1e8383877 build instructions for Debian Sid and Fedora 18
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 635
diff changeset
98
9ac1e8383877 build instructions for Debian Sid and Fedora 18
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 635
diff changeset
99
3405
408ffcb4038f reorganizing build instructions
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 3359
diff changeset
100 SUPPORTED - Ubuntu 14.04 LTS
408ffcb4038f reorganizing build instructions
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 3359
diff changeset
101 ----------------------------
645
75af92b18e23 build notes for ubuntu 12.04 lts
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 640
diff changeset
102
4173
24759c286b5e missing installation of patch in LinuxInstallation.txt
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 4168
diff changeset
103 # sudo apt-get install build-essential unzip cmake mercurial patch \
3405
408ffcb4038f reorganizing build instructions
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 3359
diff changeset
104 uuid-dev libcurl4-openssl-dev \
408ffcb4038f reorganizing build instructions
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 3359
diff changeset
105 libgtest-dev libpng-dev libsqlite3-dev libssl-dev libjpeg-dev \
408ffcb4038f reorganizing build instructions
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 3359
diff changeset
106 zlib1g-dev libdcmtk2-dev libboost-all-dev libwrap0-dev \
408ffcb4038f reorganizing build instructions
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 3359
diff changeset
107 libcharls-dev libjsoncpp-dev libpugixml-dev
645
75af92b18e23 build notes for ubuntu 12.04 lts
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 640
diff changeset
108
4096
d633e5bb7ba3 reusing of ISqlLookupFormatter and DatabaseConstraint in orthanc-databases project
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 4091
diff changeset
109 # cd ./Build
3405
408ffcb4038f reorganizing build instructions
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 3359
diff changeset
110 # cmake -DALLOW_DOWNLOADS=ON \
408ffcb4038f reorganizing build instructions
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 3359
diff changeset
111 -DUSE_GOOGLE_TEST_DEBIAN_PACKAGE=ON \
4168
88d704264d64 fix for ubuntu 14.04
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 4096
diff changeset
112 -DUSE_SYSTEM_BOOST=OFF \
3359
815b81142ff7 Enable custom logging functions to redirect to emscripten specific logging calls
Benjamin Golinvaux <bgo@osimis.io>
parents: 3355
diff changeset
113 -DUSE_SYSTEM_CIVETWEB=OFF \
4168
88d704264d64 fix for ubuntu 14.04
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 4096
diff changeset
114 -DUSE_SYSTEM_DCMTK=OFF \
3359
815b81142ff7 Enable custom logging functions to redirect to emscripten specific logging calls
Benjamin Golinvaux <bgo@osimis.io>
parents: 3355
diff changeset
115 -DUSE_SYSTEM_JSONCPP=OFF \
3481
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 3458
diff changeset
116 -DUSE_SYSTEM_LUA=OFF \
4261
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 4173
diff changeset
117 -DCIVETWEB_OPENSSL_API=1.0 \
2709
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 2403
diff changeset
118 -DCMAKE_BUILD_TYPE=Release \
4091
19a2f1d2b816 moved CMakeLists.txt for the server to the OrthancServer folder
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 3869
diff changeset
119 ../OrthancServer/
3405
408ffcb4038f reorganizing build instructions
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 3359
diff changeset
120 # make
636
9ac1e8383877 build instructions for Debian Sid and Fedora 18
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 635
diff changeset
121
3405
408ffcb4038f reorganizing build instructions
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 3359
diff changeset
122
408ffcb4038f reorganizing build instructions
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 3359
diff changeset
123 SUPPORTED - Ubuntu 16.04 LTS
408ffcb4038f reorganizing build instructions
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 3359
diff changeset
124 ----------------------------
1350
724dc4e17d38 build ubuntu 14.04 lts
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1349
diff changeset
125
4173
24759c286b5e missing installation of patch in LinuxInstallation.txt
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 4168
diff changeset
126 # sudo apt-get install build-essential unzip cmake mercurial patch \
3544
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 3529
diff changeset
127 uuid-dev libcurl4-openssl-dev liblua5.3-dev \
1622
0b8e62bd9c48 build instructions for centos 6
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1552
diff changeset
128 libgtest-dev libpng-dev libsqlite3-dev libssl-dev libjpeg-dev \
3544
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 3529
diff changeset
129 zlib1g-dev libdcmtk-dev libboost-all-dev libwrap0-dev \
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 3529
diff changeset
130 libcharls-dev libjsoncpp-dev libpugixml-dev tzdata
1552
729d69336919 build instructions
jodogne
parents: 1415
diff changeset
131
4096
d633e5bb7ba3 reusing of ISqlLookupFormatter and DatabaseConstraint in orthanc-databases project
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 4091
diff changeset
132 # cd ./Build
1350
724dc4e17d38 build ubuntu 14.04 lts
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1349
diff changeset
133 # cmake -DALLOW_DOWNLOADS=ON \
2403
06536b4f30c0 rename USE_GOOGLE_TEST_DEBIAN_SOURCE_PACKAGE as USE_GOOGLE_TEST_DEBIAN_PACKAGE
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 2402
diff changeset
134 -DUSE_GOOGLE_TEST_DEBIAN_PACKAGE=ON \
3138
ab46e537f92e renamed class MongooseServer as HttpServer, CivetWeb made default HTTP server
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 3131
diff changeset
135 -DUSE_SYSTEM_CIVETWEB=OFF \
4261
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 4173
diff changeset
136 -DCIVETWEB_OPENSSL_API=1.0 \
1350
724dc4e17d38 build ubuntu 14.04 lts
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1349
diff changeset
137 -DDCMTK_LIBRARIES=dcmjpls \
2709
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 2403
diff changeset
138 -DCMAKE_BUILD_TYPE=Release \
4091
19a2f1d2b816 moved CMakeLists.txt for the server to the OrthancServer folder
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 3869
diff changeset
139 ../OrthancServer/
3179
fca730c267d7 New primitives to set and refresh metrics
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 3138
diff changeset
140 # make
fca730c267d7 New primitives to set and refresh metrics
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 3138
diff changeset
141
fca730c267d7 New primitives to set and refresh metrics
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 3138
diff changeset
142
fca730c267d7 New primitives to set and refresh metrics
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 3138
diff changeset
143 NB: Instructions to use clang and ninja:
fca730c267d7 New primitives to set and refresh metrics
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 3138
diff changeset
144
fca730c267d7 New primitives to set and refresh metrics
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 3138
diff changeset
145 # sudo apt-get install ninja-build
4096
d633e5bb7ba3 reusing of ISqlLookupFormatter and DatabaseConstraint in orthanc-databases project
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 4091
diff changeset
146 # cd ./Build
3179
fca730c267d7 New primitives to set and refresh metrics
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 3138
diff changeset
147 # CC=/usr/bin/clang CXX=/usr/bin/clang++ cmake -G Ninja \
fca730c267d7 New primitives to set and refresh metrics
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 3138
diff changeset
148 -DALLOW_DOWNLOADS=ON \
fca730c267d7 New primitives to set and refresh metrics
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 3138
diff changeset
149 -DUSE_GOOGLE_TEST_DEBIAN_PACKAGE=ON \
fca730c267d7 New primitives to set and refresh metrics
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 3138
diff changeset
150 -DUSE_SYSTEM_CIVETWEB=OFF \
fca730c267d7 New primitives to set and refresh metrics
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 3138
diff changeset
151 -DDCMTK_LIBRARIES=dcmjpls \
fca730c267d7 New primitives to set and refresh metrics
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 3138
diff changeset
152 -DCMAKE_BUILD_TYPE=Release \
4091
19a2f1d2b816 moved CMakeLists.txt for the server to the OrthancServer folder
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 3869
diff changeset
153 ../OrthancServer/
3179
fca730c267d7 New primitives to set and refresh metrics
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 3138
diff changeset
154 # ninja
1350
724dc4e17d38 build ubuntu 14.04 lts
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1349
diff changeset
155
724dc4e17d38 build ubuntu 14.04 lts
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1349
diff changeset
156
3458
4e34fd3e226a ubuntu 18.04
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 3405
diff changeset
157 SUPPORTED - Ubuntu 18.04 LTS
4e34fd3e226a ubuntu 18.04
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 3405
diff changeset
158 ----------------------------
4e34fd3e226a ubuntu 18.04
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 3405
diff changeset
159
4173
24759c286b5e missing installation of patch in LinuxInstallation.txt
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 4168
diff changeset
160 # sudo apt-get install build-essential unzip cmake mercurial patch \
3485
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 3481
diff changeset
161 uuid-dev libcurl4-openssl-dev liblua5.3-dev \
3458
4e34fd3e226a ubuntu 18.04
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 3405
diff changeset
162 libgtest-dev libpng-dev libsqlite3-dev libssl-dev libjpeg-dev \
3485
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 3481
diff changeset
163 zlib1g-dev libdcmtk-dev libboost-all-dev libwrap0-dev \
5290
0035d4318594 fix build instructions
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 4929
diff changeset
164 libcharls-dev libjsoncpp-dev libpugixml-dev locales protobuf-compiler
3458
4e34fd3e226a ubuntu 18.04
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 3405
diff changeset
165
4096
d633e5bb7ba3 reusing of ISqlLookupFormatter and DatabaseConstraint in orthanc-databases project
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 4091
diff changeset
166 # cd ./Build
3458
4e34fd3e226a ubuntu 18.04
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 3405
diff changeset
167 # cmake -DALLOW_DOWNLOADS=ON \
4e34fd3e226a ubuntu 18.04
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 3405
diff changeset
168 -DUSE_GOOGLE_TEST_DEBIAN_PACKAGE=ON \
4e34fd3e226a ubuntu 18.04
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 3405
diff changeset
169 -DUSE_SYSTEM_CIVETWEB=OFF \
4e34fd3e226a ubuntu 18.04
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 3405
diff changeset
170 -DDCMTK_LIBRARIES=dcmjpls \
4e34fd3e226a ubuntu 18.04
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 3405
diff changeset
171 -DCMAKE_BUILD_TYPE=Release \
4091
19a2f1d2b816 moved CMakeLists.txt for the server to the OrthancServer folder
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 3869
diff changeset
172 ../OrthancServer/
3458
4e34fd3e226a ubuntu 18.04
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 3405
diff changeset
173 # make
4e34fd3e226a ubuntu 18.04
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 3405
diff changeset
174
4e34fd3e226a ubuntu 18.04
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 3405
diff changeset
175
4e34fd3e226a ubuntu 18.04
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 3405
diff changeset
176 NB: A suitable environment for locales can be setup as follows:
4e34fd3e226a ubuntu 18.04
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 3405
diff changeset
177
4e34fd3e226a ubuntu 18.04
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 3405
diff changeset
178 # echo "en_US.UTF-8 UTF-8" > /etc/locale.gen
4e34fd3e226a ubuntu 18.04
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 3405
diff changeset
179 # locale-gen
4e34fd3e226a ubuntu 18.04
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 3405
diff changeset
180
4e34fd3e226a ubuntu 18.04
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 3405
diff changeset
181
1350
724dc4e17d38 build ubuntu 14.04 lts
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1349
diff changeset
182
1415
728c22ade2e2 cleaning
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1406
diff changeset
183 SUPPORTED - Fedora 20-22
728c22ade2e2 cleaning
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1406
diff changeset
184 ------------------------
728c22ade2e2 cleaning
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1406
diff changeset
185
728c22ade2e2 cleaning
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1406
diff changeset
186 # sudo yum install unzip make automake gcc gcc-c++ python cmake \
1974
ea4b8975d064 no need for google log anymore
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1622
diff changeset
187 boost-devel curl-devel dcmtk-devel \
1622
0b8e62bd9c48 build instructions for centos 6
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1552
diff changeset
188 gtest-devel libpng-devel libsqlite3x-devel libuuid-devel jpeg-devel \
1415
728c22ade2e2 cleaning
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1406
diff changeset
189 mongoose-devel openssl-devel jsoncpp-devel lua-devel pugixml-devel
728c22ade2e2 cleaning
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1406
diff changeset
190
728c22ade2e2 cleaning
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1406
diff changeset
191 You will also have to install "gflags-devel" on Fedora 21&22:
728c22ade2e2 cleaning
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1406
diff changeset
192
728c22ade2e2 cleaning
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1406
diff changeset
193 # sudo yum install gflags-devel
728c22ade2e2 cleaning
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1406
diff changeset
194
4096
d633e5bb7ba3 reusing of ISqlLookupFormatter and DatabaseConstraint in orthanc-databases project
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 4091
diff changeset
195 # cd ./Build
1415
728c22ade2e2 cleaning
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1406
diff changeset
196 # cmake "-DDCMTK_LIBRARIES=CharLS" \
4261
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 4173
diff changeset
197 -DCIVETWEB_OPENSSL_API=1.0 \
3138
ab46e537f92e renamed class MongooseServer as HttpServer, CivetWeb made default HTTP server
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 3131
diff changeset
198 -DENABLE_CIVETWEB=OFF \
1415
728c22ade2e2 cleaning
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1406
diff changeset
199 -DSYSTEM_MONGOOSE_USE_CALLBACKS=OFF \
2709
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 2403
diff changeset
200 -DCMAKE_BUILD_TYPE=Release \
4091
19a2f1d2b816 moved CMakeLists.txt for the server to the OrthancServer folder
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 3869
diff changeset
201 ../OrthancServer/
19a2f1d2b816 moved CMakeLists.txt for the server to the OrthancServer folder
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 3869
diff changeset
202 # make
1415
728c22ade2e2 cleaning
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1406
diff changeset
203
728c22ade2e2 cleaning
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1406
diff changeset
204 Note: Have also a look at the official package:
728c22ade2e2 cleaning
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1406
diff changeset
205 http://pkgs.fedoraproject.org/cgit/orthanc.git/tree/?h=f18
728c22ade2e2 cleaning
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1406
diff changeset
206
728c22ade2e2 cleaning
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1406
diff changeset
207
728c22ade2e2 cleaning
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1406
diff changeset
208
1337
afaa55d42ddd FreeBSD support
jodogne
parents: 1219
diff changeset
209 SUPPORTED - FreeBSD 10.1
afaa55d42ddd FreeBSD support
jodogne
parents: 1219
diff changeset
210 ------------------------
afaa55d42ddd FreeBSD support
jodogne
parents: 1219
diff changeset
211
1622
0b8e62bd9c48 build instructions for centos 6
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1552
diff changeset
212 # pkg install jsoncpp pugixml lua51 curl googletest dcmtk cmake jpeg \
1974
ea4b8975d064 no need for google log anymore
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1622
diff changeset
213 e2fsprogs-libuuid boost-libs sqlite3 python libiconv
1337
afaa55d42ddd FreeBSD support
jodogne
parents: 1219
diff changeset
214
4096
d633e5bb7ba3 reusing of ISqlLookupFormatter and DatabaseConstraint in orthanc-databases project
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 4091
diff changeset
215 # cd ./Build
1337
afaa55d42ddd FreeBSD support
jodogne
parents: 1219
diff changeset
216 # cmake -DALLOW_DOWNLOADS=ON \
3138
ab46e537f92e renamed class MongooseServer as HttpServer, CivetWeb made default HTTP server
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 3131
diff changeset
217 -DUSE_SYSTEM_CIVETWEB=OFF \
1337
afaa55d42ddd FreeBSD support
jodogne
parents: 1219
diff changeset
218 -DDCMTK_LIBRARIES="dcmdsig;charls;dcmjpls" \
2709
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 2403
diff changeset
219 -DCMAKE_BUILD_TYPE=Release \
4091
19a2f1d2b816 moved CMakeLists.txt for the server to the OrthancServer folder
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 3869
diff changeset
220 ../OrthancServer/
19a2f1d2b816 moved CMakeLists.txt for the server to the OrthancServer folder
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 3869
diff changeset
221 # make
1337
afaa55d42ddd FreeBSD support
jodogne
parents: 1219
diff changeset
222
636
9ac1e8383877 build instructions for Debian Sid and Fedora 18
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 635
diff changeset
223
9ac1e8383877 build instructions for Debian Sid and Fedora 18
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 635
diff changeset
224
2086
630606097798 GNU/Linux
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 2014
diff changeset
225 Other GNU/Linux distributions?
630606097798 GNU/Linux
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 2014
diff changeset
226 ------------------------------
634
d775a3cb5a06 refactoring of CMake scripts
jodogne
parents:
diff changeset
227
3405
408ffcb4038f reorganizing build instructions
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 3359
diff changeset
228 Don't hesitate to send us your build instructions (by a mail to
3063
fa5ad4368fe3 new mail address
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 3006
diff changeset
229 s.jodogne@orthanc-labs.com)!
634
d775a3cb5a06 refactoring of CMake scripts
jodogne
parents:
diff changeset
230
3405
408ffcb4038f reorganizing build instructions
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 3359
diff changeset
231 The file "./Resources/OldBuildInstructions.txt" contains build
408ffcb4038f reorganizing build instructions
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 3359
diff changeset
232 instructions that once worked for older versions of Orthanc or older
408ffcb4038f reorganizing build instructions
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 3359
diff changeset
233 GNU/Linux distributions, but are not tested anymore. Even if they may
408ffcb4038f reorganizing build instructions
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 3359
diff changeset
234 not work anymore as such, they can serve as a basis.
408ffcb4038f reorganizing build instructions
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 3359
diff changeset
235
634
d775a3cb5a06 refactoring of CMake scripts
jodogne
parents:
diff changeset
236 You can find build instructions for Orthanc up to 0.7.0 on the
d775a3cb5a06 refactoring of CMake scripts
jodogne
parents:
diff changeset
237 following Wiki page:
5432
59e3b6f8c5be migration to UCLouvain servers
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 5290
diff changeset
238 https://orthanc.uclouvain.be/book/faq/compiling-old.html
634
d775a3cb5a06 refactoring of CMake scripts
jodogne
parents:
diff changeset
239
d775a3cb5a06 refactoring of CMake scripts
jodogne
parents:
diff changeset
240 These instructions will not work as such beyond Orthanc 0.7.0, but
d775a3cb5a06 refactoring of CMake scripts
jodogne
parents:
diff changeset
241 they might give indications.
d775a3cb5a06 refactoring of CMake scripts
jodogne
parents:
diff changeset
242
d775a3cb5a06 refactoring of CMake scripts
jodogne
parents:
diff changeset
243
d775a3cb5a06 refactoring of CMake scripts
jodogne
parents:
diff changeset
244
3529
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 3485
diff changeset
245 Additional information
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 3485
diff changeset
246 ----------------------
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 3485
diff changeset
247
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 3485
diff changeset
248 * It has been reported that distributions coming with Boost >= 1.70.0
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 3485
diff changeset
249 might need the option "-DBoost_NO_BOOST_CMAKE=ON" to be added to the
4929
2a58c4df3d47 note about -std=c++11
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 4261
diff changeset
250 "cmake" command line.
3529
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 3485
diff changeset
251 https://groups.google.com/d/msg/orthanc-users/nXq2qOndw9c/0PGnaOqiAgAJ
4929
2a58c4df3d47 note about -std=c++11
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 4261
diff changeset
252
2a58c4df3d47 note about -std=c++11
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 4261
diff changeset
253 * Starting with Orthanc 1.10.0, if you use a distribution with an old
2a58c4df3d47 note about -std=c++11
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 4261
diff changeset
254 version of gcc (typically gcc 4.8 on CentOS), you might have to add
2a58c4df3d47 note about -std=c++11
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 4261
diff changeset
255 the option "-DCMAKE_CXX_FLAGS=-std=c++11" when invoking the "cmake"
2a58c4df3d47 note about -std=c++11
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 4261
diff changeset
256 command line. This flag was previously automatically added, but this
2a58c4df3d47 note about -std=c++11
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 4261
diff changeset
257 feature was removed according to the following discussion:
2a58c4df3d47 note about -std=c++11
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 4261
diff changeset
258 https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=1000222
3529
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 3485
diff changeset
259
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 3485
diff changeset
260
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 3485
diff changeset
261
634
d775a3cb5a06 refactoring of CMake scripts
jodogne
parents:
diff changeset
262 Using ccache
d775a3cb5a06 refactoring of CMake scripts
jodogne
parents:
diff changeset
263 ============
d775a3cb5a06 refactoring of CMake scripts
jodogne
parents:
diff changeset
264
2086
630606097798 GNU/Linux
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 2014
diff changeset
265 Under GNU/Linux, you also have the opportunity to use "ccache" to
634
d775a3cb5a06 refactoring of CMake scripts
jodogne
parents:
diff changeset
266 dramatically decrease the compilation time when rebuilding
d775a3cb5a06 refactoring of CMake scripts
jodogne
parents:
diff changeset
267 Orthanc. This is especially useful for developers. To this end, you
d775a3cb5a06 refactoring of CMake scripts
jodogne
parents:
diff changeset
268 would use:
d775a3cb5a06 refactoring of CMake scripts
jodogne
parents:
diff changeset
269
4091
19a2f1d2b816 moved CMakeLists.txt for the server to the OrthancServer folder
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 3869
diff changeset
270 # CC="ccache gcc" CXX="ccache g++" cmake ../OrthancServer/ [Other Options]