• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1# ----------------------------------------------------------------------------
2#  CMake file for openexr
3#
4# ----------------------------------------------------------------------------
5
6project(openexr CXX)
7
8if(UNIX)
9  set(HAVE_PTHREAD 1)
10  include(CheckIncludeFile)
11  check_include_file(semaphore.h HAVE_POSIX_SEMAPHORES)
12endif()
13
14configure_file("${CMAKE_CURRENT_SOURCE_DIR}/IlmBaseConfig.h.cmakein"
15               "${CMAKE_CURRENT_BINARY_DIR}/IlmBaseConfig.h" @ONLY)
16configure_file("${CMAKE_CURRENT_SOURCE_DIR}/OpenEXRConfig.h.cmakein"
17               "${CMAKE_CURRENT_BINARY_DIR}/OpenEXRConfig.h" @ONLY)
18
19set(OPENEXR_INCLUDE_PATHS "${CMAKE_CURRENT_SOURCE_DIR}/Half"
20                          "${CMAKE_CURRENT_SOURCE_DIR}/Iex"
21                          "${CMAKE_CURRENT_SOURCE_DIR}/IlmThread"
22                          "${CMAKE_CURRENT_SOURCE_DIR}/Imath"
23                          "${CMAKE_CURRENT_SOURCE_DIR}/IlmImf")
24
25ocv_include_directories("${CMAKE_CURRENT_BINARY_DIR}" ${ZLIB_INCLUDE_DIRS} ${OPENEXR_INCLUDE_PATHS})
26
27file(GLOB lib_srcs Half/half.cpp Iex/*.cpp IlmThread/*.cpp Imath/*.cpp IlmImf/*.cpp)
28file(GLOB lib_hdrs Half/*.h Iex/Iex*.h IlmThread/IlmThread*.h Imath/Imath*.h IlmImf/*.h)
29list(APPEND lib_hdrs "${CMAKE_CURRENT_BINARY_DIR}/IlmBaseConfig.h" "${CMAKE_CURRENT_BINARY_DIR}/OpenEXRConfig.h")
30
31ocv_list_filterout(lib_srcs IlmImf/b44ExpLogTable.cpp)
32
33if(WIN32)
34  ocv_list_filterout(lib_srcs Posix.*cpp)
35else()
36  ocv_list_filterout(lib_srcs Win32.cpp)
37endif()
38
39source_group("Include" FILES ${lib_hdrs} )
40source_group("Src" FILES ${lib_srcs})
41
42ocv_warnings_disable(CMAKE_CXX_FLAGS -Wshadow -Wunused -Wsign-compare -Wundef -Wmissing-declarations -Wuninitialized -Wswitch -Wparentheses -Warray-bounds -Wextra)
43ocv_warnings_disable(CMAKE_CXX_FLAGS /wd4018 /wd4099 /wd4100 /wd4101 /wd4127 /wd4189 /wd4245 /wd4305 /wd4389 /wd4512 /wd4701 /wd4702 /wd4706 /wd4800) # vs2005
44ocv_warnings_disable(CMAKE_CXX_FLAGS /wd4334) # vs2005 Win64
45ocv_warnings_disable(CMAKE_CXX_FLAGS /wd4244) # vs2008
46ocv_warnings_disable(CMAKE_CXX_FLAGS /wd4267) # vs2008 Win64
47
48if(UNIX AND (CMAKE_COMPILER_IS_GNUCXX OR CV_ICC))
49  set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fPIC")
50endif()
51
52add_library(IlmImf STATIC ${lib_hdrs} ${lib_srcs})
53target_link_libraries(IlmImf ${ZLIB_LIBRARIES})
54
55set_target_properties(IlmImf
56    PROPERTIES
57    OUTPUT_NAME "IlmImf"
58    DEBUG_POSTFIX "${OPENCV_DEBUG_POSTFIX}"
59    ARCHIVE_OUTPUT_DIRECTORY ${3P_LIBRARY_OUTPUT_PATH}
60    )
61
62if(ENABLE_SOLUTION_FOLDERS)
63  set_target_properties(IlmImf PROPERTIES FOLDER "3rdparty")
64endif()
65
66if(NOT BUILD_SHARED_LIBS)
67  ocv_install_target(IlmImf EXPORT OpenCVModules ARCHIVE DESTINATION ${OPENCV_3P_LIB_INSTALL_PATH} COMPONENT dev)
68endif()
69
70set(OPENEXR_INCLUDE_PATHS ${OPENEXR_INCLUDE_PATHS} PARENT_SCOPE)
71set(OPENEXR_VERSION "1.7.1" PARENT_SCOPE)
72