X-Git-Url: https://git.creatis.insa-lyon.fr/pubgit/?a=blobdiff_plain;f=src%2Fgdcmjasper%2Fsrc%2Flibjasper%2Finclude%2Fjasper%2FCMakeLists.txt;h=fd1ba789ebd4ef8dd8689750753986c57f77c582;hb=449c42aea4c5d0bf580c80561a6d6afbba3d948a;hp=1d2a9ac8d4cbdedd9cdfdc7bb310e5c29fb21b83;hpb=864d8790a138bbddf80130534571adde753c8d67;p=gdcm.git diff --git a/src/gdcmjasper/src/libjasper/include/jasper/CMakeLists.txt b/src/gdcmjasper/src/libjasper/include/jasper/CMakeLists.txt index 1d2a9ac8..fd1ba789 100644 --- a/src/gdcmjasper/src/libjasper/include/jasper/CMakeLists.txt +++ b/src/gdcmjasper/src/libjasper/include/jasper/CMakeLists.txt @@ -1,4 +1,4 @@ -INCLUDE_REGULAR_EXPRESSION("^(jas).*$") +#INCLUDE_REGULAR_EXPRESSION("^(jas).*$") #libjasperinclude_HEADERS = \ @@ -55,6 +55,122 @@ CHECK_INCLUDE_FILE("windows.h" HAVE_WINDOWS_H) INCLUDE (${CMAKE_ROOT}/Modules/TestBigEndian.cmake) TEST_BIG_ENDIAN(WORDS_BIGENDIAN) +# let's have some fun with long long and __int64...I don't even know why this lib need those types anyway... +INCLUDE(${CMAKE_ROOT}/Modules/CheckTypeSize.cmake) +CHECK_TYPE_SIZE("char" GDCM_SIZEOF_CHAR) +CHECK_TYPE_SIZE("short" GDCM_SIZEOF_SHORT) +CHECK_TYPE_SIZE("int" GDCM_SIZEOF_INT) +CHECK_TYPE_SIZE("long" GDCM_SIZEOF_LONG) +CHECK_TYPE_SIZE("float" GDCM_SIZEOF_FLOAT) +CHECK_TYPE_SIZE("double" GDCM_SIZEOF_DOUBLE) + +CHECK_TYPE_SIZE("long long" GDCM_SIZEOF_LONG_LONG) +CHECK_TYPE_SIZE("__int64" GDCM_SIZEOF___INT64) + +IF(GDCM_SIZEOF___INT64) + IF("GDCM_TYPE_SAME_LONG_AND___INT64" MATCHES "^GDCM_TYPE_SAME_LONG_AND___INT64$") + MESSAGE(STATUS "Checking whether long and __int64 are the same type") + TRY_COMPILE(GDCM_TYPE_SAME_LONG_AND___INT64 + ${GDCM_BINARY_DIR}/CMakeTmp + ${GDCM_SOURCE_DIR}/CMake/gdcmTestCompareTypes.cxx + COMPILE_DEFINITIONS + -DGDCM_TEST_COMPARE_TYPE_1=long + -DGDCM_TEST_COMPARE_TYPE_2=__int64 + OUTPUT_VARIABLE OUTPUT) + IF(GDCM_TYPE_SAME_LONG_AND___INT64) + MESSAGE(STATUS "Checking whether long and __int64 are the same type -- yes") + SET(GDCM_TYPE_SAME_LONG_AND___INT64 1 CACHE INTERNAL "Whether long and __int64 are the same type") + WRITE_FILE(${CMAKE_BINARY_DIR}/CMakeOutput.log + "Determining whether long and __int64 are the same type " + "passed with the following output:\n" + "${OUTPUT}\n" APPEND) + ELSE(GDCM_TYPE_SAME_LONG_AND___INT64) + MESSAGE(STATUS "Checking whether long and __int64 are the same type -- no") + SET(GDCM_TYPE_SAME_LONG_AND___INT64 0 CACHE INTERNAL "Whether long and __int64 are the same type") + WRITE_FILE(${CMAKE_BINARY_DIR}/CMakeError.log + "Determining whether long and __int64 are the same type " + "failed with the following output:\n" + "${OUTPUT}\n" APPEND) + ENDIF(GDCM_TYPE_SAME_LONG_AND___INT64) + ENDIF("GDCM_TYPE_SAME_LONG_AND___INT64" MATCHES "^GDCM_TYPE_SAME_LONG_AND___INT64$") + IF(GDCM_SIZEOF_LONG_LONG) + IF("GDCM_TYPE_SAME_LONG_LONG_AND___INT64" MATCHES "^GDCM_TYPE_SAME_LONG_LONG_AND___INT64$") + MESSAGE(STATUS "Checking whether long long and __int64 are the same type") + TRY_COMPILE(GDCM_TYPE_SAME_LONG_LONG_AND___INT64 + ${GDCM_BINARY_DIR}/CMakeTmp + ${GDCM_SOURCE_DIR}/CMake/gdcmTestCompareTypes.cxx + COMPILE_DEFINITIONS + -DGDCM_TEST_COMPARE_TYPE_1=TYPE_LONG_LONG + -DGDCM_TEST_COMPARE_TYPE_2=__int64 + OUTPUT_VARIABLE OUTPUT) + IF(GDCM_TYPE_SAME_LONG_LONG_AND___INT64) + MESSAGE(STATUS "Checking whether long long and __int64 are the same type -- yes") + SET(GDCM_TYPE_SAME_LONG_LONG_AND___INT64 1 CACHE INTERNAL "Whether long long and __int64 are the same type") + WRITE_FILE(${CMAKE_BINARY_DIR}/CMakeOutput.log + "Determining whether long long and __int64 are the same type " + "passed with the following output:\n" + "${OUTPUT}\n" APPEND) + ELSE(GDCM_TYPE_SAME_LONG_LONG_AND___INT64) + MESSAGE(STATUS "Checking whether long long and __int64 are the same type -- no") + SET(GDCM_TYPE_SAME_LONG_LONG_AND___INT64 0 CACHE INTERNAL "Whether long long and __int64 are the same type") + WRITE_FILE(${CMAKE_BINARY_DIR}/CMakeError.log + "Determining whether long long and __int64 are the same type " + "failed with the following output:\n" + "${OUTPUT}\n" APPEND) + ENDIF(GDCM_TYPE_SAME_LONG_LONG_AND___INT64) + ENDIF("GDCM_TYPE_SAME_LONG_LONG_AND___INT64" MATCHES "^GDCM_TYPE_SAME_LONG_LONG_AND___INT64$") + ENDIF(GDCM_SIZEOF_LONG_LONG) + IF(NOT GDCM_TYPE_SAME_LONG_AND___INT64) + IF(NOT GDCM_TYPE_SAME_LONG_LONG_AND___INT64) + # VS 6 cannot convert unsigned __int64 to double unless the + # "Visual C++ Processor Pack" is installed. + IF("GDCM_TYPE_CONVERT_UI64_TO_DOUBLE" MATCHES "^GDCM_TYPE_CONVERT_UI64_TO_DOUBLE$") + MESSAGE(STATUS "Checking whether unsigned __int64 can convert to double") + TRY_COMPILE(GDCM_TYPE_CONVERT_UI64_TO_DOUBLE + ${GDCM_BINARY_DIR}/CMakeTmp + ${GDCM_SOURCE_DIR}/CMake/gdcmTestConvertTypes.cxx + COMPILE_DEFINITIONS + -DGDCM_TEST_CONVERT_TYPE_FROM=TYPE_UNSIGNED___INT64 + -DGDCM_TEST_CONVERT_TYPE_TO=double + OUTPUT_VARIABLE OUTPUT) + IF(GDCM_TYPE_CONVERT_UI64_TO_DOUBLE) + MESSAGE(STATUS "Checking whether unsigned __int64 can convert to double -- yes") + SET(GDCM_TYPE_CONVERT_UI64_TO_DOUBLE 1 CACHE INTERNAL "Whether unsigned __int64 can convert to double") + WRITE_FILE(${CMAKE_BINARY_DIR}/CMakeOutput.log + "Determining whether unsigned __int64 can convert to double " + "passed with the following output:\n" + "${OUTPUT}\n" APPEND) + ELSE(GDCM_TYPE_CONVERT_UI64_TO_DOUBLE) + MESSAGE(STATUS "Checking whether unsigned __int64 can convert to double -- no") + SET(GDCM_TYPE_CONVERT_UI64_TO_DOUBLE 0 CACHE INTERNAL "Whether unsigned __int64 can convert to double") + WRITE_FILE(${CMAKE_BINARY_DIR}/CMakeError.log + "Determining whether unsigned __int64 can convert to double " + "failed with the following output:\n" + "${OUTPUT}\n" APPEND) + ENDIF(GDCM_TYPE_CONVERT_UI64_TO_DOUBLE) + ENDIF("GDCM_TYPE_CONVERT_UI64_TO_DOUBLE" MATCHES "^GDCM_TYPE_CONVERT_UI64_TO_DOUBLE$") + ENDIF(NOT GDCM_TYPE_SAME_LONG_LONG_AND___INT64) + ENDIF(NOT GDCM_TYPE_SAME_LONG_AND___INT64) +ENDIF(GDCM_SIZEOF___INT64) + +# Enable the "long long" type if it is available. It is standard in +# C99 and C++03 but not in earlier standards. +SET(GDCM_TYPE_USE_LONG_LONG) +IF(GDCM_SIZEOF_LONG_LONG) + SET(GDCM_TYPE_USE_LONG_LONG 1) +ENDIF(GDCM_SIZEOF_LONG_LONG) + +# Enable the "__int64" type if it is available and unique. It is not +# standard. +SET(GDCM_TYPE_USE___INT64) +IF(GDCM_SIZEOF___INT64) + IF(NOT GDCM_TYPE_SAME_LONG_AND___INT64) + IF(NOT GDCM_TYPE_SAME_LONG_LONG_AND___INT64) + SET(GDCM_TYPE_USE___INT64 1) + ENDIF(NOT GDCM_TYPE_SAME_LONG_LONG_AND___INT64) + ENDIF(NOT GDCM_TYPE_SAME_LONG_AND___INT64) +ENDIF(GDCM_SIZEOF___INT64) + CONFIGURE_FILE( ${JASPER_SOURCE_DIR}/src/libjasper/include/jasper/jas_config.h.in ${JASPER_BINARY_DIR}/src/libjasper/include/jasper/jas_config.h