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
|
|
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()
|