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 recommand 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 "~/OrthancBuild".

3) Depending on your platform, follow the build instructions below.


WARNING 1: If you do not create a fresh "~/OrthancBuild" 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
-------------------------------------------------

# cd [...]\OrthancBuild
# cmake -DSTANDALONE_BUILD=ON -DSTATIC_BUILD=ON -DALLOW_DOWNLOADS=ON -G "Visual Studio 8 2005" [...]\Orthanc

Then open the "[...]/OrthancBuild/Orthanc.sln" with Visual Studio.

NOTES:
* More recent versions of Visual Studio than 2005 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 



Cross-Compilation for Windows under GNU/Linux
---------------------------------------------

To cross-compile Windows binaries under Linux using MinGW, please use
the following command:

# cd ~/OrthancBuild
# cmake -DCMAKE_TOOLCHAIN_FILE=~/Orthanc/Resources/MinGWToolchain.cmake -DSTATIC_BUILD=ON -DSTANDALONE_BUILD=ON -DCMAKE_BUILD_TYPE=Debug ~/Orthanc
# make



Native Windows build with MinGW (VERY SLOW)
-------------------------------------------

# cd [...]\OrthancBuild
# cmake -G "MinGW Makefiles" -DCMAKE_BUILD_TYPE=Debug [...]\Orthanc
# mingw32-make
