Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
Tetragramm
GitHub Repository: Tetragramm/opencv
Path: blob/master/3rdparty/openexr/CMakeLists.txt
16337 views
1
# ----------------------------------------------------------------------------
2
# CMake file for openexr
3
#
4
# ----------------------------------------------------------------------------
5
6
project(openexr CXX)
7
8
if(UNIX)
9
if(APPLE)
10
set(HAVE_POSIX_SEMAPHORES 0) # Unnamed semaphores are not supported: https://github.com/opencv/opencv/issues/9361
11
else()
12
include(CheckIncludeFile)
13
check_include_file(semaphore.h HAVE_POSIX_SEMAPHORES)
14
endif()
15
endif()
16
17
configure_file("${CMAKE_CURRENT_SOURCE_DIR}/IlmBaseConfig.h.cmakein"
18
"${CMAKE_CURRENT_BINARY_DIR}/IlmBaseConfig.h" @ONLY)
19
configure_file("${CMAKE_CURRENT_SOURCE_DIR}/OpenEXRConfig.h.cmakein"
20
"${CMAKE_CURRENT_BINARY_DIR}/OpenEXRConfig.h" @ONLY)
21
22
set(OPENEXR_INCLUDE_PATHS "${CMAKE_CURRENT_SOURCE_DIR}/Half"
23
"${CMAKE_CURRENT_SOURCE_DIR}/Iex"
24
"${CMAKE_CURRENT_SOURCE_DIR}/IlmThread"
25
"${CMAKE_CURRENT_SOURCE_DIR}/Imath"
26
"${CMAKE_CURRENT_SOURCE_DIR}/IlmImf")
27
28
ocv_include_directories("${CMAKE_CURRENT_BINARY_DIR}" ${ZLIB_INCLUDE_DIRS} ${OPENEXR_INCLUDE_PATHS})
29
30
file(GLOB lib_srcs Half/half.cpp Iex/*.cpp IlmThread/*.cpp Imath/*.cpp IlmImf/*.cpp)
31
file(GLOB lib_hdrs Half/*.h Iex/Iex*.h IlmThread/IlmThread*.h Imath/Imath*.h IlmImf/*.h)
32
list(APPEND lib_hdrs "${CMAKE_CURRENT_BINARY_DIR}/IlmBaseConfig.h" "${CMAKE_CURRENT_BINARY_DIR}/OpenEXRConfig.h")
33
34
ocv_list_filterout(lib_srcs IlmImf/b44ExpLogTable.cpp)
35
36
if(WIN32)
37
ocv_list_filterout(lib_srcs Posix.*cpp)
38
else()
39
ocv_list_filterout(lib_srcs Win32.cpp)
40
endif()
41
42
source_group("Include" FILES ${lib_hdrs} )
43
source_group("Src" FILES ${lib_srcs})
44
45
ocv_warnings_disable(CMAKE_CXX_FLAGS -Wshadow -Wunused -Wsign-compare -Wundef -Wmissing-declarations -Wuninitialized -Wswitch -Wparentheses -Warray-bounds -Wextra
46
-Wdeprecated-declarations -Wmisleading-indentation -Wdeprecated
47
-Wsuggest-override -Winconsistent-missing-override
48
-Wimplicit-fallthrough
49
)
50
if(CV_GCC AND CMAKE_CXX_COMPILER_VERSION VERSION_GREATER 8.0)
51
ocv_warnings_disable(CMAKE_CXX_FLAGS -Wclass-memaccess)
52
endif()
53
54
ocv_warnings_disable(CMAKE_CXX_FLAGS /wd4018 /wd4099 /wd4100 /wd4101 /wd4127 /wd4189 /wd4245 /wd4305 /wd4389 /wd4512 /wd4701 /wd4702 /wd4706 /wd4800) # vs2005
55
ocv_warnings_disable(CMAKE_CXX_FLAGS /wd4334) # vs2005 Win64
56
ocv_warnings_disable(CMAKE_CXX_FLAGS /wd4244) # vs2008
57
ocv_warnings_disable(CMAKE_CXX_FLAGS /wd4267) # vs2008 Win64
58
ocv_warnings_disable(CMAKE_CXX_FLAGS /wd4456) # vs2015
59
60
if(MSVC AND CV_ICC)
61
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /Qrestrict")
62
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} /Qrestrict")
63
endif()
64
65
add_library(IlmImf STATIC ${lib_hdrs} ${lib_srcs})
66
target_link_libraries(IlmImf ${ZLIB_LIBRARIES})
67
68
set_target_properties(IlmImf
69
PROPERTIES
70
OUTPUT_NAME "IlmImf"
71
DEBUG_POSTFIX "${OPENCV_DEBUG_POSTFIX}"
72
COMPILE_PDB_NAME "IlmImf"
73
COMPILE_PDB_NAME_DEBUG "IlmImf${OPENCV_DEBUG_POSTFIX}"
74
ARCHIVE_OUTPUT_DIRECTORY ${3P_LIBRARY_OUTPUT_PATH}
75
)
76
77
if(ENABLE_SOLUTION_FOLDERS)
78
set_target_properties(IlmImf PROPERTIES FOLDER "3rdparty")
79
endif()
80
81
if(NOT BUILD_SHARED_LIBS)
82
ocv_install_target(IlmImf EXPORT OpenCVModules ARCHIVE DESTINATION ${OPENCV_3P_LIB_INSTALL_PATH} COMPONENT dev)
83
endif()
84
85
ocv_install_3rdparty_licenses(openexr LICENSE AUTHORS.ilmbase AUTHORS.openexr fix_msvc2013_errors.patch)
86
87
set(OPENEXR_INCLUDE_PATHS ${OPENEXR_INCLUDE_PATHS} PARENT_SCOPE)
88
set(OPENEXR_VERSION "1.7.1" PARENT_SCOPE)
89
90