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