1# ---------------------------------------------------------------------------- 2# CMake file for libtiff. See root CMakeLists.txt 3# 4# ---------------------------------------------------------------------------- 5project(${TIFF_LIBRARY}) 6 7include(CheckFunctionExists) 8include(CheckIncludeFile) 9 10check_include_file(assert.h HAVE_ASSERT_H) 11check_include_file(fcntl.h HAVE_FCNTL_H) 12check_include_file(io.h HAVE_IO_H) 13check_function_exists(jbg_newlen HAVE_JBG_NEWLEN) 14check_function_exists(mmap HAVE_MMAP) 15check_include_file(search.h HAVE_SEARCH_H) 16check_include_file(string.h HAVE_STRING_H) 17check_include_file(sys/types.h HAVE_SYS_TYPES_H) 18check_include_file(unistd.h HAVE_UNISTD_H) 19 20if(WIN32 AND NOT WINRT) 21 set(USE_WIN32_FILEIO 1) 22endif() 23 24configure_file("${CMAKE_CURRENT_SOURCE_DIR}/tif_config.h.cmakein" 25 "${CMAKE_CURRENT_BINARY_DIR}/tif_config.h" @ONLY) 26 27ocv_include_directories("${CMAKE_CURRENT_SOURCE_DIR}" "${CMAKE_CURRENT_BINARY_DIR}" ${ZLIB_INCLUDE_DIRS}) 28 29set(lib_srcs 30 tif_aux.c 31 tif_close.c 32 tif_codec.c 33 tif_color.c 34 tif_compress.c 35 tif_dir.c 36 tif_dirinfo.c 37 tif_dirread.c 38 tif_dirwrite.c 39 tif_dumpmode.c 40 tif_error.c 41 tif_extension.c 42 tif_fax3.c 43 tif_fax3sm.c 44 tif_flush.c 45 tif_getimage.c 46 tif_jbig.c 47 tif_jpeg_12.c 48 tif_jpeg.c 49 tif_luv.c 50 tif_lzma.c 51 tif_lzw.c 52 tif_next.c 53 tif_ojpeg.c 54 tif_open.c 55 tif_packbits.c 56 tif_pixarlog.c 57 tif_predict.c 58 tif_print.c 59 tif_read.c 60 tif_strip.c 61 tif_swab.c 62 tif_thunder.c 63 tif_tile.c 64 tif_version.c 65 tif_warning.c 66 tif_write.c 67 tif_zip.c 68 tif_stream.cxx 69 t4.h 70 tif_dir.h 71 tif_fax3.h 72 tiff.h 73 tiffio.h 74 tiffiop.h 75 tiffvers.h 76 tif_predict.h 77 uvcode.h 78 tiffio.hxx 79 "${CMAKE_CURRENT_BINARY_DIR}/tif_config.h" 80 ) 81 82if(WIN32 AND NOT WINRT) 83 list(APPEND lib_srcs tif_win32.c) 84else() 85 list(APPEND lib_srcs tif_unix.c) 86endif() 87 88ocv_warnings_disable(CMAKE_C_FLAGS -Wno-unused-but-set-variable -Wmissing-prototypes -Wmissing-declarations -Wundef -Wunused -Wsign-compare 89 -Wcast-align -Wshadow -Wno-maybe-uninitialized -Wno-pointer-to-int-cast -Wno-int-to-pointer-cast) 90ocv_warnings_disable(CMAKE_C_FLAGS -Wunused-parameter) # clang 91ocv_warnings_disable(CMAKE_CXX_FLAGS -Wmissing-declarations -Wunused-parameter) 92ocv_warnings_disable(CMAKE_CXX_FLAGS /wd4018 /wd4100 /wd4127 /wd4311 /wd4701 /wd4706) # vs2005 93ocv_warnings_disable(CMAKE_CXX_FLAGS /wd4244) # vs2008 94ocv_warnings_disable(CMAKE_CXX_FLAGS /wd4267 /wd4305 /wd4306) # vs2008 Win64 95ocv_warnings_disable(CMAKE_CXX_FLAGS /wd4703) # vs2012 96 97ocv_warnings_disable(CMAKE_C_FLAGS /wd4267 /wd4244 /wd4018) 98 99if(UNIX AND (CMAKE_COMPILER_IS_GNUCXX OR CV_ICC)) 100 set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -fPIC") 101endif() 102 103add_library(${TIFF_LIBRARY} STATIC ${lib_srcs}) 104target_link_libraries(${TIFF_LIBRARY} ${ZLIB_LIBRARIES}) 105 106set_target_properties(${TIFF_LIBRARY} 107 PROPERTIES 108 OUTPUT_NAME "${TIFF_LIBRARY}" 109 DEBUG_POSTFIX "${OPENCV_DEBUG_POSTFIX}" 110 ARCHIVE_OUTPUT_DIRECTORY ${3P_LIBRARY_OUTPUT_PATH} 111 ) 112 113if(ENABLE_SOLUTION_FOLDERS) 114 set_target_properties(${TIFF_LIBRARY} PROPERTIES FOLDER "3rdparty") 115endif() 116 117if(NOT BUILD_SHARED_LIBS) 118 ocv_install_target(${TIFF_LIBRARY} EXPORT OpenCVModules ARCHIVE DESTINATION ${OPENCV_3P_LIB_INSTALL_PATH} COMPONENT dev) 119endif() 120