comparison OrthancCppClient/Package/OrthancCppClient.cmake @ 512:1b8a1c43893e laaw

compilation of the dll 32/64
author Sebastien Jodogne <s.jodogne@gmail.com>
date Thu, 18 Jul 2013 12:36:02 +0200
parents OrthancCppClient/Package/CMakeLists.txt@d87febb5f183
children a3d9acf37161
comparison
equal deleted inserted replaced
510:d87febb5f183 512:1b8a1c43893e
1 # nm -C -D --defined-only libOrthancCppClient.so
2
3 include_directories(${ORTHANC_ROOT}/OrthancCppClient/Package/Laaw)
4
5 set(STATIC_BUILD ON)
6 include(${ORTHANC_ROOT}/Resources/CMake/DownloadPackage.cmake)
7 include(${ORTHANC_ROOT}/Resources/CMake/JsonCppConfiguration.cmake)
8 include(${ORTHANC_ROOT}/Resources/CMake/LibCurlConfiguration.cmake)
9 include(${ORTHANC_ROOT}/Resources/CMake/LibPngConfiguration.cmake)
10 include(${ORTHANC_ROOT}/Resources/CMake/BoostConfiguration.cmake)
11 include(${ORTHANC_ROOT}/Resources/CMake/ZlibConfiguration.cmake)
12
13 if (${CMAKE_COMPILER_IS_GNUCXX})
14 set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wall -pedantic -Wno-implicit-function-declaration") # --std=c99 makes libcurl not to compile
15 set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall -pedantic -Wno-long-long -Wno-variadic-macros")
16 set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -Wl,--as-needed")
17 set(CMAKE_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS} -Wl,--no-undefined")
18 elseif (${MSVC})
19 add_definitions(-D_CRT_SECURE_NO_WARNINGS=1)
20 endif()
21
22 if (${CMAKE_SYSTEM_NAME} STREQUAL "Windows")
23 if (${CMAKE_SIZEOF_VOID_P} EQUAL 4)
24 set(WINDOWS_DEF ${ORTHANC_ROOT}/OrthancCppClient/Package/Build/Windows32.def)
25 elseif (${CMAKE_SIZEOF_VOID_P} EQUAL 8)
26 set(WINDOWS_DEF ${ORTHANC_ROOT}/OrthancCppClient/Package/Build/Windows64.def)
27 else()
28 message(FATAL_ERROR "Support your platform here")
29 endif()
30 endif()
31
32 add_library(OrthancCppClient SHARED
33 ${THIRD_PARTY_SOURCES}
34 ${ORTHANC_ROOT}/Core/OrthancException.cpp
35 ${ORTHANC_ROOT}/Core/Enumerations.cpp
36 ${ORTHANC_ROOT}/Core/Toolbox.cpp
37 ${ORTHANC_ROOT}/Core/HttpClient.cpp
38 ${ORTHANC_ROOT}/Core/MultiThreading/ArrayFilledByThreads.cpp
39 ${ORTHANC_ROOT}/Core/MultiThreading/ThreadedCommandProcessor.cpp
40 ${ORTHANC_ROOT}/Core/MultiThreading/SharedMessageQueue.cpp
41 ${ORTHANC_ROOT}/Core/FileFormats/PngReader.cpp
42 ${ORTHANC_ROOT}/OrthancCppClient/OrthancConnection.cpp
43 ${ORTHANC_ROOT}/OrthancCppClient/Series.cpp
44 ${ORTHANC_ROOT}/OrthancCppClient/Study.cpp
45 ${ORTHANC_ROOT}/OrthancCppClient/Instance.cpp
46 ${ORTHANC_ROOT}/OrthancCppClient/Patient.cpp
47 ${ORTHANC_ROOT}/OrthancCppClient/Package/SharedLibrary.cpp
48 ${ORTHANC_ROOT}/Resources/sha1/sha1.cpp
49 ${ORTHANC_ROOT}/Resources/md5/md5.c
50 ${ORTHANC_ROOT}/Resources/base64/base64.cpp
51 ${WINDOWS_DEF}
52 )
53
54 if (${CMAKE_SYSTEM_NAME} STREQUAL "Linux")
55 set(CMAKE_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS} -Wl,--version-script=${ORTHANC_ROOT}/OrthancCppClient/Package/Laaw/VersionScript.map")
56 target_link_libraries(OrthancCppClient pthread)
57 else()
58 set(CMAKE_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS} -Wl,--allow-multiple-definition -static-libgcc -static-libstdc++")
59 target_link_libraries(OrthancCppClient ws2_32)
60 endif()