185 lines
6.6 KiB
Plaintext
185 lines
6.6 KiB
Plaintext
Orthanc - A Lightweight, RESTful DICOM Server
|
|
=============================================
|
|
|
|
|
|
Dependencies
|
|
------------
|
|
|
|
1) CMake: Orthanc uses CMake (http://www.cmake.org/) to automate its
|
|
building process.
|
|
|
|
2) Python: Some code is autogenerated through Python
|
|
(http://www.python.org/).
|
|
|
|
3) Mercurial: To use the cutting edge code, a Mercurial client must be
|
|
installed (http://mercurial.selenic.com/). We recommend TortoiseHg.
|
|
|
|
W) 7-Zip: For the native build under Windows, the 7-Zip tool is used
|
|
to uncompress the third-party packages (http://www.7-zip.org/).
|
|
|
|
You thus have to download and install CMake, Python, Mercurial and
|
|
possibly 7-Zip first. The path to their executable must be in the
|
|
"PATH" environment variable.
|
|
|
|
The other third party dependencies are automatically downloaded by the
|
|
CMake scripts. The downloaded packages are stored in the
|
|
"ThirdPartyDownloads" directory.
|
|
|
|
|
|
Building Orthanc at a glance
|
|
----------------------------
|
|
|
|
To build Orthanc, you must:
|
|
|
|
1) Download the source code (either using Mercurial, or through the
|
|
official releases). For the examples below, we assume the source
|
|
directory is "~/Orthanc".
|
|
|
|
2) Create a build directory. For the examples below, we assume the
|
|
build directory is "~/Orthanc/Build".
|
|
|
|
3) Depending on your platform, follow the build instructions below.
|
|
|
|
|
|
WARNING 1: If you do not create a fresh "~/Orthanc/Build" directory
|
|
after upgrading the source code (i.e. if you reuse the build directory
|
|
that was used to build a different version of Orthanc), the build
|
|
might fail because of changes in the compilation/linking flags. Always
|
|
prefer to force a re-build in a new directory.
|
|
|
|
WARNING 2: If cmake complains about not being able to uncompress
|
|
third-party dependencies, delete the "~/Orthanc/ThirdPartyDownloads/"
|
|
folder, then restart cmake.
|
|
|
|
WARNING 3: If performance is important to you, make sure to add the
|
|
option "-DCMAKE_BUILD_TYPE=Release" when invoking cmake. Indeed, by
|
|
default, run-time debug assertions are enabled, which can seriously
|
|
impact performance, especially if your Orthanc server stores a lot of
|
|
DICOM instances.
|
|
|
|
|
|
Native GNU/Linux Compilation
|
|
----------------------------
|
|
|
|
See the file "LinuxCompilation.txt".
|
|
|
|
|
|
Native OS X Compilation
|
|
-----------------------
|
|
|
|
See the file "DarwinCompilation.txt".
|
|
|
|
|
|
|
|
Native Windows build with Microsoft Visual Studio 2008
|
|
------------------------------------------------------
|
|
|
|
# cd [...]\Orthanc\Build
|
|
# cmake -DSTANDALONE_BUILD=ON -DSTATIC_BUILD=ON -DALLOW_DOWNLOADS=ON \
|
|
-DUSE_LEGACY_JSONCPP=ON -DUSE_LEGACY_BOOST=ON -G "Visual Studio 9 2008" [...]\OrthancServer
|
|
|
|
Then open the "[...]\Orthanc\Build\Orthanc.sln" with Visual Studio.
|
|
|
|
NOTES:
|
|
* More recent versions of Visual Studio than 2008 should also
|
|
work. Type "cmake" without arguments to have the list of generators
|
|
that are available on your computer.
|
|
* You will have to install the Platform SDK (version 6 or above) for
|
|
Visual Studio 2005:
|
|
http://en.wikipedia.org/wiki/Microsoft_Windows_SDK.
|
|
Read the CMake FAQ: http://goo.gl/By90B
|
|
* The "-DUSE_LEGACY_JSONCPP=ON" must be set for versions of
|
|
Visual Studio that do not support C++11
|
|
|
|
|
|
Orthanc as compiled above will not work properly with some Asian
|
|
encodings (unit tests will fail). In international setups, you can
|
|
compile Orthanc together with ICU as follows:
|
|
|
|
# cmake -DSTANDALONE_BUILD=ON -DSTATIC_BUILD=ON -DALLOW_DOWNLOADS=ON \
|
|
-DBOOST_LOCALE_BACKEND=icu -DUSE_LEGACY_JSONCPP=ON -DUSE_LEGACY_LIBICU=ON \
|
|
-G "Visual Studio 9 2008" [...]\Orthanc
|
|
|
|
|
|
|
|
Native Windows build with Microsoft Visual Studio 2015, Ninja and QtCreator
|
|
---------------------------------------------------------------------------
|
|
|
|
Open a Visual Studio 2015 x64 Command Prompt.
|
|
|
|
# cd [...]\Orthanc\Build
|
|
# cmake -G Ninja -DSTATIC_BUILD=ON [...]\OrthancServer
|
|
# ninja
|
|
|
|
Then, you can open an existing project in QtCreator:
|
|
* Select the CMakeLists.txt in [...]\OrthancServer
|
|
* Import build from [...]\Build
|
|
|
|
|
|
Instructions to include support for Asian encodings:
|
|
|
|
# cmake -G Ninja -T host=x64 -DSTATIC_BUILD=ON -DBOOST_LOCALE_BACKEND=icu [...]\OrthancServer
|
|
|
|
The option "-T host=x64" is necessary to prevent error "C1060:
|
|
compiler is out of heap space" when compiling Orthanc with ICU.
|
|
|
|
|
|
Native 64-bit Windows build with Microsoft Visual Studio 2017 (msbuild)
|
|
-----------------------------------------------------------------------
|
|
# cd [...]\Build
|
|
# cmake -G "Visual Studio 15 2017 Win64" -DMSVC_MULTIPLE_PROCESSES=ON -DSTATIC_BUILD=ON -DOPENSSL_NO_CAPIENG=ON -DALLOW_DOWNLOADS=ON [...]\OrthancServer
|
|
|
|
Instructions to include support for Asian encodings:
|
|
# cmake -G "Visual Studio 15 2017 Win64" -T host=x64 -DSTATIC_BUILD=ON -DBOOST_LOCALE_BACKEND=icu -DMSVC_MULTIPLE_PROCESSES=ON -DSTATIC_BUILD=ON -DOPENSSL_NO_CAPIENG=ON -DALLOW_DOWNLOADS=ON [...]\OrthancServer
|
|
|
|
|
|
Native 64-bit Windows build with Microsoft Visual Studio 2019 (msbuild)
|
|
-----------------------------------------------------------------------
|
|
# cd [...]\Build
|
|
# cmake -G "Visual Studio 16 2019" -A x64 -DMSVC_MULTIPLE_PROCESSES=ON -DSTATIC_BUILD=ON -DOPENSSL_NO_CAPIENG=ON -DALLOW_DOWNLOADS=ON [...]\OrthancServer
|
|
|
|
Instructions to include support for Asian encodings:
|
|
# cmake -G "Visual Studio 16 2019" -A x64 -T host=x64 -DSTATIC_BUILD=ON -DBOOST_LOCALE_BACKEND=icu -DMSVC_MULTIPLE_PROCESSES=ON -DSTATIC_BUILD=ON -DOPENSSL_NO_CAPIENG=ON -DALLOW_DOWNLOADS=ON [...]\OrthancServer
|
|
|
|
|
|
Cross-Compilation for Windows under GNU/Linux
|
|
---------------------------------------------
|
|
|
|
Some versions of MinGW-W64 may have insufficient support C++11 to
|
|
compile recent versions of Boost or ICU (notably those shipped in
|
|
Ubuntu 22.04 LTS, in the "g++-mingw-w64-i686-win32" package). Use the
|
|
following command to disable C++11 in Boost and ICU:
|
|
|
|
# cd ~/Orthanc/Build
|
|
# cmake ../OrthancServer \
|
|
-DCMAKE_BUILD_TYPE=Release \
|
|
-DCMAKE_TOOLCHAIN_FILE=../OrthancFramework/Resources/Toolchains/MinGW-W64-Toolchain32.cmake \
|
|
-DSTANDALONE_BUILD=ON \
|
|
-DSTATIC_BUILD=ON \
|
|
-DBOOST_LOCALE_BACKEND=icu \
|
|
-DUSE_LEGACY_BOOST=ON \
|
|
-DUSE_LEGACY_LIBICU=ON
|
|
# make
|
|
|
|
NB: Use the toolchain "MinGW-W64-Toolchain64.cmake" to produce 64bit
|
|
Windows binaries.
|
|
|
|
|
|
|
|
Legacy MinGW32 compilers (notably those shipped in Ubuntu 14.04 LTS,
|
|
in the "mingw32" package) are incompatible with DCMTK 3.6.2 and
|
|
C++11. Use the following command to force using DCMTK 3.6.0 and
|
|
disable C++11:
|
|
|
|
# cd ~/Orthanc/Build
|
|
# cmake ../OrthancServer \
|
|
-DCMAKE_BUILD_TYPE=Release \
|
|
-DCMAKE_TOOLCHAIN_FILE=../OrthancFramework/Resources/Toolchains/MinGWToolchain.cmake \
|
|
-DSTANDALONE_BUILD=ON \
|
|
-DSTATIC_BUILD=ON \
|
|
-DDCMTK_STATIC_VERSION=3.6.0 \
|
|
-DUSE_LEGACY_JSONCPP=ON \
|
|
-DUSE_LEGACY_BOOST=ON \
|
|
-DUSE_LEGACY_LIBICU=ON
|
|
# make
|