Mercurial > hg > orthanc-wsi
comparison Resources/CMake/OpenJpegConfiguration.cmake @ 0:4a7a53257c7d
initial commit
author | Sebastien Jodogne <s.jodogne@gmail.com> |
---|---|
date | Sat, 22 Oct 2016 21:48:33 +0200 |
parents | |
children | 217a219ac0fc |
comparison
equal
deleted
inserted
replaced
-1:000000000000 | 0:4a7a53257c7d |
---|---|
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 | |
109 source_group(ThirdParty\\OpenJpeg REGULAR_EXPRESSION ${OPENJPEG_SOURCES_DIR}/.*) | |
110 | |
111 else() | |
112 CHECK_INCLUDE_FILE_CXX(openjpeg.h HAVE_OPENJPEG_H) | |
113 if (NOT HAVE_OPENJPEG_H) | |
114 message(FATAL_ERROR "Please install the openjpeg-devel package") | |
115 endif() | |
116 | |
117 find_path(OPENJPEG_INCLUDE_DIR openjpeg.h) | |
118 | |
119 CHECK_LIBRARY_EXISTS(openjpeg opj_image_create "" HAVE_OPENJPEG_LIB) | |
120 if (NOT HAVE_OPENJPEG_LIB) | |
121 message(FATAL_ERROR "Please install the openjpeg-devel package") | |
122 endif() | |
123 | |
124 # Autodetection of the version of OpenJpeg | |
125 file(STRINGS | |
126 "${OPENJPEG_INCLUDE_DIR}/openjpeg.h" | |
127 OPENJPEG_VERSION REGEX | |
128 "#define OPENJPEG_VERSION") | |
129 | |
130 string(REGEX REPLACE | |
131 ".*OPENJPEG_VERSION.*\"([0-9]*)\\.([0-9]*)\\.([0-9]*)\"$" | |
132 "\\1" | |
133 OPENJPEG_MAJOR_VERSION ${OPENJPEG_VERSION}) | |
134 | |
135 if (OPENJPEG_MAJOR_VERSION EQUAL 1) | |
136 add_definitions(-DORTHANC_OPENJPEG_MAJOR_VERSION=1) | |
137 elseif (OPENJPEG_MAJOR_VERSION EQUAL 2) | |
138 add_definitions(-DORTHANC_OPENJPEG_MAJOR_VERSION=2) | |
139 else() | |
140 message(FATAL_ERROR "Cannot parse the version of OpenJpeg") | |
141 endif() | |
142 | |
143 link_libraries(openjpeg) | |
144 endif() |