Mercurial > hg > orthanc
comparison Resources/CMake/DcmtkConfiguration.cmake @ 2515:7c8a246e8652
fix WebAssembly build
author | Sebastien Jodogne <s.jodogne@gmail.com> |
---|---|
date | Thu, 29 Mar 2018 10:08:06 +0200 |
parents | 97a74f0eac7a |
children | ce2dfba9417c |
comparison
equal
deleted
inserted
replaced
2514:38d666a40860 | 2515:7c8a246e8652 |
---|---|
98 endif() | 98 endif() |
99 else() | 99 else() |
100 message("The patches for DCMTK have already been applied") | 100 message("The patches for DCMTK have already been applied") |
101 endif() | 101 endif() |
102 | 102 |
103 | |
103 IF (CMAKE_CROSSCOMPILING) | 104 IF (CMAKE_CROSSCOMPILING) |
104 if (CMAKE_COMPILER_IS_GNUCXX AND | 105 if (CMAKE_COMPILER_IS_GNUCXX AND |
105 CMAKE_SYSTEM_NAME STREQUAL "Windows") # MinGW | 106 CMAKE_SYSTEM_NAME STREQUAL "Windows") # MinGW |
106 SET(C_CHAR_UNSIGNED 1 CACHE INTERNAL "Whether char is unsigned.") | 107 SET(C_CHAR_UNSIGNED 1 CACHE INTERNAL "Whether char is unsigned.") |
107 | 108 |
108 elseif(CMAKE_SYSTEM_NAME STREQUAL "Emscripten") # WebAssembly or asm.js | 109 elseif(CMAKE_SYSTEM_NAME STREQUAL "Emscripten") # WebAssembly or asm.js |
109 # Check out "../WebAssembly/arith.h" | 110 |
110 UNSET(SIZEOF_VOID_P CACHE) | 111 # Check out "../WebAssembly/ArithmeticTests/" to regenerate the |
111 UNSET(SIZEOF_CHAR CACHE) | 112 # "arith.h" file |
112 UNSET(SIZEOF_DOUBLE CACHE) | |
113 UNSET(SIZEOF_FLOAT CACHE) | |
114 UNSET(SIZEOF_INT CACHE) | |
115 UNSET(SIZEOF_LONG CACHE) | |
116 UNSET(SIZEOF_SHORT CACHE) | |
117 UNSET(SIZEOF_VOID_P CACHE) | |
118 UNSET(C_CHAR_UNSIGNED CACHE) | |
119 | |
120 SET(SIZEOF_VOID_P 4 CACHE INTERNAL "") | |
121 SET(SIZEOF_CHAR 1 CACHE INTERNAL "") | |
122 SET(SIZEOF_DOUBLE 8 CACHE INTERNAL "") | |
123 SET(SIZEOF_FLOAT 4 CACHE INTERNAL "") | |
124 SET(SIZEOF_INT 4 CACHE INTERNAL "") | |
125 SET(SIZEOF_LONG 4 CACHE INTERNAL "") | |
126 SET(SIZEOF_SHORT 2 CACHE INTERNAL "") | |
127 SET(SIZEOF_VOID_P 4 CACHE INTERNAL "") | |
128 SET(C_CHAR_UNSIGNED 0 CACHE INTERNAL "") | |
129 | |
130 configure_file( | 113 configure_file( |
131 ${ORTHANC_ROOT}/Resources/WebAssembly/arith.h | 114 ${ORTHANC_ROOT}/Resources/WebAssembly/arith.h |
132 ${DCMTK_SOURCES_DIR}/config/include/dcmtk/config/arith.h | 115 ${DCMTK_SOURCES_DIR}/config/include/dcmtk/config/arith.h |
133 COPYONLY) | 116 COPYONLY) |
134 | 117 |
155 endif() | 138 endif() |
156 | 139 |
157 SET(DCMTK_SOURCE_DIR ${DCMTK_SOURCES_DIR}) | 140 SET(DCMTK_SOURCE_DIR ${DCMTK_SOURCES_DIR}) |
158 include(${DCMTK_SOURCES_DIR}/CMake/CheckFunctionWithHeaderExists.cmake) | 141 include(${DCMTK_SOURCES_DIR}/CMake/CheckFunctionWithHeaderExists.cmake) |
159 include(${DCMTK_SOURCES_DIR}/CMake/GenerateDCMTKConfigure.cmake) | 142 include(${DCMTK_SOURCES_DIR}/CMake/GenerateDCMTKConfigure.cmake) |
143 | |
144 | |
145 if (CMAKE_SYSTEM_NAME STREQUAL "Emscripten") # WebAssembly or | |
146 # asm.js The macros below are not properly discovered by DCMTK | |
147 # when using WebAssembly. Check out "../WebAssembly/arith.h" for | |
148 # how we produced these values. This step MUST be after | |
149 # "GenerateDCMTKConfigure" and before the generation of | |
150 # "osconfig.h". | |
151 UNSET(SIZEOF_VOID_P CACHE) | |
152 UNSET(SIZEOF_CHAR CACHE) | |
153 UNSET(SIZEOF_DOUBLE CACHE) | |
154 UNSET(SIZEOF_FLOAT CACHE) | |
155 UNSET(SIZEOF_INT CACHE) | |
156 UNSET(SIZEOF_LONG CACHE) | |
157 UNSET(SIZEOF_SHORT CACHE) | |
158 UNSET(SIZEOF_VOID_P CACHE) | |
159 UNSET(C_CHAR_UNSIGNED CACHE) | |
160 | |
161 SET(SIZEOF_VOID_P 4 CACHE INTERNAL "") | |
162 SET(SIZEOF_CHAR 1 CACHE INTERNAL "") | |
163 SET(SIZEOF_DOUBLE 8 CACHE INTERNAL "") | |
164 SET(SIZEOF_FLOAT 4 CACHE INTERNAL "") | |
165 SET(SIZEOF_INT 4 CACHE INTERNAL "") | |
166 SET(SIZEOF_LONG 4 CACHE INTERNAL "") | |
167 SET(SIZEOF_SHORT 2 CACHE INTERNAL "") | |
168 SET(SIZEOF_VOID_P 4 CACHE INTERNAL "") | |
169 SET(C_CHAR_UNSIGNED 0 CACHE INTERNAL "") | |
170 endif() | |
171 | |
160 | 172 |
161 set(DCMTK_PACKAGE_VERSION_SUFFIX "") | 173 set(DCMTK_PACKAGE_VERSION_SUFFIX "") |
162 set(DCMTK_PACKAGE_VERSION_NUMBER ${DCMTK_VERSION_NUMBER}) | 174 set(DCMTK_PACKAGE_VERSION_NUMBER ${DCMTK_VERSION_NUMBER}) |
163 | 175 |
164 CONFIGURE_FILE( | 176 CONFIGURE_FILE( |
405 /usr/share/libdcmtk12 | 417 /usr/share/libdcmtk12 |
406 /usr/share/libdcmtk13 | 418 /usr/share/libdcmtk13 |
407 /usr/share/libdcmtk14 | 419 /usr/share/libdcmtk14 |
408 /usr/share/libdcmtk15 | 420 /usr/share/libdcmtk15 |
409 /usr/share/libdcmtk16 | 421 /usr/share/libdcmtk16 |
422 /usr/share/libdcmtk17 | |
423 /usr/share/libdcmtk18 | |
424 /usr/share/libdcmtk19 | |
425 /usr/share/libdcmtk20 | |
410 /usr/local/share/dcmtk | 426 /usr/local/share/dcmtk |
411 ) | 427 ) |
412 | 428 |
413 if (${DCMTK_DICTIONARY_DIR_AUTO} MATCHES "DCMTK_DICTIONARY_DIR_AUTO-NOTFOUND") | 429 if (${DCMTK_DICTIONARY_DIR_AUTO} MATCHES "DCMTK_DICTIONARY_DIR_AUTO-NOTFOUND") |
414 message(FATAL_ERROR "Cannot locate the DICOM dictionary on this system") | 430 message(FATAL_ERROR "Cannot locate the DICOM dictionary on this system") |