Mercurial > hg > orthanc-wsi
annotate Resources/CMake/OpenJpegConfiguration.cmake @ 13:e944d00a8a9e
fix
author | Sebastien Jodogne <s.jodogne@gmail.com> |
---|---|
date | Thu, 27 Oct 2016 10:01:10 +0200 |
parents | 2d7676b93a0f |
children | d101055fc20b |
rev | line source |
---|---|
0 | 1 if (STATIC_BUILD OR NOT USE_SYSTEM_OPENJPEG) |
2 SET(OPENJPEG_SOURCES_DIR ${CMAKE_BINARY_DIR}/openjpeg-version.2.1) | |
3 SET(OPENJPEG_URL "http://www.montefiore.ulg.ac.be/~jodogne/Orthanc/ThirdPartyDownloads/openjpeg-2.1.tar.gz") | |
4 SET(OPENJPEG_MD5 "3e1c451c087f8462955426da38aa3b3d") | |
5 | |
6 if (IS_DIRECTORY "${OPENJPEG_SOURCES_DIR}") | |
7 set(FirstRun OFF) | |
8 else() | |
9 set(FirstRun ON) | |
10 endif() | |
11 | |
12 DownloadPackage(${OPENJPEG_MD5} ${OPENJPEG_URL} "${OPENJPEG_SOURCES_DIR}") | |
13 | |
14 execute_process( | |
15 COMMAND ${PATCH_EXECUTABLE} -p0 -N -i ${CMAKE_CURRENT_LIST_DIR}/OpenJpegConfiguration.patch | |
16 WORKING_DIRECTORY ${CMAKE_BINARY_DIR} | |
17 RESULT_VARIABLE Failure | |
18 ) | |
19 | |
20 if (Failure AND FirstRun) | |
21 message(FATAL_ERROR "Error while patching a file") | |
22 endif() | |
23 | |
24 if (USE_OPENJPEG_JP2) | |
25 set(OPENJPEG_SOURCES | |
26 ${OPENJPEG_SOURCES_DIR}/src/lib/openjp2/bio.c | |
27 #${OPENJPEG_SOURCES_DIR}/src/lib/openjp2/cidx_manager.c | |
28 ${OPENJPEG_SOURCES_DIR}/src/lib/openjp2/cio.c | |
29 ${OPENJPEG_SOURCES_DIR}/src/lib/openjp2/dwt.c | |
30 ${OPENJPEG_SOURCES_DIR}/src/lib/openjp2/event.c | |
31 ${OPENJPEG_SOURCES_DIR}/src/lib/openjp2/function_list.c | |
32 ${OPENJPEG_SOURCES_DIR}/src/lib/openjp2/image.c | |
33 ${OPENJPEG_SOURCES_DIR}/src/lib/openjp2/invert.c | |
34 ${OPENJPEG_SOURCES_DIR}/src/lib/openjp2/j2k.c | |
35 ${OPENJPEG_SOURCES_DIR}/src/lib/openjp2/jp2.c | |
36 ${OPENJPEG_SOURCES_DIR}/src/lib/openjp2/mct.c | |
37 ${OPENJPEG_SOURCES_DIR}/src/lib/openjp2/mqc.c | |
38 ${OPENJPEG_SOURCES_DIR}/src/lib/openjp2/openjpeg.c | |
39 ${OPENJPEG_SOURCES_DIR}/src/lib/openjp2/opj_clock.c | |
40 #${OPENJPEG_SOURCES_DIR}/src/lib/openjp2/phix_manager.c | |
41 ${OPENJPEG_SOURCES_DIR}/src/lib/openjp2/pi.c | |
42 #${OPENJPEG_SOURCES_DIR}/src/lib/openjp2/ppix_manager.c | |
43 ${OPENJPEG_SOURCES_DIR}/src/lib/openjp2/raw.c | |
44 ${OPENJPEG_SOURCES_DIR}/src/lib/openjp2/t1.c | |
45 #${OPENJPEG_SOURCES_DIR}/src/lib/openjp2/t1_generate_luts.c | |
46 ${OPENJPEG_SOURCES_DIR}/src/lib/openjp2/t2.c | |
47 ${OPENJPEG_SOURCES_DIR}/src/lib/openjp2/tcd.c | |
48 ${OPENJPEG_SOURCES_DIR}/src/lib/openjp2/tgt.c | |
49 #${OPENJPEG_SOURCES_DIR}/src/lib/openjp2/thix_manager.c | |
50 #${OPENJPEG_SOURCES_DIR}/src/lib/openjp2/tpix_manager.c | |
51 ) | |
52 | |
53 configure_file( | |
54 ${OPENJPEG_SOURCES_DIR}/src/lib/openjp2/opj_config.h.cmake.in | |
55 ${OPENJPEG_SOURCES_DIR}/src/lib/openjp2/opj_config.h | |
56 @ONLY | |
57 ) | |
58 | |
59 configure_file( | |
60 ${OPENJPEG_SOURCES_DIR}/src/lib/openjp2/opj_config_private.h.cmake.in | |
61 ${OPENJPEG_SOURCES_DIR}/src/lib/openjp2/opj_config_private.h | |
62 @ONLY | |
63 ) | |
64 | |
65 include_directories( | |
66 ${OPENJPEG_SOURCES_DIR}/src/lib/openjp2 | |
67 ) | |
68 | |
69 # The following definition disables explicit inlining. This is | |
70 # necessary to bypass the "undefined reference to | |
71 # `opj_t1_dec_sigpass_step_mqc'" error. | |
72 add_definitions( | |
73 #-DINLINE= | |
74 ) | |
75 | |
76 else() | |
77 AUX_SOURCE_DIRECTORY(${OPENJPEG_SOURCES_DIR}/src/lib/openmj2 OPENJPEG_SOURCES) | |
78 | |
79 configure_file( | |
80 ${OPENJPEG_SOURCES_DIR}/src/lib/openjp2/opj_config.h.cmake.in | |
81 ${OPENJPEG_SOURCES_DIR}/src/lib/openmj2/opj_config.h | |
82 @ONLY | |
83 ) | |
84 | |
85 configure_file( | |
86 ${OPENJPEG_SOURCES_DIR}/src/lib/openjp2/opj_config_private.h.cmake.in | |
87 ${OPENJPEG_SOURCES_DIR}/src/lib/openmj2/opj_config_private.h | |
88 @ONLY | |
89 ) | |
90 | |
91 include_directories( | |
92 ${OPENJPEG_SOURCES_DIR}/src/lib/openmj2 | |
93 ) | |
94 endif() | |
95 | |
96 | |
97 add_definitions( | |
98 -DOPJ_STATIC | |
99 -DORTHANC_OPENJPEG_MAJOR_VERSION=2 | |
100 ) | |
101 | |
102 if (NOT WIN32) | |
103 add_definitions( | |
104 -DOPJ_HAVE_STDINT_H=1 | |
105 -DOPJ_HAVE_INTTYPES_H=1 | |
106 ) | |
107 endif() | |
108 | |
11
217a219ac0fc
additional search path for openjpeg.h
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
0
diff
changeset
|
109 source_group(ThirdParty\\OpenJPEG REGULAR_EXPRESSION ${OPENJPEG_SOURCES_DIR}/.*) |
0 | 110 |
111 else() | |
11
217a219ac0fc
additional search path for openjpeg.h
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
0
diff
changeset
|
112 find_path(OPENJPEG_INCLUDE_DIR |
12 | 113 NAMES openjpeg.h |
114 PATHS | |
11
217a219ac0fc
additional search path for openjpeg.h
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
0
diff
changeset
|
115 /usr/include/ |
12 | 116 /usr/include/openjpeg-2.1/ |
11
217a219ac0fc
additional search path for openjpeg.h
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
0
diff
changeset
|
117 /usr/local/include/ |
217a219ac0fc
additional search path for openjpeg.h
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
0
diff
changeset
|
118 ) |
217a219ac0fc
additional search path for openjpeg.h
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
0
diff
changeset
|
119 |
217a219ac0fc
additional search path for openjpeg.h
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
0
diff
changeset
|
120 CHECK_INCLUDE_FILE_CXX(${OPENJPEG_INCLUDE_DIR}/openjpeg.h HAVE_OPENJPEG_H) |
0 | 121 if (NOT HAVE_OPENJPEG_H) |
11
217a219ac0fc
additional search path for openjpeg.h
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
0
diff
changeset
|
122 message(FATAL_ERROR "Please install the OpenJPEG development package") |
0 | 123 endif() |
124 | |
125 CHECK_LIBRARY_EXISTS(openjpeg opj_image_create "" HAVE_OPENJPEG_LIB) | |
12 | 126 if (HAVE_OPENJPEG_LIB) |
13 | 127 set(OPENJPEG_LIB openjpeg) |
12 | 128 else() |
129 # Search for alternative name "libopenjp2.so" that is notably used by Debian | |
130 CHECK_LIBRARY_EXISTS(openjp2 opj_image_create "" HAVE_OPENJP2_LIB) | |
131 | |
132 if (HAVE_OPENJP2_LIB) | |
133 set(OPENJPEG_LIB openjp2) | |
134 else() | |
135 message(FATAL_ERROR "Please install the OpenJPEG development package") | |
136 endif() | |
0 | 137 endif() |
138 | |
12 | 139 # Detection of the version of OpenJpeg |
140 set(CMAKE_REQUIRED_INCLUDES ${OPENJPEG_INCLUDE_DIR}) | |
141 set(CMAKE_REQUIRED_LIBRARIES ${OPENJPEG_LIB}) | |
13 | 142 |
12 | 143 CHECK_SYMBOL_EXISTS(opj_destroy_decompress openjpeg.h HAVE_OPENJPEG_1) |
144 if (HAVE_OPENJPEG_1) | |
145 message("Your system has OpenJPEG version 1") | |
0 | 146 add_definitions(-DORTHANC_OPENJPEG_MAJOR_VERSION=1) |
147 else() | |
12 | 148 CHECK_SYMBOL_EXISTS(opj_destroy_codec openjpeg.h HAVE_OPENJPEG_2) |
149 if (HAVE_OPENJPEG_2) | |
150 message("Your system has OpenJPEG version 2") | |
151 add_definitions(-DORTHANC_OPENJPEG_MAJOR_VERSION=2) | |
152 else() | |
153 message(FATAL_ERROR "Cannot detect your system version of OpenJPEG") | |
154 endif() | |
0 | 155 endif() |
12 | 156 |
157 link_libraries(${OPENJPEG_LIB}) | |
158 include_directories(${OPENJPEG_INCLUDE_DIR}) | |
0 | 159 endif() |