Mercurial > hg > orthanc
annotate INSTALL @ 3758:c98dfc2bad7e Orthanc-1.5.5
closing branch Orthanc-1.5.5
author | Sebastien Jodogne <s.jodogne@gmail.com> |
---|---|
date | Mon, 16 Mar 2020 12:17:01 +0100 |
parents | 5cd4c672d63c |
children | ba051f674f4b |
rev | line source |
---|---|
57 | 1 Orthanc - A Lightweight, RESTful DICOM Server |
2 ============================================= | |
2 | 3 |
4 | |
5 Dependencies | |
6 ------------ | |
7 | |
57 | 8 1) CMake: Orthanc uses CMake (http://www.cmake.org/) to automate its |
9 building process. | |
7 | 10 |
11 2) Python: Some code is autogenerated through Python | |
12 (http://www.python.org/). | |
2 | 13 |
7 | 14 3) Mercurial: To use the cutting edge code, a Mercurial client must be |
15 installed (http://mercurial.selenic.com/). We recommand TortoiseHg. | |
16 | |
17 W) 7-Zip: For the native build under Windows, the 7-Zip tool is used | |
18 to uncompress the third-party packages (http://www.7-zip.org/). | |
19 | |
20 You thus have to download and install CMake, Python, Mercurial and | |
21 possibly 7-Zip first. The path to their executable must be in the | |
22 "PATH" environment variable. | |
2 | 23 |
24 The other third party dependencies are automatically downloaded by the | |
25 CMake scripts. The downloaded packages are stored in the | |
26 "ThirdPartyDownloads" directory. | |
27 | |
28 | |
57 | 29 Building Orthanc at a glance |
30 ---------------------------- | |
2 | 31 |
57 | 32 To build Orthanc, you must: |
2 | 33 |
34 1) Download the source code (either using Mercurial, or through the | |
1451 | 35 official releases). For the examples below, we assume the source |
57 | 36 directory is "~/Orthanc". |
2 | 37 |
38 2) Create a build directory. For the examples below, we assume the | |
57 | 39 build directory is "~/OrthancBuild". |
2 | 40 |
1451 | 41 3) Depending on your platform, follow the build instructions below. |
42 | |
43 | |
1502
5e9c40419fb9
Upgrade to JsonCpp 0.10.5 for static and Windows builds
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
1451
diff
changeset
|
44 WARNING 1: If you do not create a fresh "~/OrthancBuild" directory |
5e9c40419fb9
Upgrade to JsonCpp 0.10.5 for static and Windows builds
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
1451
diff
changeset
|
45 after upgrading the source code (i.e. if you reuse the build directory |
5e9c40419fb9
Upgrade to JsonCpp 0.10.5 for static and Windows builds
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
1451
diff
changeset
|
46 that was used to build a different version of Orthanc), the build |
5e9c40419fb9
Upgrade to JsonCpp 0.10.5 for static and Windows builds
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
1451
diff
changeset
|
47 might fail because of changes in the compilation/linking flags. Always |
1451 | 48 prefer to force a re-build in a new directory. |
49 | |
1502
5e9c40419fb9
Upgrade to JsonCpp 0.10.5 for static and Windows builds
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
1451
diff
changeset
|
50 WARNING 2: If cmake complains about not being able to uncompress |
5e9c40419fb9
Upgrade to JsonCpp 0.10.5 for static and Windows builds
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
1451
diff
changeset
|
51 third-party dependencies, delete the "~/Orthanc/ThirdPartyDownloads/" |
5e9c40419fb9
Upgrade to JsonCpp 0.10.5 for static and Windows builds
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
1451
diff
changeset
|
52 folder, then restart cmake. |
2 | 53 |
2086 | 54 WARNING 3: If performance is important to you, make sure to add the |
55 option "-DCMAKE_BUILD_TYPE=Release" when invoking cmake. Indeed, by | |
56 default, run-time debug assertions are enabled, which can seriously | |
57 impact performance, especially if your Orthanc server stores a lot of | |
58 DICOM instances. | |
2 | 59 |
2086 | 60 |
61 Native GNU/Linux Compilation | |
62 ---------------------------- | |
2 | 63 |
634 | 64 See the file "LinuxCompilation.txt". |
2 | 65 |
287
471df5fecb1e
simplification to cmake for dcmtk
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
74
diff
changeset
|
66 |
936
9c7f5fd8a7a2
build instructions for Mac OS X
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
870
diff
changeset
|
67 Native OS X Compilation |
9c7f5fd8a7a2
build instructions for Mac OS X
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
870
diff
changeset
|
68 ----------------------- |
9c7f5fd8a7a2
build instructions for Mac OS X
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
870
diff
changeset
|
69 |
9c7f5fd8a7a2
build instructions for Mac OS X
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
870
diff
changeset
|
70 See the file "DarwinCompilation.txt". |
9c7f5fd8a7a2
build instructions for Mac OS X
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
870
diff
changeset
|
71 |
9c7f5fd8a7a2
build instructions for Mac OS X
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
870
diff
changeset
|
72 |
9c7f5fd8a7a2
build instructions for Mac OS X
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
870
diff
changeset
|
73 |
3244 | 74 Native Windows build with Microsoft Visual Studio 2008 |
75 ------------------------------------------------------ | |
385 | 76 |
77 # cd [...]\OrthancBuild | |
3244 | 78 # cmake -DSTANDALONE_BUILD=ON -DSTATIC_BUILD=ON -DALLOW_DOWNLOADS=ON \ |
79 -DUSE_LEGACY_JSONCPP=ON -G "Visual Studio 9 2008" [...]\Orthanc | |
385 | 80 |
81 Then open the "[...]/OrthancBuild/Orthanc.sln" with Visual Studio. | |
82 | |
83 NOTES: | |
2497
0611aa383e62
Upgrade to JsonCpp 1.8.4, and USE_LEGACY_JSONCPP option
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
2086
diff
changeset
|
84 * More recent versions of Visual Studio than 2008 should also |
1117
3b27b83d7247
ALLOW_DOWNLOADS for Windows builds
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
1046
diff
changeset
|
85 work. Type "cmake" without arguments to have the list of generators |
3b27b83d7247
ALLOW_DOWNLOADS for Windows builds
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
1046
diff
changeset
|
86 that are available on your computer. |
385 | 87 * You will have to install the Platform SDK (version 6 or above) for |
88 Visual Studio 2005: | |
89 http://en.wikipedia.org/wiki/Microsoft_Windows_SDK. | |
90 Read the CMake FAQ: http://goo.gl/By90B | |
2497
0611aa383e62
Upgrade to JsonCpp 1.8.4, and USE_LEGACY_JSONCPP option
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
2086
diff
changeset
|
91 * The "-DUSE_LEGACY_JSONCPP=ON" must be set for versions of |
0611aa383e62
Upgrade to JsonCpp 1.8.4, and USE_LEGACY_JSONCPP option
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
2086
diff
changeset
|
92 Visual Studio that do not support C++11 |
385 | 93 |
94 | |
3244 | 95 Orthanc as compiled above will not work properly with some Asian |
96 encodings (unit tests will fail). In international setups, you can | |
97 compile Orthanc together with ICU as follows: | |
98 | |
99 # cmake -DSTANDALONE_BUILD=ON -DSTATIC_BUILD=ON -DALLOW_DOWNLOADS=ON \ | |
100 -DBOOST_LOCALE_BACKEND=icu -DUSE_LEGACY_JSONCPP=ON -DUSE_LEGACY_LIBICU=ON \ | |
101 -G "Visual Studio 9 2008" [...]\Orthanc | |
102 | |
103 | |
104 | |
3185
c6dab987f43a
changed VS precompiled headers to support Ninja + instructions to use Ninja & QtCreator on Windows
Alain Mazy <alain@mazy.be>
parents:
2547
diff
changeset
|
105 Native Windows build with Microsoft Visual Studio 2015, Ninja and QtCreator |
c6dab987f43a
changed VS precompiled headers to support Ninja + instructions to use Ninja & QtCreator on Windows
Alain Mazy <alain@mazy.be>
parents:
2547
diff
changeset
|
106 --------------------------------------------------------------------------- |
c6dab987f43a
changed VS precompiled headers to support Ninja + instructions to use Ninja & QtCreator on Windows
Alain Mazy <alain@mazy.be>
parents:
2547
diff
changeset
|
107 |
c6dab987f43a
changed VS precompiled headers to support Ninja + instructions to use Ninja & QtCreator on Windows
Alain Mazy <alain@mazy.be>
parents:
2547
diff
changeset
|
108 Open a Visual Studio 2015 x64 Command Prompt. |
c6dab987f43a
changed VS precompiled headers to support Ninja + instructions to use Ninja & QtCreator on Windows
Alain Mazy <alain@mazy.be>
parents:
2547
diff
changeset
|
109 |
c6dab987f43a
changed VS precompiled headers to support Ninja + instructions to use Ninja & QtCreator on Windows
Alain Mazy <alain@mazy.be>
parents:
2547
diff
changeset
|
110 # cd [...]\OrthancBuild |
c6dab987f43a
changed VS precompiled headers to support Ninja + instructions to use Ninja & QtCreator on Windows
Alain Mazy <alain@mazy.be>
parents:
2547
diff
changeset
|
111 # cmake -G Ninja -DSTATIC_BUILD=ON [...]\Orthanc |
c6dab987f43a
changed VS precompiled headers to support Ninja + instructions to use Ninja & QtCreator on Windows
Alain Mazy <alain@mazy.be>
parents:
2547
diff
changeset
|
112 # ninja |
c6dab987f43a
changed VS precompiled headers to support Ninja + instructions to use Ninja & QtCreator on Windows
Alain Mazy <alain@mazy.be>
parents:
2547
diff
changeset
|
113 |
c6dab987f43a
changed VS precompiled headers to support Ninja + instructions to use Ninja & QtCreator on Windows
Alain Mazy <alain@mazy.be>
parents:
2547
diff
changeset
|
114 Then, you can open an existing project in QtCreator: |
c6dab987f43a
changed VS precompiled headers to support Ninja + instructions to use Ninja & QtCreator on Windows
Alain Mazy <alain@mazy.be>
parents:
2547
diff
changeset
|
115 * Select the CMakeLists.txt in [...]\Orthanc |
c6dab987f43a
changed VS precompiled headers to support Ninja + instructions to use Ninja & QtCreator on Windows
Alain Mazy <alain@mazy.be>
parents:
2547
diff
changeset
|
116 * Import build from [...]\OrthancBuild |
c6dab987f43a
changed VS precompiled headers to support Ninja + instructions to use Ninja & QtCreator on Windows
Alain Mazy <alain@mazy.be>
parents:
2547
diff
changeset
|
117 |
c6dab987f43a
changed VS precompiled headers to support Ninja + instructions to use Ninja & QtCreator on Windows
Alain Mazy <alain@mazy.be>
parents:
2547
diff
changeset
|
118 |
3244 | 119 Instructions to include support for Asian encodings: |
120 | |
3255 | 121 # cmake -G Ninja -T host=x64 -DSTATIC_BUILD=ON -DBOOST_LOCALE_BACKEND=icu [...]\Orthanc |
122 | |
123 The option "-T host=x64" is necessary to prevent error "C1060: | |
124 compiler is out of heap space" when compiling Orthanc with ICU. | |
3244 | 125 |
126 | |
385 | 127 |
2086 | 128 Cross-Compilation for Windows under GNU/Linux |
129 --------------------------------------------- | |
2 | 130 |
2547
8b6b0b6ece6b
MinGW, ORTHANC_FRAMEWORK_URL
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
2546
diff
changeset
|
131 Some versions of MinGW-W64 might have problems with C++11 (notably |
8b6b0b6ece6b
MinGW, ORTHANC_FRAMEWORK_URL
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
2546
diff
changeset
|
132 those shipped in Ubuntu 16.04 LTS, in the "mingw-w64" package). Use |
8b6b0b6ece6b
MinGW, ORTHANC_FRAMEWORK_URL
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
2546
diff
changeset
|
133 the following command to disable C++11: |
2 | 134 |
57 | 135 # cd ~/OrthancBuild |
2547
8b6b0b6ece6b
MinGW, ORTHANC_FRAMEWORK_URL
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
2546
diff
changeset
|
136 # cmake ~/Orthanc \ |
8b6b0b6ece6b
MinGW, ORTHANC_FRAMEWORK_URL
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
2546
diff
changeset
|
137 -DCMAKE_BUILD_TYPE=Debug \ |
8b6b0b6ece6b
MinGW, ORTHANC_FRAMEWORK_URL
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
2546
diff
changeset
|
138 -DCMAKE_TOOLCHAIN_FILE=~/Orthanc/Resources/MinGW-W64-Toolchain32.cmake \ |
8b6b0b6ece6b
MinGW, ORTHANC_FRAMEWORK_URL
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
2546
diff
changeset
|
139 -DSTANDALONE_BUILD=ON \ |
8b6b0b6ece6b
MinGW, ORTHANC_FRAMEWORK_URL
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
2546
diff
changeset
|
140 -DSTATIC_BUILD=ON \ |
8b6b0b6ece6b
MinGW, ORTHANC_FRAMEWORK_URL
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
2546
diff
changeset
|
141 -DUSE_LEGACY_JSONCPP=ON |
2 | 142 # make |
143 | |
2547
8b6b0b6ece6b
MinGW, ORTHANC_FRAMEWORK_URL
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
2546
diff
changeset
|
144 NB: Use the toolchain "MinGW-W64-Toolchain64.cmake" to produce 64bit |
8b6b0b6ece6b
MinGW, ORTHANC_FRAMEWORK_URL
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
2546
diff
changeset
|
145 Windows binaries. |
8b6b0b6ece6b
MinGW, ORTHANC_FRAMEWORK_URL
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
2546
diff
changeset
|
146 |
8b6b0b6ece6b
MinGW, ORTHANC_FRAMEWORK_URL
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
2546
diff
changeset
|
147 |
8b6b0b6ece6b
MinGW, ORTHANC_FRAMEWORK_URL
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
2546
diff
changeset
|
148 |
8b6b0b6ece6b
MinGW, ORTHANC_FRAMEWORK_URL
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
2546
diff
changeset
|
149 Legacy MinGW32 compilers (notably those shipped in Ubuntu 14.04 LTS, |
8b6b0b6ece6b
MinGW, ORTHANC_FRAMEWORK_URL
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
2546
diff
changeset
|
150 in the "mingw32" package) are incompatible with DCMTK 3.6.2 and |
8b6b0b6ece6b
MinGW, ORTHANC_FRAMEWORK_URL
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
2546
diff
changeset
|
151 C++11. Use the following command to force using DCMTK 3.6.0 and |
8b6b0b6ece6b
MinGW, ORTHANC_FRAMEWORK_URL
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
2546
diff
changeset
|
152 disable C++11: |
2 | 153 |
2547
8b6b0b6ece6b
MinGW, ORTHANC_FRAMEWORK_URL
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
2546
diff
changeset
|
154 # cd ~/OrthancBuild |
8b6b0b6ece6b
MinGW, ORTHANC_FRAMEWORK_URL
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
2546
diff
changeset
|
155 # cmake ~/Orthanc \ |
8b6b0b6ece6b
MinGW, ORTHANC_FRAMEWORK_URL
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
2546
diff
changeset
|
156 -DCMAKE_BUILD_TYPE=Debug \ |
8b6b0b6ece6b
MinGW, ORTHANC_FRAMEWORK_URL
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
2546
diff
changeset
|
157 -DCMAKE_TOOLCHAIN_FILE=~/Orthanc/Resources/MinGWToolchain.cmake \ |
8b6b0b6ece6b
MinGW, ORTHANC_FRAMEWORK_URL
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
2546
diff
changeset
|
158 -DSTANDALONE_BUILD=ON \ |
8b6b0b6ece6b
MinGW, ORTHANC_FRAMEWORK_URL
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
2546
diff
changeset
|
159 -DSTATIC_BUILD=ON \ |
3275 | 160 -DDCMTK_STATIC_VERSION=3.6.0 \ |
2547
8b6b0b6ece6b
MinGW, ORTHANC_FRAMEWORK_URL
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
2546
diff
changeset
|
161 -DUSE_LEGACY_JSONCPP=ON |
8b6b0b6ece6b
MinGW, ORTHANC_FRAMEWORK_URL
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
2546
diff
changeset
|
162 # make |