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