annotate CMakeLists.txt @ 13:a07ee8b6946e

cleanup
author Sebastien Jodogne <s.jodogne@gmail.com>
date Mon, 04 Jan 2016 14:04:43 +0100
parents 1fb480a156fd
children f7379096e014
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
1
fd402e53d263 new files
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
1 # TODO !
fd402e53d263 new files
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
2
fd402e53d263 new files
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
3 cmake_minimum_required(VERSION 2.8)
fd402e53d263 new files
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
4
fd402e53d263 new files
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
5 project(OrthancClient)
fd402e53d263 new files
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
6
3
d5027f9f676a fix build
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1
diff changeset
7
d5027f9f676a fix build
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1
diff changeset
8 # Parameters of the build
d5027f9f676a fix build
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1
diff changeset
9 SET(STATIC_BUILD OFF CACHE BOOL "Static build of the third-party libraries (necessary for Windows)")
9
1fb480a156fd build unit tests
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 8
diff changeset
10 SET(ALLOW_DOWNLOADS OFF CACHE BOOL "Allow CMake to download packages")
3
d5027f9f676a fix build
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1
diff changeset
11
d5027f9f676a fix build
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1
diff changeset
12 # Advanced parameters to fine-tune linking against system libraries
d5027f9f676a fix build
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1
diff changeset
13 SET(USE_SYSTEM_BOOST ON CACHE BOOL "Use the system version of Boost")
d5027f9f676a fix build
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1
diff changeset
14 SET(USE_SYSTEM_CURL ON CACHE BOOL "Use the system version of LibCurl")
d5027f9f676a fix build
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1
diff changeset
15 SET(USE_SYSTEM_GOOGLE_TEST ON CACHE BOOL "Use the system version of Google Test")
d5027f9f676a fix build
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1
diff changeset
16 SET(USE_SYSTEM_JSONCPP ON CACHE BOOL "Use the system version of JsonCpp")
d5027f9f676a fix build
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1
diff changeset
17 SET(USE_SYSTEM_LIBPNG ON CACHE BOOL "Use the system version of LibPng")
d5027f9f676a fix build
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1
diff changeset
18 SET(USE_SYSTEM_OPENSSL ON CACHE BOOL "Use the system version of OpenSSL")
d5027f9f676a fix build
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1
diff changeset
19 SET(USE_SYSTEM_ZLIB ON CACHE BOOL "Use the system version of ZLib")
1
fd402e53d263 new files
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
20
3
d5027f9f676a fix build
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1
diff changeset
21 # Some basic inclusions
d5027f9f676a fix build
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1
diff changeset
22 SET(ORTHANC_ROOT ${CMAKE_SOURCE_DIR}/Orthanc)
d5027f9f676a fix build
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1
diff changeset
23 SET(ENABLE_SSL ON)
1
fd402e53d263 new files
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
24
3
d5027f9f676a fix build
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1
diff changeset
25 include(CheckIncludeFiles)
d5027f9f676a fix build
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1
diff changeset
26 include(CheckIncludeFileCXX)
d5027f9f676a fix build
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1
diff changeset
27 include(CheckLibraryExists)
d5027f9f676a fix build
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1
diff changeset
28 include(FindPythonInterp)
d5027f9f676a fix build
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1
diff changeset
29 include(Orthanc/Resources/CMake/DownloadPackage.cmake)
d5027f9f676a fix build
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1
diff changeset
30 include(Orthanc/Resources/CMake/Compiler.cmake)
d5027f9f676a fix build
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1
diff changeset
31
d5027f9f676a fix build
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1
diff changeset
32 include(Orthanc/Resources/CMake/BoostConfiguration.cmake)
9
1fb480a156fd build unit tests
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 8
diff changeset
33 include(Orthanc/Resources/CMake/GoogleTestConfiguration.cmake)
3
d5027f9f676a fix build
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1
diff changeset
34 include(Orthanc/Resources/CMake/JsonCppConfiguration.cmake)
9
1fb480a156fd build unit tests
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 8
diff changeset
35 include(Orthanc/Resources/CMake/LibCurlConfiguration.cmake)
3
d5027f9f676a fix build
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1
diff changeset
36 include(Orthanc/Resources/CMake/LibPngConfiguration.cmake)
d5027f9f676a fix build
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1
diff changeset
37 include(Orthanc/Resources/CMake/OpenSslConfiguration.cmake)
d5027f9f676a fix build
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1
diff changeset
38 include(Orthanc/Resources/CMake/ZlibConfiguration.cmake)
d5027f9f676a fix build
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1
diff changeset
39
d5027f9f676a fix build
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1
diff changeset
40 add_definitions(-DORTHANC_SSL_ENABLED=1)
1
fd402e53d263 new files
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
41
fd402e53d263 new files
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
42
fd402e53d263 new files
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
43 #####################################################################
fd402e53d263 new files
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
44 ## Create the standalone DLL containing the Orthanc Client API
fd402e53d263 new files
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
45 #####################################################################
fd402e53d263 new files
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
46
6
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 3
diff changeset
47 include_directories(Resources/Laaw)
1
fd402e53d263 new files
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
48
fd402e53d263 new files
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
49 if (${CMAKE_SYSTEM_NAME} STREQUAL "Windows")
fd402e53d263 new files
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
50 if (CMAKE_CROSSCOMPILING)
fd402e53d263 new files
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
51 # Remove the default "lib" prefix from "libOrthancClient.dll" if cross-compiling
fd402e53d263 new files
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
52 set(CMAKE_SHARED_LIBRARY_PREFIX "")
fd402e53d263 new files
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
53
fd402e53d263 new files
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
54 if (${CMAKE_SIZEOF_VOID_P} EQUAL 4)
9
1fb480a156fd build unit tests
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 8
diff changeset
55 set(ORTHANC_CPP_CLIENT_AUX SharedLibrary/AUTOGENERATED/Windows32.def)
1
fd402e53d263 new files
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
56 elseif (${CMAKE_SIZEOF_VOID_P} EQUAL 8)
9
1fb480a156fd build unit tests
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 8
diff changeset
57 set(ORTHANC_CPP_CLIENT_AUX SharedLibrary/AUTOGENERATED/Windows64.def)
1
fd402e53d263 new files
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
58 else()
fd402e53d263 new files
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
59 message(FATAL_ERROR "Support your platform here")
fd402e53d263 new files
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
60 endif()
fd402e53d263 new files
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
61 else()
fd402e53d263 new files
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
62 # Nothing to do if using Visual Studio
fd402e53d263 new files
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
63 endif()
fd402e53d263 new files
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
64
fd402e53d263 new files
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
65 if (${CMAKE_SIZEOF_VOID_P} EQUAL 4)
fd402e53d263 new files
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
66 set(CMAKE_SHARED_LIBRARY_SUFFIX "_Windows32.dll")
9
1fb480a156fd build unit tests
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 8
diff changeset
67 list(APPEND ORTHANC_CPP_CLIENT_AUX SharedLibrary/AUTOGENERATED/Windows32.rc)
1
fd402e53d263 new files
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
68 elseif (${CMAKE_SIZEOF_VOID_P} EQUAL 8)
fd402e53d263 new files
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
69 set(CMAKE_SHARED_LIBRARY_SUFFIX "_Windows64.dll")
9
1fb480a156fd build unit tests
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 8
diff changeset
70 list(APPEND ORTHANC_CPP_CLIENT_AUX SharedLibrary/AUTOGENERATED/Windows64.rc)
1
fd402e53d263 new files
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
71 else()
fd402e53d263 new files
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
72 message(FATAL_ERROR "Support your platform here")
fd402e53d263 new files
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
73 endif()
fd402e53d263 new files
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
74
fd402e53d263 new files
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
75 else()
fd402e53d263 new files
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
76 set(ORTHANC_CPP_CLIENT_AUX ${OPENSSL_SOURCES})
fd402e53d263 new files
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
77 endif()
fd402e53d263 new files
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
78
3
d5027f9f676a fix build
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1
diff changeset
79
1
fd402e53d263 new files
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
80 add_library(OrthancClient SHARED
3
d5027f9f676a fix build
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1
diff changeset
81 Orthanc/Core/HttpClient.cpp
d5027f9f676a fix build
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1
diff changeset
82 Orthanc/Core/ImageFormats/PngReader.cpp
d5027f9f676a fix build
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1
diff changeset
83 Orthanc/Core/ImageFormats/ImageAccessor.cpp
d5027f9f676a fix build
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1
diff changeset
84 Orthanc/Core/MultiThreading/SharedMessageQueue.cpp
d5027f9f676a fix build
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1
diff changeset
85 Orthanc/Core/Toolbox.cpp
d5027f9f676a fix build
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1
diff changeset
86 Orthanc/Core/ChunkedBuffer.cpp
d5027f9f676a fix build
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1
diff changeset
87 Orthanc/Core/Enumerations.cpp
d5027f9f676a fix build
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1
diff changeset
88 Orthanc/Core/OrthancException.cpp
d5027f9f676a fix build
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1
diff changeset
89 Orthanc/Resources/ThirdParty/base64/base64.cpp
d5027f9f676a fix build
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1
diff changeset
90 Orthanc/Resources/ThirdParty/base64/base64.cpp
d5027f9f676a fix build
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1
diff changeset
91 Orthanc/Resources/ThirdParty/md5/md5.c
d5027f9f676a fix build
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1
diff changeset
92
6
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 3
diff changeset
93 CppClient/Instance.cpp
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 3
diff changeset
94 CppClient/OrthancConnection.cpp
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 3
diff changeset
95 CppClient/Patient.cpp
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 3
diff changeset
96 CppClient/Series.cpp
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 3
diff changeset
97 CppClient/Study.cpp
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 3
diff changeset
98 CppClient/ArrayFilledByThreads.cpp
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 3
diff changeset
99 CppClient/ThreadedCommandProcessor.cpp
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 3
diff changeset
100
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 3
diff changeset
101 SharedLibrary/SharedLibrary.cpp
3
d5027f9f676a fix build
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1
diff changeset
102
1
fd402e53d263 new files
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
103 ${ORTHANC_CPP_CLIENT_AUX}
fd402e53d263 new files
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
104 ${THIRD_PARTY_SOURCES}
fd402e53d263 new files
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
105 ${CURL_SOURCES}
fd402e53d263 new files
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
106 )
fd402e53d263 new files
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
107
3
d5027f9f676a fix build
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1
diff changeset
108
9
1fb480a156fd build unit tests
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 8
diff changeset
109 add_executable(UnitTests
1fb480a156fd build unit tests
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 8
diff changeset
110 CppClient/ArrayFilledByThreads.cpp
1fb480a156fd build unit tests
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 8
diff changeset
111 CppClient/ThreadedCommandProcessor.cpp
1fb480a156fd build unit tests
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 8
diff changeset
112 Orthanc/Core/MultiThreading/SharedMessageQueue.cpp
1fb480a156fd build unit tests
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 8
diff changeset
113 UnitTestsSources/MultiThreadingTests.cpp
1fb480a156fd build unit tests
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 8
diff changeset
114 UnitTestsSources/UnitTestsMain.cpp
1fb480a156fd build unit tests
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 8
diff changeset
115
1fb480a156fd build unit tests
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 8
diff changeset
116 ${THIRD_PARTY_SOURCES}
1fb480a156fd build unit tests
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 8
diff changeset
117 ${GTEST_SOURCES}
1fb480a156fd build unit tests
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 8
diff changeset
118 )
1fb480a156fd build unit tests
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 8
diff changeset
119
1fb480a156fd build unit tests
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 8
diff changeset
120
3
d5027f9f676a fix build
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1
diff changeset
121 list(LENGTH OPENSSL_SOURCES OPENSSL_SOURCES_LENGTH)
d5027f9f676a fix build
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1
diff changeset
122 if (${OPENSSL_SOURCES_LENGTH} GREATER 0)
d5027f9f676a fix build
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1
diff changeset
123 add_library(OpenSSL STATIC ${OPENSSL_SOURCES})
d5027f9f676a fix build
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1
diff changeset
124 target_link_libraries(OrthancClient OpenSSL)
d5027f9f676a fix build
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1
diff changeset
125 endif()
d5027f9f676a fix build
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1
diff changeset
126
d5027f9f676a fix build
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1
diff changeset
127
1
fd402e53d263 new files
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
128 if (${CMAKE_SYSTEM_NAME} STREQUAL "Linux" OR
fd402e53d263 new files
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
129 ${CMAKE_SYSTEM_NAME} STREQUAL "kFreeBSD" OR
fd402e53d263 new files
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
130 ${CMAKE_SYSTEM_NAME} STREQUAL "FreeBSD")
fd402e53d263 new files
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
131 set_target_properties(OrthancClient
6
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 3
diff changeset
132 PROPERTIES LINK_FLAGS "${CMAKE_SHARED_LINKER_FLAGS} -Wl,--no-undefined -Wl,--as-needed -Wl,--version-script=${CMAKE_SOURCE_DIR}/Resources/Laaw/VersionScript.map"
1
fd402e53d263 new files
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
133 )
8
6d59828e2662 removal of Orthanc namespace
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 6
diff changeset
134 target_link_libraries(OrthancClient pthread dl)
1
fd402e53d263 new files
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
135
fd402e53d263 new files
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
136 elseif (${CMAKE_SYSTEM_NAME} STREQUAL "Windows")
3
d5027f9f676a fix build
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1
diff changeset
137 target_link_libraries(OrthancClient ws2_32)
1
fd402e53d263 new files
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
138
fd402e53d263 new files
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
139 if (CMAKE_CROSSCOMPILING)
fd402e53d263 new files
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
140 set_target_properties(OrthancClient
fd402e53d263 new files
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
141 PROPERTIES LINK_FLAGS "${CMAKE_SHARED_LINKER_FLAGS} -Wl,--allow-multiple-definition -static-libgcc -static-libstdc++"
fd402e53d263 new files
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
142 )
fd402e53d263 new files
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
143 endif()
fd402e53d263 new files
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
144
fd402e53d263 new files
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
145 elseif (${CMAKE_SYSTEM_NAME} STREQUAL "Darwin")
fd402e53d263 new files
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
146 # TODO
fd402e53d263 new files
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
147 target_link_libraries(OrthancClient pthread)
fd402e53d263 new files
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
148
fd402e53d263 new files
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
149 else()
fd402e53d263 new files
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
150 message(FATAL_ERROR "Support your platform here")
fd402e53d263 new files
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
151 endif()
fd402e53d263 new files
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
152
fd402e53d263 new files
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
153
fd402e53d263 new files
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
154 # Set the version of the "Orthanc Client" shared library
fd402e53d263 new files
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
155 file(STRINGS
6
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 3
diff changeset
156 ${CMAKE_SOURCE_DIR}/SharedLibrary/Product.json
1
fd402e53d263 new files
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
157 ORTHANC_CLIENT_VERSION_TMP
fd402e53d263 new files
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
158 REGEX "^[ \t]*\"Version\"[ \t]*")
fd402e53d263 new files
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
159
fd402e53d263 new files
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
160 string(REGEX REPLACE "^.*\"([0-9]+)\\.([0-9]+)\\.([0-9]+)\"" "\\1.\\2"
fd402e53d263 new files
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
161 ORTHANC_CLIENT_VERSION ${ORTHANC_CLIENT_VERSION_TMP})
fd402e53d263 new files
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
162
fd402e53d263 new files
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
163 message("Setting the version of the library to ${ORTHANC_CLIENT_VERSION}")
fd402e53d263 new files
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
164
fd402e53d263 new files
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
165 set_target_properties(OrthancClient PROPERTIES
fd402e53d263 new files
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
166 VERSION ${ORTHANC_CLIENT_VERSION}
fd402e53d263 new files
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
167 SOVERSION ${ORTHANC_CLIENT_VERSION})
fd402e53d263 new files
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
168
fd402e53d263 new files
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
169
fd402e53d263 new files
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
170 install(
fd402e53d263 new files
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
171 TARGETS OrthancClient
fd402e53d263 new files
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
172 RUNTIME DESTINATION lib # Destination for Windows
fd402e53d263 new files
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
173 LIBRARY DESTINATION lib # Destination for Linux
fd402e53d263 new files
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
174 )
fd402e53d263 new files
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
175
fd402e53d263 new files
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
176 install(
fd402e53d263 new files
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
177 FILES
9
1fb480a156fd build unit tests
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 8
diff changeset
178 SharedLibrary/AUTOGENERATED/CppClient.h
1
fd402e53d263 new files
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
179 DESTINATION include/orthanc
fd402e53d263 new files
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
180 )
fd402e53d263 new files
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
181
fd402e53d263 new files
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
182
fd402e53d263 new files
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
183
fd402e53d263 new files
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
184
fd402e53d263 new files
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
185 #####################################################################
fd402e53d263 new files
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
186 ## Generate the documentation if Doxygen is present
fd402e53d263 new files
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
187 #####################################################################
fd402e53d263 new files
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
188
fd402e53d263 new files
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
189 find_package(Doxygen)
fd402e53d263 new files
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
190 if (DOXYGEN_FOUND)
fd402e53d263 new files
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
191 configure_file(
fd402e53d263 new files
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
192 ${CMAKE_SOURCE_DIR}/Resources/OrthancClient.doxygen
fd402e53d263 new files
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
193 ${CMAKE_CURRENT_BINARY_DIR}/OrthancClient.doxygen
fd402e53d263 new files
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
194 @ONLY)
fd402e53d263 new files
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
195
fd402e53d263 new files
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
196 add_custom_command(TARGET OrthancClient
fd402e53d263 new files
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
197 POST_BUILD
fd402e53d263 new files
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
198 COMMAND ${DOXYGEN_EXECUTABLE} ${CMAKE_CURRENT_BINARY_DIR}/OrthancClient.doxygen
fd402e53d263 new files
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
199 WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}
fd402e53d263 new files
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
200 COMMENT "Generating client documentation with Doxygen" VERBATIM
fd402e53d263 new files
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
201 )
fd402e53d263 new files
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
202
fd402e53d263 new files
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
203 install(
fd402e53d263 new files
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
204 DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/OrthancClientDocumentation/doc/
fd402e53d263 new files
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
205 DESTINATION share/doc/orthanc/OrthancClient
fd402e53d263 new files
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
206 )
fd402e53d263 new files
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
207
fd402e53d263 new files
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
208 else()
fd402e53d263 new files
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
209 message("Doxygen not found. The documentation will not be built.")
fd402e53d263 new files
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
210 endif()
fd402e53d263 new files
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
211
fd402e53d263 new files
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
212
fd402e53d263 new files
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
213 #####################################################################
fd402e53d263 new files
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
214 ## Prepare the "uninstall" target
fd402e53d263 new files
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
215 ## http://www.cmake.org/Wiki/CMake_FAQ#Can_I_do_.22make_uninstall.22_with_CMake.3F
fd402e53d263 new files
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
216 #####################################################################
fd402e53d263 new files
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
217
fd402e53d263 new files
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
218 configure_file(
3
d5027f9f676a fix build
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1
diff changeset
219 "${CMAKE_CURRENT_SOURCE_DIR}/Orthanc/Resources/CMake/Uninstall.cmake.in"
1
fd402e53d263 new files
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
220 "${CMAKE_CURRENT_BINARY_DIR}/cmake_uninstall.cmake"
fd402e53d263 new files
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
221 IMMEDIATE @ONLY)
fd402e53d263 new files
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
222
fd402e53d263 new files
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
223 add_custom_target(uninstall
fd402e53d263 new files
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
224 COMMAND ${CMAKE_COMMAND} -P ${CMAKE_CURRENT_BINARY_DIR}/cmake_uninstall.cmake)