# HG changeset patch # User Sebastien Jodogne # Date 1522310886 -7200 # Node ID 7c8a246e8652bbf5662972c03e3f283976f31352 # Parent 38d666a408603692abdda0ee717e0c21c467c556 fix WebAssembly build diff -r 38d666a40860 -r 7c8a246e8652 Resources/CMake/BoostConfiguration.cmake --- a/Resources/CMake/BoostConfiguration.cmake Thu Mar 29 08:55:32 2018 +0200 +++ b/Resources/CMake/BoostConfiguration.cmake Thu Mar 29 10:08:06 2018 +0200 @@ -145,6 +145,7 @@ ) elseif (CMAKE_SYSTEM_NAME STREQUAL "Emscripten") + # No support for threads in WebAssembly else() message(FATAL_ERROR "Support your platform here") diff -r 38d666a40860 -r 7c8a246e8652 Resources/CMake/DcmtkConfiguration.cmake --- a/Resources/CMake/DcmtkConfiguration.cmake Thu Mar 29 08:55:32 2018 +0200 +++ b/Resources/CMake/DcmtkConfiguration.cmake Thu Mar 29 10:08:06 2018 +0200 @@ -100,33 +100,16 @@ message("The patches for DCMTK have already been applied") endif() + IF (CMAKE_CROSSCOMPILING) if (CMAKE_COMPILER_IS_GNUCXX AND CMAKE_SYSTEM_NAME STREQUAL "Windows") # MinGW SET(C_CHAR_UNSIGNED 1 CACHE INTERNAL "Whether char is unsigned.") elseif(CMAKE_SYSTEM_NAME STREQUAL "Emscripten") # WebAssembly or asm.js - # Check out "../WebAssembly/arith.h" - UNSET(SIZEOF_VOID_P CACHE) - UNSET(SIZEOF_CHAR CACHE) - UNSET(SIZEOF_DOUBLE CACHE) - UNSET(SIZEOF_FLOAT CACHE) - UNSET(SIZEOF_INT CACHE) - UNSET(SIZEOF_LONG CACHE) - UNSET(SIZEOF_SHORT CACHE) - UNSET(SIZEOF_VOID_P CACHE) - UNSET(C_CHAR_UNSIGNED CACHE) - SET(SIZEOF_VOID_P 4 CACHE INTERNAL "") - SET(SIZEOF_CHAR 1 CACHE INTERNAL "") - SET(SIZEOF_DOUBLE 8 CACHE INTERNAL "") - SET(SIZEOF_FLOAT 4 CACHE INTERNAL "") - SET(SIZEOF_INT 4 CACHE INTERNAL "") - SET(SIZEOF_LONG 4 CACHE INTERNAL "") - SET(SIZEOF_SHORT 2 CACHE INTERNAL "") - SET(SIZEOF_VOID_P 4 CACHE INTERNAL "") - SET(C_CHAR_UNSIGNED 0 CACHE INTERNAL "") - + # Check out "../WebAssembly/ArithmeticTests/" to regenerate the + # "arith.h" file configure_file( ${ORTHANC_ROOT}/Resources/WebAssembly/arith.h ${DCMTK_SOURCES_DIR}/config/include/dcmtk/config/arith.h @@ -158,6 +141,35 @@ include(${DCMTK_SOURCES_DIR}/CMake/CheckFunctionWithHeaderExists.cmake) include(${DCMTK_SOURCES_DIR}/CMake/GenerateDCMTKConfigure.cmake) + + if (CMAKE_SYSTEM_NAME STREQUAL "Emscripten") # WebAssembly or + # asm.js The macros below are not properly discovered by DCMTK + # when using WebAssembly. Check out "../WebAssembly/arith.h" for + # how we produced these values. This step MUST be after + # "GenerateDCMTKConfigure" and before the generation of + # "osconfig.h". + UNSET(SIZEOF_VOID_P CACHE) + UNSET(SIZEOF_CHAR CACHE) + UNSET(SIZEOF_DOUBLE CACHE) + UNSET(SIZEOF_FLOAT CACHE) + UNSET(SIZEOF_INT CACHE) + UNSET(SIZEOF_LONG CACHE) + UNSET(SIZEOF_SHORT CACHE) + UNSET(SIZEOF_VOID_P CACHE) + UNSET(C_CHAR_UNSIGNED CACHE) + + SET(SIZEOF_VOID_P 4 CACHE INTERNAL "") + SET(SIZEOF_CHAR 1 CACHE INTERNAL "") + SET(SIZEOF_DOUBLE 8 CACHE INTERNAL "") + SET(SIZEOF_FLOAT 4 CACHE INTERNAL "") + SET(SIZEOF_INT 4 CACHE INTERNAL "") + SET(SIZEOF_LONG 4 CACHE INTERNAL "") + SET(SIZEOF_SHORT 2 CACHE INTERNAL "") + SET(SIZEOF_VOID_P 4 CACHE INTERNAL "") + SET(C_CHAR_UNSIGNED 0 CACHE INTERNAL "") + endif() + + set(DCMTK_PACKAGE_VERSION_SUFFIX "") set(DCMTK_PACKAGE_VERSION_NUMBER ${DCMTK_VERSION_NUMBER}) @@ -407,6 +419,10 @@ /usr/share/libdcmtk14 /usr/share/libdcmtk15 /usr/share/libdcmtk16 + /usr/share/libdcmtk17 + /usr/share/libdcmtk18 + /usr/share/libdcmtk19 + /usr/share/libdcmtk20 /usr/local/share/dcmtk )