annotate CMakeLists.txt @ 3:d5027f9f676a

fix build
author Sebastien Jodogne <s.jodogne@gmail.com>
date Mon, 01 Jun 2015 15:12:22 +0200
parents fd402e53d263
children c584c25a74fd
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)")
d5027f9f676a fix build
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1
diff changeset
10
d5027f9f676a fix build
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1
diff changeset
11 # Advanced parameters to fine-tune linking against system libraries
d5027f9f676a fix build
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1
diff changeset
12 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
13 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
14 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
15 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
16 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
17 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
18 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
19
3
d5027f9f676a fix build
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1
diff changeset
20 # Some basic inclusions
d5027f9f676a fix build
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1
diff changeset
21 SET(ORTHANC_ROOT ${CMAKE_SOURCE_DIR}/Orthanc)
d5027f9f676a fix build
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1
diff changeset
22 SET(ENABLE_SSL ON)
1
fd402e53d263 new files
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
23
3
d5027f9f676a fix build
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1
diff changeset
24 include(CheckIncludeFiles)
d5027f9f676a fix build
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1
diff changeset
25 include(CheckIncludeFileCXX)
d5027f9f676a fix build
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1
diff changeset
26 include(CheckLibraryExists)
d5027f9f676a fix build
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1
diff changeset
27 include(FindPythonInterp)
d5027f9f676a fix build
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1
diff changeset
28 include(Orthanc/Resources/CMake/DownloadPackage.cmake)
d5027f9f676a fix build
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1
diff changeset
29 include(Orthanc/Resources/CMake/Compiler.cmake)
d5027f9f676a fix build
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1
diff changeset
30
d5027f9f676a fix build
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1
diff changeset
31 include(Orthanc/Resources/CMake/BoostConfiguration.cmake)
d5027f9f676a fix build
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1
diff changeset
32 include(Orthanc/Resources/CMake/JsonCppConfiguration.cmake)
d5027f9f676a fix build
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1
diff changeset
33 include(Orthanc/Resources/CMake/LibPngConfiguration.cmake)
d5027f9f676a fix build
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1
diff changeset
34 include(Orthanc/Resources/CMake/LibCurlConfiguration.cmake)
d5027f9f676a fix build
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1
diff changeset
35 include(Orthanc/Resources/CMake/OpenSslConfiguration.cmake)
d5027f9f676a fix build
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1
diff changeset
36 include(Orthanc/Resources/CMake/ZlibConfiguration.cmake)
d5027f9f676a fix build
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1
diff changeset
37
d5027f9f676a fix build
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1
diff changeset
38 add_definitions(-DORTHANC_SSL_ENABLED=1)
1
fd402e53d263 new files
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
39
fd402e53d263 new files
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
40
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 ## Create the standalone DLL containing the Orthanc Client API
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
3
d5027f9f676a fix build
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1
diff changeset
45 include_directories(OrthancCppClient/SharedLibrary/Laaw)
1
fd402e53d263 new files
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
46
fd402e53d263 new files
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
47 if (${CMAKE_SYSTEM_NAME} STREQUAL "Windows")
fd402e53d263 new files
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
48 if (CMAKE_CROSSCOMPILING)
fd402e53d263 new files
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
49 # Remove the default "lib" prefix from "libOrthancClient.dll" if cross-compiling
fd402e53d263 new files
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
50 set(CMAKE_SHARED_LIBRARY_PREFIX "")
fd402e53d263 new files
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
51
fd402e53d263 new files
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
52 if (${CMAKE_SIZEOF_VOID_P} EQUAL 4)
3
d5027f9f676a fix build
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1
diff changeset
53 set(ORTHANC_CPP_CLIENT_AUX OrthancCppClient/SharedLibrary/AUTOGENERATED/Windows32.def)
1
fd402e53d263 new files
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
54 elseif (${CMAKE_SIZEOF_VOID_P} EQUAL 8)
3
d5027f9f676a fix build
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1
diff changeset
55 set(ORTHANC_CPP_CLIENT_AUX OrthancCppClient/SharedLibrary/AUTOGENERATED/Windows64.def)
1
fd402e53d263 new files
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
56 else()
fd402e53d263 new files
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
57 message(FATAL_ERROR "Support your platform here")
fd402e53d263 new files
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
58 endif()
fd402e53d263 new files
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
59 else()
fd402e53d263 new files
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
60 # Nothing to do if using Visual Studio
fd402e53d263 new files
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
61 endif()
fd402e53d263 new files
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
62
fd402e53d263 new files
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
63 if (${CMAKE_SIZEOF_VOID_P} EQUAL 4)
fd402e53d263 new files
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
64 set(CMAKE_SHARED_LIBRARY_SUFFIX "_Windows32.dll")
3
d5027f9f676a fix build
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1
diff changeset
65 list(APPEND ORTHANC_CPP_CLIENT_AUX OrthancCppClient/SharedLibrary/AUTOGENERATED/Windows32.rc)
1
fd402e53d263 new files
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
66 elseif (${CMAKE_SIZEOF_VOID_P} EQUAL 8)
fd402e53d263 new files
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
67 set(CMAKE_SHARED_LIBRARY_SUFFIX "_Windows64.dll")
3
d5027f9f676a fix build
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1
diff changeset
68 list(APPEND ORTHANC_CPP_CLIENT_AUX OrthancCppClient/SharedLibrary/AUTOGENERATED/Windows64.rc)
1
fd402e53d263 new files
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
69 else()
fd402e53d263 new files
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
70 message(FATAL_ERROR "Support your platform here")
fd402e53d263 new files
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
71 endif()
fd402e53d263 new files
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
72
fd402e53d263 new files
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
73 else()
fd402e53d263 new files
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
74 set(ORTHANC_CPP_CLIENT_AUX ${OPENSSL_SOURCES})
fd402e53d263 new files
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
75 endif()
fd402e53d263 new files
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
76
3
d5027f9f676a fix build
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1
diff changeset
77
1
fd402e53d263 new files
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
78 add_library(OrthancClient SHARED
3
d5027f9f676a fix build
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1
diff changeset
79 Orthanc/Core/HttpClient.cpp
d5027f9f676a fix build
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1
diff changeset
80 Orthanc/Core/ImageFormats/PngReader.cpp
d5027f9f676a fix build
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1
diff changeset
81 Orthanc/Core/ImageFormats/ImageAccessor.cpp
d5027f9f676a fix build
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1
diff changeset
82 Orthanc/Core/MultiThreading/SharedMessageQueue.cpp
d5027f9f676a fix build
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1
diff changeset
83 Orthanc/Core/Toolbox.cpp
d5027f9f676a fix build
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1
diff changeset
84 Orthanc/Core/ChunkedBuffer.cpp
d5027f9f676a fix build
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1
diff changeset
85 Orthanc/Core/Enumerations.cpp
d5027f9f676a fix build
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1
diff changeset
86 Orthanc/Core/OrthancException.cpp
d5027f9f676a fix build
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1
diff changeset
87 Orthanc/Resources/ThirdParty/base64/base64.cpp
d5027f9f676a fix build
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1
diff changeset
88 Orthanc/Resources/ThirdParty/base64/base64.cpp
d5027f9f676a fix build
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1
diff changeset
89 Orthanc/Resources/ThirdParty/md5/md5.c
d5027f9f676a fix build
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1
diff changeset
90
d5027f9f676a fix build
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1
diff changeset
91 OrthancCppClient/Instance.cpp
d5027f9f676a fix build
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1
diff changeset
92 OrthancCppClient/OrthancConnection.cpp
d5027f9f676a fix build
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1
diff changeset
93 OrthancCppClient/Patient.cpp
d5027f9f676a fix build
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1
diff changeset
94 OrthancCppClient/Series.cpp
d5027f9f676a fix build
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1
diff changeset
95 OrthancCppClient/SharedLibrary/SharedLibrary.cpp
d5027f9f676a fix build
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1
diff changeset
96 OrthancCppClient/Study.cpp
d5027f9f676a fix build
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1
diff changeset
97 OrthancCppClient/ArrayFilledByThreads.cpp
d5027f9f676a fix build
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1
diff changeset
98 OrthancCppClient/ThreadedCommandProcessor.cpp
d5027f9f676a fix build
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1
diff changeset
99
1
fd402e53d263 new files
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
100 ${ORTHANC_CPP_CLIENT_AUX}
fd402e53d263 new files
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
101 ${THIRD_PARTY_SOURCES}
fd402e53d263 new files
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
102 ${CURL_SOURCES}
fd402e53d263 new files
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
103 )
fd402e53d263 new files
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
104
3
d5027f9f676a fix build
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1
diff changeset
105
d5027f9f676a fix build
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1
diff changeset
106 list(LENGTH OPENSSL_SOURCES OPENSSL_SOURCES_LENGTH)
d5027f9f676a fix build
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1
diff changeset
107 if (${OPENSSL_SOURCES_LENGTH} GREATER 0)
d5027f9f676a fix build
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1
diff changeset
108 add_library(OpenSSL STATIC ${OPENSSL_SOURCES})
d5027f9f676a fix build
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1
diff changeset
109 target_link_libraries(OrthancClient OpenSSL)
d5027f9f676a fix build
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1
diff changeset
110 endif()
d5027f9f676a fix build
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1
diff changeset
111
d5027f9f676a fix build
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1
diff changeset
112
1
fd402e53d263 new files
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
113 if (${CMAKE_SYSTEM_NAME} STREQUAL "Linux" OR
fd402e53d263 new files
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
114 ${CMAKE_SYSTEM_NAME} STREQUAL "kFreeBSD" OR
fd402e53d263 new files
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
115 ${CMAKE_SYSTEM_NAME} STREQUAL "FreeBSD")
fd402e53d263 new files
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
116 set_target_properties(OrthancClient
3
d5027f9f676a fix build
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1
diff changeset
117 PROPERTIES LINK_FLAGS "${CMAKE_SHARED_LINKER_FLAGS} -Wl,--no-undefined -Wl,--as-needed -Wl,--version-script=${CMAKE_SOURCE_DIR}/OrthancCppClient/SharedLibrary/Laaw/VersionScript.map"
1
fd402e53d263 new files
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
118 )
fd402e53d263 new files
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
119 target_link_libraries(OrthancClient pthread)
fd402e53d263 new files
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
120
fd402e53d263 new files
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
121 elseif (${CMAKE_SYSTEM_NAME} STREQUAL "Windows")
3
d5027f9f676a fix build
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1
diff changeset
122 target_link_libraries(OrthancClient ws2_32)
1
fd402e53d263 new files
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
123
fd402e53d263 new files
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
124 if (CMAKE_CROSSCOMPILING)
fd402e53d263 new files
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
125 set_target_properties(OrthancClient
fd402e53d263 new files
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
126 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
127 )
fd402e53d263 new files
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
128 endif()
fd402e53d263 new files
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
129
fd402e53d263 new files
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
130 elseif (${CMAKE_SYSTEM_NAME} STREQUAL "Darwin")
fd402e53d263 new files
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
131 # TODO
fd402e53d263 new files
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
132 target_link_libraries(OrthancClient pthread)
fd402e53d263 new files
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
133
fd402e53d263 new files
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
134 else()
fd402e53d263 new files
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
135 message(FATAL_ERROR "Support your platform here")
fd402e53d263 new files
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
136 endif()
fd402e53d263 new files
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
137
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 # Set the version of the "Orthanc Client" shared library
fd402e53d263 new files
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
140 file(STRINGS
fd402e53d263 new files
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
141 ${CMAKE_SOURCE_DIR}/OrthancCppClient/SharedLibrary/Product.json
fd402e53d263 new files
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
142 ORTHANC_CLIENT_VERSION_TMP
fd402e53d263 new files
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
143 REGEX "^[ \t]*\"Version\"[ \t]*")
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 string(REGEX REPLACE "^.*\"([0-9]+)\\.([0-9]+)\\.([0-9]+)\"" "\\1.\\2"
fd402e53d263 new files
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
146 ORTHANC_CLIENT_VERSION ${ORTHANC_CLIENT_VERSION_TMP})
fd402e53d263 new files
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
147
fd402e53d263 new files
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
148 message("Setting the version of the library to ${ORTHANC_CLIENT_VERSION}")
fd402e53d263 new files
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
149
fd402e53d263 new files
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
150 set_target_properties(OrthancClient PROPERTIES
fd402e53d263 new files
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
151 VERSION ${ORTHANC_CLIENT_VERSION}
fd402e53d263 new files
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
152 SOVERSION ${ORTHANC_CLIENT_VERSION})
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
fd402e53d263 new files
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
155 install(
fd402e53d263 new files
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
156 TARGETS OrthancClient
fd402e53d263 new files
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
157 RUNTIME DESTINATION lib # Destination for Windows
fd402e53d263 new files
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
158 LIBRARY DESTINATION lib # Destination for Linux
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
fd402e53d263 new files
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
161 install(
fd402e53d263 new files
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
162 FILES
3
d5027f9f676a fix build
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1
diff changeset
163 OrthancCppClient/SharedLibrary/AUTOGENERATED/OrthancCppClient.h
1
fd402e53d263 new files
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
164 DESTINATION include/orthanc
fd402e53d263 new files
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
165 )
fd402e53d263 new files
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
166
fd402e53d263 new files
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
167
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 #####################################################################
fd402e53d263 new files
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
171 ## Generate the documentation if Doxygen is present
fd402e53d263 new files
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
172 #####################################################################
fd402e53d263 new files
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
173
fd402e53d263 new files
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
174 find_package(Doxygen)
fd402e53d263 new files
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
175 if (DOXYGEN_FOUND)
fd402e53d263 new files
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
176 configure_file(
fd402e53d263 new files
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
177 ${CMAKE_SOURCE_DIR}/Resources/OrthancClient.doxygen
fd402e53d263 new files
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
178 ${CMAKE_CURRENT_BINARY_DIR}/OrthancClient.doxygen
fd402e53d263 new files
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
179 @ONLY)
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 add_custom_command(TARGET OrthancClient
fd402e53d263 new files
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
182 POST_BUILD
fd402e53d263 new files
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
183 COMMAND ${DOXYGEN_EXECUTABLE} ${CMAKE_CURRENT_BINARY_DIR}/OrthancClient.doxygen
fd402e53d263 new files
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
184 WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}
fd402e53d263 new files
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
185 COMMENT "Generating client documentation with Doxygen" VERBATIM
fd402e53d263 new files
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
186 )
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 install(
fd402e53d263 new files
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
189 DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/OrthancClientDocumentation/doc/
fd402e53d263 new files
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
190 DESTINATION share/doc/orthanc/OrthancClient
fd402e53d263 new files
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
191 )
fd402e53d263 new files
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
192
fd402e53d263 new files
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
193 else()
fd402e53d263 new files
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
194 message("Doxygen not found. The documentation will not be built.")
fd402e53d263 new files
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
195 endif()
fd402e53d263 new files
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
196
fd402e53d263 new files
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
197
fd402e53d263 new files
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
198 #####################################################################
fd402e53d263 new files
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
199 ## Prepare the "uninstall" target
fd402e53d263 new files
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
200 ## 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
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 configure_file(
3
d5027f9f676a fix build
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1
diff changeset
204 "${CMAKE_CURRENT_SOURCE_DIR}/Orthanc/Resources/CMake/Uninstall.cmake.in"
1
fd402e53d263 new files
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
205 "${CMAKE_CURRENT_BINARY_DIR}/cmake_uninstall.cmake"
fd402e53d263 new files
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
206 IMMEDIATE @ONLY)
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 add_custom_target(uninstall
fd402e53d263 new files
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
209 COMMAND ${CMAKE_COMMAND} -P ${CMAKE_CURRENT_BINARY_DIR}/cmake_uninstall.cmake)