From 0fe2afcdd153ff2ee8f3ba2b4b02478e154a57df Mon Sep 17 00:00:00 2001 From: malaterre Date: Sun, 29 May 2005 22:59:59 +0000 Subject: [PATCH] ENH: Fix the this header. PLEASE do not touch if you dont know what you are doing --- .../libjasper/include/jasper/CMakeLists.txt | 118 +++++++++++++++++- .../libjasper/include/jasper/jas_config.h.in | 88 +++++++------ 2 files changed, 168 insertions(+), 38 deletions(-) diff --git a/src/gdcmjasper/src/libjasper/include/jasper/CMakeLists.txt b/src/gdcmjasper/src/libjasper/include/jasper/CMakeLists.txt index 1d2a9ac8..7a79978a 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/vtkTestCompareTypes.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/vtkTestCompareTypes.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/vtkTestConvertTypes.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 diff --git a/src/gdcmjasper/src/libjasper/include/jasper/jas_config.h.in b/src/gdcmjasper/src/libjasper/include/jasper/jas_config.h.in index e3936565..055fc02c 100644 --- a/src/gdcmjasper/src/libjasper/include/jasper/jas_config.h.in +++ b/src/gdcmjasper/src/libjasper/include/jasper/jas_config.h.in @@ -100,30 +100,47 @@ /* Define to the version of this package. */ #define PACKAGE_VERSION "@JAS_VERSION@" -#if 0 +/* Size of fundamental data types. */ /* The size of a `int', as computed by sizeof. */ -#define SIZEOF_INT 4 +#define SIZEOF_INT @GDCM_SIZEOF_INT@ /* The size of a `long', as computed by sizeof. */ -#define SIZEOF_LONG 4 - -/* The size of a `long long', as computed by sizeof. */ -#define SIZEOF_LONG_LONG 8 +#define SIZEOF_LONG @GDCM_SIZEOF_LONG@ /* The size of a `short', as computed by sizeof. */ -#define SIZEOF_SHORT 2 +#define SIZEOF_SHORT @GDCM_SIZEOF_SHORT@ + +/* The size of a `char', as computed by sizeof. */ +#define SIZEOF_CHAR @GDCM_SIZEOF_CHAR@ +/* The size of a `double', as computed by sizeof. */ +#define SIZEOF_DOUBLE @GDCM_SIZEOF_DOUBLE@ + +/* The size of a `float', as computed by sizeof. */ +#define SIZEOF_FLOAT @GDCM_SIZEOF_FLOAT@ + +/* Could someone give me an example of plateform that have + * different size for unsigned types ?? */ /* The size of a `unsigned int', as computed by sizeof. */ -#define SIZEOF_UNSIGNED_INT 4 +#define SIZEOF_UNSIGNED_INT @GDCM_SIZEOF_INT@ /* The size of a `unsigned long', as computed by sizeof. */ -#define SIZEOF_UNSIGNED_LONG 4 +#define SIZEOF_UNSIGNED_LONG @GDCM_SIZEOF_LONG@ + +/* The size of a `unsigned short', as computed by sizeof. */ +#define SIZEOF_UNSIGNED_SHORT @GDCM_SIZEOF_SHORT@ + + +/* Define size of long long and/or __int64 bit integer type only if the type + exists. */ +/* The size of a `long long', as computed by sizeof. */ +#cmakedefine GDCM_SIZEOF_LONG_LONG @GDCM_SIZEOF_LONG_LONG@ +#cmakedefine GDCM_SIZEOF___INT64 @GDCM_SIZEOF___INT64@ /* The size of a `unsigned long long', as computed by sizeof. */ -#define SIZEOF_UNSIGNED_LONG_LONG 8 +#define SIZEOF_UNSIGNED_LONG_LONG @GDCM_SIZEOF_LONG_LONG@ + -/* The size of a `unsigned short', as computed by sizeof. */ -#define SIZEOF_UNSIGNED_SHORT 2 /* Define to 1 if you have the ANSI C header files. */ #define STDC_HEADERS 1 @@ -146,44 +163,41 @@ if it is not supported. */ /* #undef inline */ -/* I have #define for types... */ -#if 0 -/* Define to `long long' if does not define. */ -#define longlong long long +/* Whether types "long long" and "__int64" are enabled. If a type is + enabled then it is a unique fundamental type. */ +#cmakedefine GDCM_TYPE_USE_LONG_LONG +#cmakedefine GDCM_TYPE_USE___INT64 -/* Define to `unsigned' if does not define. */ -/* #undef size_t */ - -/* Define to `int' if does not define. */ -/* #undef ssize_t */ - -/* Define to `unsigned char' if does not define. */ -#define uchar unsigned char - -/* Define to `unsigned int' if does not define. */ -/* #undef uint */ - -/* Define to `unsigned long' if does not define. */ -#define ulong unsigned long - -/* Define to `unsigned long long' if does not define. */ -#define ulonglong unsigned long long - -/* Define to `unsigned short' if does not define. */ -/* #undef ushort */ -#endif +/* Some properties of the available types. */ +#cmakedefine GDCM_TYPE_SAME_LONG_AND___INT64 +#cmakedefine GDCM_TYPE_SAME_LONG_LONG_AND___INT64 +#cmakedefine GDCM_TYPE_CONVERT_UI64_TO_DOUBLE +// On win32 there is no long long therefore use __int64 instead +// #ifndef HAVE_SYS_TYPES_H typedef unsigned short ushort; typedef unsigned int uint; typedef unsigned long ulong; +#ifdef GDCM_TYPE_USE___INT64 +typedef unsigned char uchar; +typedef unsigned __int64 ulonglong; +typedef __int64 longlong; +#else +#error this is not supposed to happen please report your compiler +#endif #else +#ifdef GDCM_TYPE_USE_LONG_LONG typedef unsigned char uchar; typedef unsigned long long ulonglong; typedef long long longlong; +#else +#error this is not supposed to happen please report your compiler +#endif /* #define ssize_t int */ #endif + #endif -- 2.45.2