]> Creatis software - gdcm.git/blob - src/gdcmjasper/src/libjasper/include/jasper/CMakeLists.txt
COMP: trying to simplify the shared lib on win32... still a mess
[gdcm.git] / src / gdcmjasper / src / libjasper / include / jasper / CMakeLists.txt
1 INCLUDE_REGULAR_EXPRESSION("^.*$") 
2
3 #libjasperinclude_HEADERS = \
4 #  jasper.h \
5 #  jas_config.h \
6 #  jas_config2.h \
7 #  jas_cm.h \
8 #  jas_fix.h \
9 #  jas_debug.h \
10 #  jas_getopt.h \
11 #  jas_icc.h \
12 #  jas_image.h \
13 #  jas_init.h \
14 #  jas_malloc.h \
15 #  jas_math.h \
16 #  jas_seq.h \
17 #  jas_stream.h \
18 #  jas_string.h \
19 #  jas_tvp.h \
20 #  jas_types.h \
21 #  jas_version.h
22 #
23 #libjasperincludedir = $(includedir)/jasper
24
25 SET(JAS_VERSION "1.701.0")
26
27 CHECK_INCLUDE_FILE("dlfcn.h"    HAVE_DLFCN_H)
28 CHECK_INCLUDE_FILE("fcntl.h"    HAVE_FCNTL_H)
29 CHECK_INCLUDE_FILE("inttypes.h" HAVE_INTTYPES_H)
30 CHECK_INCLUDE_FILE("io.h"       HAVE_IO_H)
31 #/* Define to 1 if you have the `m' library (-lm). */
32 ##define HAVE_LIBM 1
33
34 CHECK_INCLUDE_FILE("limits.h"    HAVE_LIMITS_H)
35 CHECK_INCLUDE_FILE("memory.h"    HAVE_MEMORY_H)
36 CHECK_INCLUDE_FILE("stdbool.h"   HAVE_STDBOOL_H)
37 CHECK_INCLUDE_FILE("stddef.h"    HAVE_STDDEF_H)
38 CHECK_INCLUDE_FILE("stdint.h"    HAVE_STDINT_H)
39 CHECK_INCLUDE_FILE("stdlib.h"    HAVE_STDLIB_H)
40 CHECK_INCLUDE_FILE("strings.h"   HAVE_STRINGS_H)
41 CHECK_INCLUDE_FILE("string.h"    HAVE_STRING_H)
42 CHECK_INCLUDE_FILE("sys/stat.h"  HAVE_SYS_STAT_H)
43 CHECK_INCLUDE_FILE("sys/types.h" HAVE_SYS_TYPES_H)
44 CHECK_INCLUDE_FILE("unistd.h"    HAVE_UNISTD_H)
45
46 #/* Have variable length arrays */
47 ##define HAVE_VLA 1
48
49 #/* Define to 1 if you have the `vprintf' function. */
50 ##define HAVE_VPRINTF 1
51
52 CHECK_INCLUDE_FILE("windows.h" HAVE_WINDOWS_H)
53 # Big endian thing:
54 INCLUDE (${CMAKE_ROOT}/Modules/TestBigEndian.cmake)
55 TEST_BIG_ENDIAN(WORDS_BIGENDIAN)
56
57 # let's have some fun with long long and __int64...I don't even know why this lib need those types anyway...
58 INCLUDE(${CMAKE_ROOT}/Modules/CheckTypeSize.cmake)
59 CHECK_TYPE_SIZE("char"   GDCM_SIZEOF_CHAR)
60 CHECK_TYPE_SIZE("short"  GDCM_SIZEOF_SHORT)
61 CHECK_TYPE_SIZE("int"    GDCM_SIZEOF_INT)
62 CHECK_TYPE_SIZE("long"   GDCM_SIZEOF_LONG)
63 CHECK_TYPE_SIZE("float"  GDCM_SIZEOF_FLOAT)
64 CHECK_TYPE_SIZE("double" GDCM_SIZEOF_DOUBLE)
65
66 CHECK_TYPE_SIZE("uint"   GDCM_SIZEOF_UINT)
67 CHECK_TYPE_SIZE("ushort" GDCM_SIZEOF_USHORT)
68 CHECK_TYPE_SIZE("ulong"  GDCM_SIZEOF_ULONG)
69
70 CHECK_TYPE_SIZE("long long" GDCM_SIZEOF_LONG_LONG)
71 CHECK_TYPE_SIZE("__int64"   GDCM_SIZEOF___INT64)
72
73 IF(GDCM_SIZEOF___INT64)
74   IF("GDCM_TYPE_SAME_LONG_AND___INT64" MATCHES "^GDCM_TYPE_SAME_LONG_AND___INT64$")
75     MESSAGE(STATUS "Checking whether long and __int64 are the same type")
76     TRY_COMPILE(GDCM_TYPE_SAME_LONG_AND___INT64
77       ${GDCM_BINARY_DIR}/CMakeTmp
78       ${GDCM_SOURCE_DIR}/CMake/gdcmTestCompareTypes.cxx
79       COMPILE_DEFINITIONS
80       -DGDCM_TEST_COMPARE_TYPE_1=long
81       -DGDCM_TEST_COMPARE_TYPE_2=__int64
82       OUTPUT_VARIABLE OUTPUT)
83     IF(GDCM_TYPE_SAME_LONG_AND___INT64)
84       MESSAGE(STATUS "Checking whether long and __int64 are the same type -- yes")
85       SET(GDCM_TYPE_SAME_LONG_AND___INT64 1 CACHE INTERNAL "Whether long and __int64 are the same type")
86       WRITE_FILE(${CMAKE_BINARY_DIR}/CMakeOutput.log
87         "Determining whether long and __int64 are the same type "
88         "passed with the following output:\n"
89         "${OUTPUT}\n" APPEND)
90     ELSE(GDCM_TYPE_SAME_LONG_AND___INT64)
91       MESSAGE(STATUS "Checking whether long and __int64 are the same type -- no")
92       SET(GDCM_TYPE_SAME_LONG_AND___INT64 0 CACHE INTERNAL "Whether long and __int64 are the same type")
93       WRITE_FILE(${CMAKE_BINARY_DIR}/CMakeError.log
94         "Determining whether long and __int64 are the same type "
95         "failed with the following output:\n"
96         "${OUTPUT}\n" APPEND)
97     ENDIF(GDCM_TYPE_SAME_LONG_AND___INT64)
98   ENDIF("GDCM_TYPE_SAME_LONG_AND___INT64" MATCHES "^GDCM_TYPE_SAME_LONG_AND___INT64$")
99   IF(GDCM_SIZEOF_LONG_LONG)
100     IF("GDCM_TYPE_SAME_LONG_LONG_AND___INT64" MATCHES "^GDCM_TYPE_SAME_LONG_LONG_AND___INT64$")
101       MESSAGE(STATUS "Checking whether long long and __int64 are the same type")
102       TRY_COMPILE(GDCM_TYPE_SAME_LONG_LONG_AND___INT64
103         ${GDCM_BINARY_DIR}/CMakeTmp
104         ${GDCM_SOURCE_DIR}/CMake/gdcmTestCompareTypes.cxx
105         COMPILE_DEFINITIONS
106         -DGDCM_TEST_COMPARE_TYPE_1=TYPE_LONG_LONG
107         -DGDCM_TEST_COMPARE_TYPE_2=__int64
108         OUTPUT_VARIABLE OUTPUT)
109       IF(GDCM_TYPE_SAME_LONG_LONG_AND___INT64)
110         MESSAGE(STATUS "Checking whether long long and __int64 are the same type -- yes")
111         SET(GDCM_TYPE_SAME_LONG_LONG_AND___INT64 1 CACHE INTERNAL "Whether long long and __int64 are the same type")
112         WRITE_FILE(${CMAKE_BINARY_DIR}/CMakeOutput.log
113           "Determining whether long long and __int64 are the same type "
114           "passed with the following output:\n"
115           "${OUTPUT}\n" APPEND)
116       ELSE(GDCM_TYPE_SAME_LONG_LONG_AND___INT64)
117         MESSAGE(STATUS "Checking whether long long and __int64 are the same type -- no")
118         SET(GDCM_TYPE_SAME_LONG_LONG_AND___INT64 0 CACHE INTERNAL "Whether long long and __int64 are the same type")
119         WRITE_FILE(${CMAKE_BINARY_DIR}/CMakeError.log
120           "Determining whether long long and __int64 are the same type "
121           "failed with the following output:\n"
122           "${OUTPUT}\n" APPEND)
123       ENDIF(GDCM_TYPE_SAME_LONG_LONG_AND___INT64)
124     ENDIF("GDCM_TYPE_SAME_LONG_LONG_AND___INT64" MATCHES "^GDCM_TYPE_SAME_LONG_LONG_AND___INT64$")
125   ENDIF(GDCM_SIZEOF_LONG_LONG)
126   IF(NOT GDCM_TYPE_SAME_LONG_AND___INT64)
127     IF(NOT GDCM_TYPE_SAME_LONG_LONG_AND___INT64)
128       #  VS 6 cannot convert unsigned __int64 to double unless the
129       # "Visual C++ Processor Pack" is installed.
130       IF("GDCM_TYPE_CONVERT_UI64_TO_DOUBLE" MATCHES "^GDCM_TYPE_CONVERT_UI64_TO_DOUBLE$")
131         MESSAGE(STATUS "Checking whether unsigned __int64 can convert to double")
132         TRY_COMPILE(GDCM_TYPE_CONVERT_UI64_TO_DOUBLE
133           ${GDCM_BINARY_DIR}/CMakeTmp
134           ${GDCM_SOURCE_DIR}/CMake/gdcmTestConvertTypes.cxx
135           COMPILE_DEFINITIONS
136           -DGDCM_TEST_CONVERT_TYPE_FROM=TYPE_UNSIGNED___INT64
137           -DGDCM_TEST_CONVERT_TYPE_TO=double
138           OUTPUT_VARIABLE OUTPUT)
139         IF(GDCM_TYPE_CONVERT_UI64_TO_DOUBLE)
140           MESSAGE(STATUS "Checking whether unsigned __int64 can convert to double -- yes")
141           SET(GDCM_TYPE_CONVERT_UI64_TO_DOUBLE 1 CACHE INTERNAL "Whether unsigned __int64 can convert to double")
142           WRITE_FILE(${CMAKE_BINARY_DIR}/CMakeOutput.log
143             "Determining whether unsigned __int64 can convert to double "
144             "passed with the following output:\n"
145             "${OUTPUT}\n" APPEND)
146         ELSE(GDCM_TYPE_CONVERT_UI64_TO_DOUBLE)
147           MESSAGE(STATUS "Checking whether unsigned __int64 can convert to double -- no")
148           SET(GDCM_TYPE_CONVERT_UI64_TO_DOUBLE 0 CACHE INTERNAL "Whether unsigned __int64 can convert to double")
149           WRITE_FILE(${CMAKE_BINARY_DIR}/CMakeError.log
150             "Determining whether unsigned __int64 can convert to double "
151             "failed with the following output:\n"
152             "${OUTPUT}\n" APPEND)
153         ENDIF(GDCM_TYPE_CONVERT_UI64_TO_DOUBLE)
154       ENDIF("GDCM_TYPE_CONVERT_UI64_TO_DOUBLE" MATCHES "^GDCM_TYPE_CONVERT_UI64_TO_DOUBLE$")
155     ENDIF(NOT GDCM_TYPE_SAME_LONG_LONG_AND___INT64)
156   ENDIF(NOT GDCM_TYPE_SAME_LONG_AND___INT64)
157 ENDIF(GDCM_SIZEOF___INT64)
158
159 # Enable the "long long" type if it is available.  It is standard in
160 # C99 and C++03 but not in earlier standards.
161 SET(GDCM_TYPE_USE_LONG_LONG)
162 IF(GDCM_SIZEOF_LONG_LONG)
163   SET(GDCM_TYPE_USE_LONG_LONG 1)
164 ENDIF(GDCM_SIZEOF_LONG_LONG)
165
166 # Enable the "__int64" type if it is available and unique.  It is not
167 # standard.
168 SET(GDCM_TYPE_USE___INT64)
169 IF(GDCM_SIZEOF___INT64)
170   IF(NOT GDCM_TYPE_SAME_LONG_AND___INT64)
171     IF(NOT GDCM_TYPE_SAME_LONG_LONG_AND___INT64)
172       SET(GDCM_TYPE_USE___INT64 1)
173     ENDIF(NOT GDCM_TYPE_SAME_LONG_LONG_AND___INT64)
174   ENDIF(NOT GDCM_TYPE_SAME_LONG_AND___INT64)
175 ENDIF(GDCM_SIZEOF___INT64)
176
177 IF (WIN32)
178   IF (BUILD_SHARED_LIBS)
179 #    ADD_DEFINITIONS(-DJASPERDLL)
180     SET(JASPERDLL 1)
181   ELSE (BUILD_SHARED_LIBS)
182     SET(JASPERSTATIC 1)
183   ENDIF (BUILD_SHARED_LIBS)
184 ENDIF (WIN32)
185
186 CONFIGURE_FILE(
187   "${GDCMJASPER_SOURCE_DIR}/src/libjasper/include/jasper/jas_config.h.in"
188   "${GDCMJASPER_BINARY_DIR}/src/libjasper/include/jasper/jas_config.h"
189   @ONLY IMMEDIATE)