1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495 |
- # Defines the source code for the library
- set(OPENJPEG_SRCS
- ${CMAKE_CURRENT_SOURCE_DIR}/thread.c
- ${CMAKE_CURRENT_SOURCE_DIR}/bio.c
- ${CMAKE_CURRENT_SOURCE_DIR}/cio.c
- ${CMAKE_CURRENT_SOURCE_DIR}/dwt.c
- ${CMAKE_CURRENT_SOURCE_DIR}/event.c
- ${CMAKE_CURRENT_SOURCE_DIR}/image.c
- ${CMAKE_CURRENT_SOURCE_DIR}/invert.c
- ${CMAKE_CURRENT_SOURCE_DIR}/j2k.c
- ${CMAKE_CURRENT_SOURCE_DIR}/jp2.c
- ${CMAKE_CURRENT_SOURCE_DIR}/mct.c
- ${CMAKE_CURRENT_SOURCE_DIR}/mqc.c
- ${CMAKE_CURRENT_SOURCE_DIR}/openjpeg.c
- ${CMAKE_CURRENT_SOURCE_DIR}/opj_clock.c
- ${CMAKE_CURRENT_SOURCE_DIR}/pi.c
- ${CMAKE_CURRENT_SOURCE_DIR}/t1.c
- ${CMAKE_CURRENT_SOURCE_DIR}/t2.c
- ${CMAKE_CURRENT_SOURCE_DIR}/tcd.c
- ${CMAKE_CURRENT_SOURCE_DIR}/tgt.c
- ${CMAKE_CURRENT_SOURCE_DIR}/function_list.c
- ${CMAKE_CURRENT_SOURCE_DIR}/opj_malloc.c
- ${CMAKE_CURRENT_SOURCE_DIR}/sparse_array.c
- )
- option(OPJ_DISABLE_TPSOT_FIX "Disable TPsot==TNsot fix. See https://github.com/uclouvain/openjpeg/issues/254." OFF)
- if(OPJ_DISABLE_TPSOT_FIX)
- add_definitions(-DOPJ_DISABLE_TPSOT_FIX)
- endif()
- # Special case for old i586-mingw32msvc-gcc cross compiler
- # if(NOT WIN32 AND CMAKE_COMPILER_IS_GNUCC AND CMAKE_C_COMPILER MATCHES ".*mingw32msvc.*" )
- # set(WIN32 YES)
- # endif()
- ocv_warnings_disable(CMAKE_C_FLAGS
- -Wundef -Wstrict-prototypes -Wcast-function-type
- -Wshadow # v2.4.0: GCC
- -Wunused-function # v2.4.0: Clang
- )
- add_library(${OPENJPEG_LIBRARY_NAME} STATIC ${OPENJPEG_SRCS})
- target_compile_definitions(${OPENJPEG_LIBRARY_NAME} PUBLIC OPJ_STATIC)
- ocv_include_directories("${CMAKE_CURRENT_LIST_DIR}" "${CMAKE_CURRENT_BINARY_DIR}")
- if(UNIX)
- target_link_libraries(${OPENJPEG_LIBRARY_NAME} PRIVATE m)
- endif()
- set_target_properties(${OPENJPEG_LIBRARY_NAME}
- PROPERTIES
- ${OPENJPEG_LIBRARY_PROPERTIES}
- )
- #################################################################################
- # threading configuration
- #################################################################################
- option(OPJ_USE_THREAD "Build with thread/mutex support " ON)
- if(NOT OPJ_USE_THREAD)
- add_definitions(-DMUTEX_stub)
- endif()
- find_package(Threads QUIET)
- if(OPJ_USE_THREAD AND WIN32 AND NOT Threads_FOUND )
- add_definitions(-DMUTEX_win32)
- set(Threads_FOUND YES)
- endif()
- if(OPJ_USE_THREAD AND Threads_FOUND AND CMAKE_USE_WIN32_THREADS_INIT)
- add_definitions(-DMUTEX_win32)
- endif()
- if(OPJ_USE_THREAD AND Threads_FOUND AND CMAKE_USE_PTHREADS_INIT )
- add_definitions(-DMUTEX_pthread)
- endif()
- if(OPJ_USE_THREAD AND NOT Threads_FOUND)
- message(STATUS "No thread library found and thread/mutex support is required by OPJ_USE_THREAD option")
- set(OCV_CAN_BUILD_OPENJPEG FALSE PARENT_SCOPE)
- endif()
- if(OPJ_USE_THREAD AND Threads_FOUND AND CMAKE_USE_PTHREADS_INIT)
- target_link_libraries(${OPENJPEG_LIBRARY_NAME} PRIVATE ${CMAKE_THREAD_LIBS_INIT})
- endif()
- if(NOT BUILD_SHARED_LIBS)
- ocv_install_target(${OPENJPEG_LIBRARY_NAME}
- EXPORT OpenCVModules
- ARCHIVE DESTINATION ${OPENCV_3P_LIB_INSTALL_PATH} COMPONENT dev
- )
- endif()
|