Mercurial > hgrepos > Python2 > PyMuPDF
comparison mupdf-source/thirdparty/openjpeg/src/lib/openjp2/CMakeLists.txt @ 2:b50eed0cc0ef upstream
ADD: MuPDF v1.26.7: the MuPDF source as downloaded by a default build of PyMuPDF 1.26.4.
The directory name has changed: no version number in the expanded directory now.
| author | Franz Glasner <fzglas.hg@dom66.de> |
|---|---|
| date | Mon, 15 Sep 2025 11:43:07 +0200 |
| parents | |
| children |
comparison
equal
deleted
inserted
replaced
| 1:1d09e1dec1d9 | 2:b50eed0cc0ef |
|---|---|
| 1 include_regular_expression("^.*$") | |
| 2 | |
| 3 # | |
| 4 install( FILES ${CMAKE_CURRENT_BINARY_DIR}/opj_config.h | |
| 5 DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/${OPENJPEG_INSTALL_SUBDIR} COMPONENT Headers) | |
| 6 | |
| 7 include_directories( | |
| 8 ${${OPENJPEG_NAMESPACE}_BINARY_DIR}/src/lib/openjp2 # opj_config.h and opj_config_private.h | |
| 9 ) | |
| 10 # Defines the source code for the library | |
| 11 set(OPENJPEG_SRCS | |
| 12 ${CMAKE_CURRENT_SOURCE_DIR}/thread.c | |
| 13 ${CMAKE_CURRENT_SOURCE_DIR}/thread.h | |
| 14 ${CMAKE_CURRENT_SOURCE_DIR}/bio.c | |
| 15 ${CMAKE_CURRENT_SOURCE_DIR}/bio.h | |
| 16 ${CMAKE_CURRENT_SOURCE_DIR}/cio.c | |
| 17 ${CMAKE_CURRENT_SOURCE_DIR}/cio.h | |
| 18 ${CMAKE_CURRENT_SOURCE_DIR}/dwt.c | |
| 19 ${CMAKE_CURRENT_SOURCE_DIR}/dwt.h | |
| 20 ${CMAKE_CURRENT_SOURCE_DIR}/event.c | |
| 21 ${CMAKE_CURRENT_SOURCE_DIR}/event.h | |
| 22 ${CMAKE_CURRENT_SOURCE_DIR}/ht_dec.c | |
| 23 ${CMAKE_CURRENT_SOURCE_DIR}/image.c | |
| 24 ${CMAKE_CURRENT_SOURCE_DIR}/image.h | |
| 25 ${CMAKE_CURRENT_SOURCE_DIR}/invert.c | |
| 26 ${CMAKE_CURRENT_SOURCE_DIR}/invert.h | |
| 27 ${CMAKE_CURRENT_SOURCE_DIR}/j2k.c | |
| 28 ${CMAKE_CURRENT_SOURCE_DIR}/j2k.h | |
| 29 ${CMAKE_CURRENT_SOURCE_DIR}/jp2.c | |
| 30 ${CMAKE_CURRENT_SOURCE_DIR}/jp2.h | |
| 31 ${CMAKE_CURRENT_SOURCE_DIR}/mct.c | |
| 32 ${CMAKE_CURRENT_SOURCE_DIR}/mct.h | |
| 33 ${CMAKE_CURRENT_SOURCE_DIR}/mqc.c | |
| 34 ${CMAKE_CURRENT_SOURCE_DIR}/mqc.h | |
| 35 ${CMAKE_CURRENT_SOURCE_DIR}/mqc_inl.h | |
| 36 ${CMAKE_CURRENT_SOURCE_DIR}/openjpeg.c | |
| 37 ${CMAKE_CURRENT_SOURCE_DIR}/openjpeg.h | |
| 38 ${CMAKE_CURRENT_SOURCE_DIR}/opj_clock.c | |
| 39 ${CMAKE_CURRENT_SOURCE_DIR}/opj_clock.h | |
| 40 ${CMAKE_CURRENT_SOURCE_DIR}/pi.c | |
| 41 ${CMAKE_CURRENT_SOURCE_DIR}/pi.h | |
| 42 ${CMAKE_CURRENT_SOURCE_DIR}/t1.c | |
| 43 ${CMAKE_CURRENT_SOURCE_DIR}/t1.h | |
| 44 ${CMAKE_CURRENT_SOURCE_DIR}/t2.c | |
| 45 ${CMAKE_CURRENT_SOURCE_DIR}/t2.h | |
| 46 ${CMAKE_CURRENT_SOURCE_DIR}/tcd.c | |
| 47 ${CMAKE_CURRENT_SOURCE_DIR}/tcd.h | |
| 48 ${CMAKE_CURRENT_SOURCE_DIR}/tgt.c | |
| 49 ${CMAKE_CURRENT_SOURCE_DIR}/tgt.h | |
| 50 ${CMAKE_CURRENT_SOURCE_DIR}/function_list.c | |
| 51 ${CMAKE_CURRENT_SOURCE_DIR}/function_list.h | |
| 52 ${CMAKE_CURRENT_SOURCE_DIR}/opj_codec.h | |
| 53 ${CMAKE_CURRENT_SOURCE_DIR}/opj_includes.h | |
| 54 ${CMAKE_CURRENT_SOURCE_DIR}/opj_intmath.h | |
| 55 ${CMAKE_CURRENT_SOURCE_DIR}/opj_malloc.c | |
| 56 ${CMAKE_CURRENT_SOURCE_DIR}/opj_malloc.h | |
| 57 ${CMAKE_CURRENT_SOURCE_DIR}/sparse_array.c | |
| 58 ${CMAKE_CURRENT_SOURCE_DIR}/sparse_array.h | |
| 59 ) | |
| 60 if(BUILD_JPIP) | |
| 61 add_definitions(-DUSE_JPIP) | |
| 62 set(OPENJPEG_SRCS | |
| 63 ${OPENJPEG_SRCS} | |
| 64 ${CMAKE_CURRENT_SOURCE_DIR}/cidx_manager.c | |
| 65 ${CMAKE_CURRENT_SOURCE_DIR}/cidx_manager.h | |
| 66 ${CMAKE_CURRENT_SOURCE_DIR}/phix_manager.c | |
| 67 ${CMAKE_CURRENT_SOURCE_DIR}/ppix_manager.c | |
| 68 ${CMAKE_CURRENT_SOURCE_DIR}/thix_manager.c | |
| 69 ${CMAKE_CURRENT_SOURCE_DIR}/tpix_manager.c | |
| 70 ${CMAKE_CURRENT_SOURCE_DIR}/indexbox_manager.h | |
| 71 ) | |
| 72 endif() | |
| 73 | |
| 74 option(OPJ_DISABLE_TPSOT_FIX "Disable TPsot==TNsot fix. See https://github.com/uclouvain/openjpeg/issues/254." OFF) | |
| 75 if(OPJ_DISABLE_TPSOT_FIX) | |
| 76 add_definitions(-DOPJ_DISABLE_TPSOT_FIX) | |
| 77 endif() | |
| 78 | |
| 79 # Special case for old i586-mingw32msvc-gcc cross compiler | |
| 80 if(NOT WIN32 AND CMAKE_COMPILER_IS_GNUCC AND CMAKE_C_COMPILER MATCHES ".*mingw32msvc.*" ) | |
| 81 set(WIN32 YES) | |
| 82 endif() | |
| 83 | |
| 84 # Build the library | |
| 85 add_library(${OPENJPEG_LIBRARY_NAME} ${OPENJPEG_SRCS}) | |
| 86 set(INSTALL_LIBS ${OPENJPEG_LIBRARY_NAME}) | |
| 87 if(WIN32) | |
| 88 if(BUILD_SHARED_LIBS) | |
| 89 target_compile_definitions(${OPENJPEG_LIBRARY_NAME} PRIVATE OPJ_EXPORTS) | |
| 90 else() | |
| 91 target_compile_definitions(${OPENJPEG_LIBRARY_NAME} PUBLIC OPJ_STATIC) | |
| 92 endif() | |
| 93 elseif(BUILD_SHARED_LIBS AND BUILD_STATIC_LIBS) | |
| 94 # Builds both static and dynamic libs | |
| 95 add_library(openjp2_static STATIC ${OPENJPEG_SRCS}) | |
| 96 set_target_properties(openjp2_static PROPERTIES OUTPUT_NAME ${OPENJPEG_LIBRARY_NAME}) | |
| 97 list(APPEND INSTALL_LIBS openjp2_static) | |
| 98 target_include_directories(openjp2_static PUBLIC $<INSTALL_INTERFACE:${CMAKE_INSTALL_INCLUDEDIR}/${OPENJPEG_INSTALL_SUBDIR}>) | |
| 99 endif() | |
| 100 | |
| 101 target_include_directories(${OPENJPEG_LIBRARY_NAME} PUBLIC $<INSTALL_INTERFACE:${CMAKE_INSTALL_INCLUDEDIR}/${OPENJPEG_INSTALL_SUBDIR}>) | |
| 102 if(UNIX) | |
| 103 target_link_libraries(${OPENJPEG_LIBRARY_NAME} m) | |
| 104 endif() | |
| 105 set_target_properties(${OPENJPEG_LIBRARY_NAME} PROPERTIES ${OPENJPEG_LIBRARY_PROPERTIES}) | |
| 106 target_compile_options(${OPENJPEG_LIBRARY_NAME} PRIVATE ${OPENJP2_COMPILE_OPTIONS}) | |
| 107 | |
| 108 # Install library | |
| 109 install(TARGETS ${INSTALL_LIBS} | |
| 110 EXPORT OpenJPEGTargets | |
| 111 RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR} COMPONENT Applications | |
| 112 LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} COMPONENT Libraries | |
| 113 ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR} COMPONENT Libraries | |
| 114 ) | |
| 115 | |
| 116 # Install includes files | |
| 117 install(FILES openjpeg.h | |
| 118 DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/${OPENJPEG_INSTALL_SUBDIR} COMPONENT Headers | |
| 119 ) | |
| 120 | |
| 121 if(BUILD_DOC) | |
| 122 # install man page of the library | |
| 123 install( | |
| 124 FILES ${OPENJPEG_SOURCE_DIR}/doc/man/man3/libopenjp2.3 | |
| 125 DESTINATION ${CMAKE_INSTALL_MANDIR}/man3) | |
| 126 endif() | |
| 127 | |
| 128 if(BUILD_LUTS_GENERATOR) | |
| 129 # internal utility to generate t1_luts.h and t1_ht_luts.h (part of the jp2 lib) | |
| 130 # no need to install: | |
| 131 add_executable(t1_generate_luts t1_generate_luts.c t1_ht_generate_luts.c) | |
| 132 if(UNIX) | |
| 133 target_link_libraries(t1_generate_luts m) | |
| 134 endif() | |
| 135 endif() | |
| 136 | |
| 137 # Experimental option; let's how cppcheck performs | |
| 138 # Implementation details: | |
| 139 # I could not figure out how to easily upload a file to CDash. Instead simply | |
| 140 # pretend cppcheck is part of the Build step. Technically cppcheck can even | |
| 141 # output gcc formatted error/warning report | |
| 142 # Another implementation detail: I could not redirect error to the error | |
| 143 # catching mechanism something is busted in cmake 2.8.5, I had to use the | |
| 144 # warning regex to catch them. | |
| 145 if(OPENJPEG_CPPCHECK) | |
| 146 find_package(CPPCHECK REQUIRED) | |
| 147 foreach(f ${OPENJPEG_SRCS}) | |
| 148 # cppcheck complains about too many configuration, pretend to be WIN32: | |
| 149 add_custom_command(TARGET ${OPENJPEG_LIBRARY_NAME} | |
| 150 COMMAND ${CPPCHECK_EXECUTABLE} -DWIN32 ${f}) | |
| 151 endforeach() | |
| 152 endif() | |
| 153 | |
| 154 if(OPJ_USE_DSYMUTIL) | |
| 155 if(BUILD_SHARED_LIBS) | |
| 156 add_custom_command(TARGET ${OPENJPEG_LIBRARY_NAME} POST_BUILD | |
| 157 COMMAND "dsymutil" "$<TARGET_SONAME_FILE:${OPENJPEG_LIBRARY_NAME}>" | |
| 158 COMMENT "dsymutil $<TARGET_SONAME_FILE:${OPENJPEG_LIBRARY_NAME}>" | |
| 159 DEPENDS ${OPENJPEG_LIBRARY_NAME}) | |
| 160 endif() | |
| 161 endif() | |
| 162 | |
| 163 ################################################################################# | |
| 164 # threading configuration | |
| 165 ################################################################################# | |
| 166 set(CMAKE_THREAD_PREFER_PTHREAD TRUE) | |
| 167 | |
| 168 option(OPJ_USE_THREAD "Build with thread/mutex support " ON) | |
| 169 if(NOT OPJ_USE_THREAD) | |
| 170 add_definitions( -DMUTEX_stub) | |
| 171 endif(NOT OPJ_USE_THREAD) | |
| 172 | |
| 173 find_package(Threads QUIET) | |
| 174 | |
| 175 if(OPJ_USE_THREAD AND WIN32 AND NOT Threads_FOUND ) | |
| 176 add_definitions( -DMUTEX_win32) | |
| 177 set(Threads_FOUND YES) | |
| 178 endif() | |
| 179 | |
| 180 if(OPJ_USE_THREAD AND Threads_FOUND AND CMAKE_USE_WIN32_THREADS_INIT ) | |
| 181 add_definitions( -DMUTEX_win32) | |
| 182 endif(OPJ_USE_THREAD AND Threads_FOUND AND CMAKE_USE_WIN32_THREADS_INIT ) | |
| 183 | |
| 184 if(OPJ_USE_THREAD AND Threads_FOUND AND CMAKE_USE_PTHREADS_INIT ) | |
| 185 add_definitions( -DMUTEX_pthread) | |
| 186 endif(OPJ_USE_THREAD AND Threads_FOUND AND CMAKE_USE_PTHREADS_INIT ) | |
| 187 | |
| 188 if(OPJ_USE_THREAD AND NOT Threads_FOUND) | |
| 189 message(FATAL_ERROR "No thread library found and thread/mutex support is required by OPJ_USE_THREAD option") | |
| 190 endif(OPJ_USE_THREAD AND NOT Threads_FOUND) | |
| 191 | |
| 192 if(OPJ_USE_THREAD AND Threads_FOUND AND CMAKE_USE_PTHREADS_INIT) | |
| 193 TARGET_LINK_LIBRARIES(${OPENJPEG_LIBRARY_NAME} ${CMAKE_THREAD_LIBS_INIT}) | |
| 194 endif(OPJ_USE_THREAD AND Threads_FOUND AND CMAKE_USE_PTHREADS_INIT) | |
| 195 | |
| 196 if(BUILD_UNIT_TESTS AND UNIX) | |
| 197 add_executable(bench_dwt bench_dwt.c) | |
| 198 if(UNIX) | |
| 199 target_link_libraries(bench_dwt m ${OPENJPEG_LIBRARY_NAME}) | |
| 200 endif() | |
| 201 if(OPJ_USE_THREAD AND Threads_FOUND AND CMAKE_USE_PTHREADS_INIT) | |
| 202 target_link_libraries(bench_dwt ${CMAKE_THREAD_LIBS_INIT}) | |
| 203 endif(OPJ_USE_THREAD AND Threads_FOUND AND CMAKE_USE_PTHREADS_INIT) | |
| 204 | |
| 205 add_executable(test_sparse_array test_sparse_array.c) | |
| 206 if(UNIX) | |
| 207 target_link_libraries(test_sparse_array m ${OPENJPEG_LIBRARY_NAME}) | |
| 208 endif() | |
| 209 if(OPJ_USE_THREAD AND Threads_FOUND AND CMAKE_USE_PTHREADS_INIT) | |
| 210 target_link_libraries(test_sparse_array ${CMAKE_THREAD_LIBS_INIT}) | |
| 211 endif(OPJ_USE_THREAD AND Threads_FOUND AND CMAKE_USE_PTHREADS_INIT) | |
| 212 endif(BUILD_UNIT_TESTS AND UNIX) |
