annotate INSTALL @ 3103:81b58b549845

back to using 'var' instead of 'let' since let is not supported by many old browsers. All variables declaration have been moved to the top of the function to better show that their scope is the function
author Alain Mazy <alain@mazy.be>
date Thu, 10 Jan 2019 10:51:36 +0100
parents 8b6b0b6ece6b
children c6dab987f43a
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
57
4bc019d2f969 renaming
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 48
diff changeset
1 Orthanc - A Lightweight, RESTful DICOM Server
4bc019d2f969 renaming
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 48
diff changeset
2 =============================================
2
67a6978503b7 fixing Windows build
Jodogne@Laptop
parents: 0
diff changeset
3
67a6978503b7 fixing Windows build
Jodogne@Laptop
parents: 0
diff changeset
4
67a6978503b7 fixing Windows build
Jodogne@Laptop
parents: 0
diff changeset
5 Dependencies
67a6978503b7 fixing Windows build
Jodogne@Laptop
parents: 0
diff changeset
6 ------------
67a6978503b7 fixing Windows build
Jodogne@Laptop
parents: 0
diff changeset
7
57
4bc019d2f969 renaming
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 48
diff changeset
8 1) CMake: Orthanc uses CMake (http://www.cmake.org/) to automate its
4bc019d2f969 renaming
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 48
diff changeset
9 building process.
7
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 2
diff changeset
10
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 2
diff changeset
11 2) Python: Some code is autogenerated through Python
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 2
diff changeset
12 (http://www.python.org/).
2
67a6978503b7 fixing Windows build
Jodogne@Laptop
parents: 0
diff changeset
13
7
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 2
diff changeset
14 3) Mercurial: To use the cutting edge code, a Mercurial client must be
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 2
diff changeset
15 installed (http://mercurial.selenic.com/). We recommand TortoiseHg.
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 2
diff changeset
16
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 2
diff changeset
17 W) 7-Zip: For the native build under Windows, the 7-Zip tool is used
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 2
diff changeset
18 to uncompress the third-party packages (http://www.7-zip.org/).
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 2
diff changeset
19
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 2
diff changeset
20 You thus have to download and install CMake, Python, Mercurial and
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 2
diff changeset
21 possibly 7-Zip first. The path to their executable must be in the
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 2
diff changeset
22 "PATH" environment variable.
2
67a6978503b7 fixing Windows build
Jodogne@Laptop
parents: 0
diff changeset
23
67a6978503b7 fixing Windows build
Jodogne@Laptop
parents: 0
diff changeset
24 The other third party dependencies are automatically downloaded by the
67a6978503b7 fixing Windows build
Jodogne@Laptop
parents: 0
diff changeset
25 CMake scripts. The downloaded packages are stored in the
67a6978503b7 fixing Windows build
Jodogne@Laptop
parents: 0
diff changeset
26 "ThirdPartyDownloads" directory.
67a6978503b7 fixing Windows build
Jodogne@Laptop
parents: 0
diff changeset
27
67a6978503b7 fixing Windows build
Jodogne@Laptop
parents: 0
diff changeset
28
57
4bc019d2f969 renaming
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 48
diff changeset
29 Building Orthanc at a glance
4bc019d2f969 renaming
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 48
diff changeset
30 ----------------------------
2
67a6978503b7 fixing Windows build
Jodogne@Laptop
parents: 0
diff changeset
31
57
4bc019d2f969 renaming
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 48
diff changeset
32 To build Orthanc, you must:
2
67a6978503b7 fixing Windows build
Jodogne@Laptop
parents: 0
diff changeset
33
67a6978503b7 fixing Windows build
Jodogne@Laptop
parents: 0
diff changeset
34 1) Download the source code (either using Mercurial, or through the
1451
538fc8359a9a INSTALL
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1117
diff changeset
35 official releases). For the examples below, we assume the source
57
4bc019d2f969 renaming
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 48
diff changeset
36 directory is "~/Orthanc".
2
67a6978503b7 fixing Windows build
Jodogne@Laptop
parents: 0
diff changeset
37
67a6978503b7 fixing Windows build
Jodogne@Laptop
parents: 0
diff changeset
38 2) Create a build directory. For the examples below, we assume the
57
4bc019d2f969 renaming
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 48
diff changeset
39 build directory is "~/OrthancBuild".
2
67a6978503b7 fixing Windows build
Jodogne@Laptop
parents: 0
diff changeset
40
1451
538fc8359a9a INSTALL
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1117
diff changeset
41 3) Depending on your platform, follow the build instructions below.
538fc8359a9a INSTALL
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1117
diff changeset
42
538fc8359a9a INSTALL
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1117
diff changeset
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
538fc8359a9a INSTALL
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1117
diff changeset
48 prefer to force a re-build in a new directory.
538fc8359a9a INSTALL
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1117
diff changeset
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
67a6978503b7 fixing Windows build
Jodogne@Laptop
parents: 0
diff changeset
53
2086
630606097798 GNU/Linux
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1502
diff changeset
54 WARNING 3: If performance is important to you, make sure to add the
630606097798 GNU/Linux
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1502
diff changeset
55 option "-DCMAKE_BUILD_TYPE=Release" when invoking cmake. Indeed, by
630606097798 GNU/Linux
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1502
diff changeset
56 default, run-time debug assertions are enabled, which can seriously
630606097798 GNU/Linux
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1502
diff changeset
57 impact performance, especially if your Orthanc server stores a lot of
630606097798 GNU/Linux
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1502
diff changeset
58 DICOM instances.
2
67a6978503b7 fixing Windows build
Jodogne@Laptop
parents: 0
diff changeset
59
2086
630606097798 GNU/Linux
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1502
diff changeset
60
630606097798 GNU/Linux
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1502
diff changeset
61 Native GNU/Linux Compilation
630606097798 GNU/Linux
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1502
diff changeset
62 ----------------------------
2
67a6978503b7 fixing Windows build
Jodogne@Laptop
parents: 0
diff changeset
63
634
d775a3cb5a06 refactoring of CMake scripts
jodogne
parents: 385
diff changeset
64 See the file "LinuxCompilation.txt".
2
67a6978503b7 fixing Windows build
Jodogne@Laptop
parents: 0
diff changeset
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
1117
3b27b83d7247 ALLOW_DOWNLOADS for Windows builds
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1046
diff changeset
74 Native Windows build with Microsoft Visual Studio
3b27b83d7247 ALLOW_DOWNLOADS for Windows builds
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1046
diff changeset
75 -------------------------------------------------
385
dfbd3989a3f9 install update
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 377
diff changeset
76
dfbd3989a3f9 install update
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 377
diff changeset
77 # cd [...]\OrthancBuild
2505
a4f885670da7 fix Windows build
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 2497
diff changeset
78 # cmake -DSTANDALONE_BUILD=ON -DSTATIC_BUILD=ON -DALLOW_DOWNLOADS=ON -DUSE_LEGACY_JSONCPP=ON -G "Visual Studio 9 2008" [...]\Orthanc
385
dfbd3989a3f9 install update
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 377
diff changeset
79
dfbd3989a3f9 install update
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 377
diff changeset
80 Then open the "[...]/OrthancBuild/Orthanc.sln" with Visual Studio.
dfbd3989a3f9 install update
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 377
diff changeset
81
dfbd3989a3f9 install update
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 377
diff changeset
82 NOTES:
2497
0611aa383e62 Upgrade to JsonCpp 1.8.4, and USE_LEGACY_JSONCPP option
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 2086
diff changeset
83 * 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
84 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
85 that are available on your computer.
385
dfbd3989a3f9 install update
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 377
diff changeset
86 * You will have to install the Platform SDK (version 6 or above) for
dfbd3989a3f9 install update
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 377
diff changeset
87 Visual Studio 2005:
dfbd3989a3f9 install update
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 377
diff changeset
88 http://en.wikipedia.org/wiki/Microsoft_Windows_SDK.
dfbd3989a3f9 install update
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 377
diff changeset
89 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
90 * 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
91 Visual Studio that do not support C++11
385
dfbd3989a3f9 install update
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 377
diff changeset
92
dfbd3989a3f9 install update
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 377
diff changeset
93
dfbd3989a3f9 install update
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 377
diff changeset
94
2086
630606097798 GNU/Linux
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1502
diff changeset
95 Cross-Compilation for Windows under GNU/Linux
630606097798 GNU/Linux
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1502
diff changeset
96 ---------------------------------------------
2
67a6978503b7 fixing Windows build
Jodogne@Laptop
parents: 0
diff changeset
97
2547
8b6b0b6ece6b MinGW, ORTHANC_FRAMEWORK_URL
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 2546
diff changeset
98 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
99 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
100 the following command to disable C++11:
2
67a6978503b7 fixing Windows build
Jodogne@Laptop
parents: 0
diff changeset
101
57
4bc019d2f969 renaming
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 48
diff changeset
102 # cd ~/OrthancBuild
2547
8b6b0b6ece6b MinGW, ORTHANC_FRAMEWORK_URL
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 2546
diff changeset
103 # cmake ~/Orthanc \
8b6b0b6ece6b MinGW, ORTHANC_FRAMEWORK_URL
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 2546
diff changeset
104 -DCMAKE_BUILD_TYPE=Debug \
8b6b0b6ece6b MinGW, ORTHANC_FRAMEWORK_URL
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 2546
diff changeset
105 -DCMAKE_TOOLCHAIN_FILE=~/Orthanc/Resources/MinGW-W64-Toolchain32.cmake \
8b6b0b6ece6b MinGW, ORTHANC_FRAMEWORK_URL
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 2546
diff changeset
106 -DSTANDALONE_BUILD=ON \
8b6b0b6ece6b MinGW, ORTHANC_FRAMEWORK_URL
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 2546
diff changeset
107 -DSTATIC_BUILD=ON \
8b6b0b6ece6b MinGW, ORTHANC_FRAMEWORK_URL
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 2546
diff changeset
108 -DUSE_LEGACY_JSONCPP=ON
2
67a6978503b7 fixing Windows build
Jodogne@Laptop
parents: 0
diff changeset
109 # make
67a6978503b7 fixing Windows build
Jodogne@Laptop
parents: 0
diff changeset
110
2547
8b6b0b6ece6b MinGW, ORTHANC_FRAMEWORK_URL
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 2546
diff changeset
111 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
112 Windows binaries.
8b6b0b6ece6b MinGW, ORTHANC_FRAMEWORK_URL
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 2546
diff changeset
113
8b6b0b6ece6b MinGW, ORTHANC_FRAMEWORK_URL
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 2546
diff changeset
114
8b6b0b6ece6b MinGW, ORTHANC_FRAMEWORK_URL
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 2546
diff changeset
115
8b6b0b6ece6b MinGW, ORTHANC_FRAMEWORK_URL
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 2546
diff changeset
116 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
117 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
118 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
119 disable C++11:
2
67a6978503b7 fixing Windows build
Jodogne@Laptop
parents: 0
diff changeset
120
2547
8b6b0b6ece6b MinGW, ORTHANC_FRAMEWORK_URL
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 2546
diff changeset
121 # cd ~/OrthancBuild
8b6b0b6ece6b MinGW, ORTHANC_FRAMEWORK_URL
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 2546
diff changeset
122 # cmake ~/Orthanc \
8b6b0b6ece6b MinGW, ORTHANC_FRAMEWORK_URL
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 2546
diff changeset
123 -DCMAKE_BUILD_TYPE=Debug \
8b6b0b6ece6b MinGW, ORTHANC_FRAMEWORK_URL
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 2546
diff changeset
124 -DCMAKE_TOOLCHAIN_FILE=~/Orthanc/Resources/MinGWToolchain.cmake \
8b6b0b6ece6b MinGW, ORTHANC_FRAMEWORK_URL
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 2546
diff changeset
125 -DSTANDALONE_BUILD=ON \
8b6b0b6ece6b MinGW, ORTHANC_FRAMEWORK_URL
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 2546
diff changeset
126 -DSTATIC_BUILD=ON \
8b6b0b6ece6b MinGW, ORTHANC_FRAMEWORK_URL
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 2546
diff changeset
127 -DUSE_DCMTK_360=ON \
8b6b0b6ece6b MinGW, ORTHANC_FRAMEWORK_URL
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 2546
diff changeset
128 -DUSE_LEGACY_JSONCPP=ON
8b6b0b6ece6b MinGW, ORTHANC_FRAMEWORK_URL
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 2546
diff changeset
129 # make