Commit e2ef2a57 authored by Roman Donchenko's avatar Roman Donchenko

Refactored image format library finding logic.

Now the HAVE_* macros are set in cvconfig.h. Most of them already were there,
but were nonfunctional.
parent ca8b621b
...@@ -36,9 +36,8 @@ if(WITH_TIFF) ...@@ -36,9 +36,8 @@ if(WITH_TIFF)
ocv_parse_header("${TIFF_INCLUDE_DIR}/tiff.h" TIFF_VERSION_LINES TIFF_VERSION_CLASSIC TIFF_VERSION_BIG TIFF_VERSION TIFF_BIGTIFF_VERSION) ocv_parse_header("${TIFF_INCLUDE_DIR}/tiff.h" TIFF_VERSION_LINES TIFF_VERSION_CLASSIC TIFF_VERSION_BIG TIFF_VERSION TIFF_BIGTIFF_VERSION)
endif() endif()
endif() endif()
endif()
if(WITH_TIFF AND NOT TIFF_FOUND) if(NOT TIFF_FOUND)
ocv_clear_vars(TIFF_LIBRARY TIFF_LIBRARIES TIFF_INCLUDE_DIR) ocv_clear_vars(TIFF_LIBRARY TIFF_LIBRARIES TIFF_INCLUDE_DIR)
set(TIFF_LIBRARY libtiff) set(TIFF_LIBRARY libtiff)
...@@ -46,17 +45,17 @@ if(WITH_TIFF AND NOT TIFF_FOUND) ...@@ -46,17 +45,17 @@ if(WITH_TIFF AND NOT TIFF_FOUND)
add_subdirectory("${OpenCV_SOURCE_DIR}/3rdparty/libtiff") add_subdirectory("${OpenCV_SOURCE_DIR}/3rdparty/libtiff")
set(TIFF_INCLUDE_DIR "${${TIFF_LIBRARY}_SOURCE_DIR}" "${${TIFF_LIBRARY}_BINARY_DIR}") set(TIFF_INCLUDE_DIR "${${TIFF_LIBRARY}_SOURCE_DIR}" "${${TIFF_LIBRARY}_BINARY_DIR}")
ocv_parse_header("${${TIFF_LIBRARY}_SOURCE_DIR}/tiff.h" TIFF_VERSION_LINES TIFF_VERSION_CLASSIC TIFF_VERSION_BIG TIFF_VERSION TIFF_BIGTIFF_VERSION) ocv_parse_header("${${TIFF_LIBRARY}_SOURCE_DIR}/tiff.h" TIFF_VERSION_LINES TIFF_VERSION_CLASSIC TIFF_VERSION_BIG TIFF_VERSION TIFF_BIGTIFF_VERSION)
endif() endif()
if(TIFF_VERSION_CLASSIC AND NOT TIFF_VERSION) if(TIFF_VERSION_CLASSIC AND NOT TIFF_VERSION)
set(TIFF_VERSION ${TIFF_VERSION_CLASSIC}) set(TIFF_VERSION ${TIFF_VERSION_CLASSIC})
endif() endif()
if(TIFF_BIGTIFF_VERSION AND NOT TIFF_VERSION_BIG) if(TIFF_BIGTIFF_VERSION AND NOT TIFF_VERSION_BIG)
set(TIFF_VERSION_BIG ${TIFF_BIGTIFF_VERSION}) set(TIFF_VERSION_BIG ${TIFF_BIGTIFF_VERSION})
endif() endif()
if(NOT TIFF_VERSION_STRING AND TIFF_INCLUDE_DIR) if(NOT TIFF_VERSION_STRING AND TIFF_INCLUDE_DIR)
list(GET TIFF_INCLUDE_DIR 0 _TIFF_INCLUDE_DIR) list(GET TIFF_INCLUDE_DIR 0 _TIFF_INCLUDE_DIR)
if(EXISTS "${_TIFF_INCLUDE_DIR}/tiffvers.h") if(EXISTS "${_TIFF_INCLUDE_DIR}/tiffvers.h")
file(STRINGS "${_TIFF_INCLUDE_DIR}/tiffvers.h" tiff_version_str REGEX "^#define[\t ]+TIFFLIB_VERSION_STR[\t ]+\"LIBTIFF, Version .*") file(STRINGS "${_TIFF_INCLUDE_DIR}/tiffvers.h" tiff_version_str REGEX "^#define[\t ]+TIFFLIB_VERSION_STR[\t ]+\"LIBTIFF, Version .*")
...@@ -64,28 +63,31 @@ if(NOT TIFF_VERSION_STRING AND TIFF_INCLUDE_DIR) ...@@ -64,28 +63,31 @@ if(NOT TIFF_VERSION_STRING AND TIFF_INCLUDE_DIR)
unset(tiff_version_str) unset(tiff_version_str)
endif() endif()
unset(_TIFF_INCLUDE_DIR) unset(_TIFF_INCLUDE_DIR)
endif()
set(HAVE_TIFF YES)
endif() endif()
# --- libjpeg (optional) --- # --- libjpeg (optional) ---
if(WITH_JPEG AND NOT IOS) if(WITH_JPEG)
if(BUILD_JPEG) if(BUILD_JPEG)
ocv_clear_vars(JPEG_FOUND) ocv_clear_vars(JPEG_FOUND)
else() else()
include(FindJPEG) include(FindJPEG)
endif() endif()
endif()
if(WITH_JPEG AND NOT JPEG_FOUND) if(NOT JPEG_FOUND)
ocv_clear_vars(JPEG_LIBRARY JPEG_LIBRARIES JPEG_INCLUDE_DIR) ocv_clear_vars(JPEG_LIBRARY JPEG_LIBRARIES JPEG_INCLUDE_DIR)
set(JPEG_LIBRARY libjpeg) set(JPEG_LIBRARY libjpeg)
set(JPEG_LIBRARIES ${JPEG_LIBRARY}) set(JPEG_LIBRARIES ${JPEG_LIBRARY})
add_subdirectory("${OpenCV_SOURCE_DIR}/3rdparty/libjpeg") add_subdirectory("${OpenCV_SOURCE_DIR}/3rdparty/libjpeg")
set(JPEG_INCLUDE_DIR "${${JPEG_LIBRARY}_SOURCE_DIR}") set(JPEG_INCLUDE_DIR "${${JPEG_LIBRARY}_SOURCE_DIR}")
endif() endif()
ocv_parse_header("${JPEG_INCLUDE_DIR}/jpeglib.h" JPEG_VERSION_LINES JPEG_LIB_VERSION)
ocv_parse_header("${JPEG_INCLUDE_DIR}/jpeglib.h" JPEG_VERSION_LINES JPEG_LIB_VERSION)
set(HAVE_JPEG YES)
endif()
# --- libjasper (optional, should be searched after libjpeg) --- # --- libjasper (optional, should be searched after libjpeg) ---
if(WITH_JASPER) if(WITH_JASPER)
...@@ -94,19 +96,21 @@ if(WITH_JASPER) ...@@ -94,19 +96,21 @@ if(WITH_JASPER)
else() else()
include(FindJasper) include(FindJasper)
endif() endif()
endif()
if(WITH_JASPER AND NOT JASPER_FOUND) if(NOT JASPER_FOUND)
ocv_clear_vars(JASPER_LIBRARY JASPER_LIBRARIES JASPER_INCLUDE_DIR) ocv_clear_vars(JASPER_LIBRARY JASPER_LIBRARIES JASPER_INCLUDE_DIR)
set(JASPER_LIBRARY libjasper) set(JASPER_LIBRARY libjasper)
set(JASPER_LIBRARIES ${JASPER_LIBRARY}) set(JASPER_LIBRARIES ${JASPER_LIBRARY})
add_subdirectory("${OpenCV_SOURCE_DIR}/3rdparty/libjasper") add_subdirectory("${OpenCV_SOURCE_DIR}/3rdparty/libjasper")
set(JASPER_INCLUDE_DIR "${${JASPER_LIBRARY}_SOURCE_DIR}") set(JASPER_INCLUDE_DIR "${${JASPER_LIBRARY}_SOURCE_DIR}")
endif() endif()
if(NOT JASPER_VERSION_STRING) set(HAVE_JASPER YES)
if(NOT JASPER_VERSION_STRING)
ocv_parse_header2(JASPER "${JASPER_INCLUDE_DIR}/jasper/jas_config.h" JAS_VERSION "") ocv_parse_header2(JASPER "${JASPER_INCLUDE_DIR}/jasper/jas_config.h" JAS_VERSION "")
endif()
endif() endif()
# --- libpng (optional, should be searched after zlib) --- # --- libpng (optional, should be searched after zlib) ---
...@@ -117,19 +121,17 @@ if(WITH_PNG AND NOT IOS) ...@@ -117,19 +121,17 @@ if(WITH_PNG AND NOT IOS)
include(FindPNG) include(FindPNG)
if(PNG_FOUND) if(PNG_FOUND)
include(CheckIncludeFile) include(CheckIncludeFile)
check_include_file("${PNG_PNG_INCLUDE_DIR}/png.h" HAVE_PNG_H)
check_include_file("${PNG_PNG_INCLUDE_DIR}/libpng/png.h" HAVE_LIBPNG_PNG_H) check_include_file("${PNG_PNG_INCLUDE_DIR}/libpng/png.h" HAVE_LIBPNG_PNG_H)
if(HAVE_PNG_H) if(HAVE_LIBPNG_PNG_H)
ocv_parse_header("${PNG_PNG_INCLUDE_DIR}/png.h" PNG_VERSION_LINES PNG_LIBPNG_VER_MAJOR PNG_LIBPNG_VER_MINOR PNG_LIBPNG_VER_RELEASE)
elseif(HAVE_LIBPNG_PNG_H)
ocv_parse_header("${PNG_PNG_INCLUDE_DIR}/libpng/png.h" PNG_VERSION_LINES PNG_LIBPNG_VER_MAJOR PNG_LIBPNG_VER_MINOR PNG_LIBPNG_VER_RELEASE) ocv_parse_header("${PNG_PNG_INCLUDE_DIR}/libpng/png.h" PNG_VERSION_LINES PNG_LIBPNG_VER_MAJOR PNG_LIBPNG_VER_MINOR PNG_LIBPNG_VER_RELEASE)
else()
ocv_parse_header("${PNG_PNG_INCLUDE_DIR}/png.h" PNG_VERSION_LINES PNG_LIBPNG_VER_MAJOR PNG_LIBPNG_VER_MINOR PNG_LIBPNG_VER_RELEASE)
endif() endif()
endif() endif()
endif() endif()
endif()
if(WITH_PNG AND NOT PNG_FOUND) if(NOT PNG_FOUND)
ocv_clear_vars(PNG_LIBRARY PNG_LIBRARIES PNG_INCLUDE_DIR PNG_PNG_INCLUDE_DIR HAVE_PNG_H HAVE_LIBPNG_PNG_H PNG_DEFINITIONS) ocv_clear_vars(PNG_LIBRARY PNG_LIBRARIES PNG_INCLUDE_DIR PNG_PNG_INCLUDE_DIR HAVE_LIBPNG_PNG_H PNG_DEFINITIONS)
set(PNG_LIBRARY libpng) set(PNG_LIBRARY libpng)
set(PNG_LIBRARIES ${PNG_LIBRARY}) set(PNG_LIBRARIES ${PNG_LIBRARY})
...@@ -137,9 +139,11 @@ if(WITH_PNG AND NOT PNG_FOUND) ...@@ -137,9 +139,11 @@ if(WITH_PNG AND NOT PNG_FOUND)
set(PNG_INCLUDE_DIR "${${PNG_LIBRARY}_SOURCE_DIR}") set(PNG_INCLUDE_DIR "${${PNG_LIBRARY}_SOURCE_DIR}")
set(PNG_DEFINITIONS "") set(PNG_DEFINITIONS "")
ocv_parse_header("${PNG_INCLUDE_DIR}/png.h" PNG_VERSION_LINES PNG_LIBPNG_VER_MAJOR PNG_LIBPNG_VER_MINOR PNG_LIBPNG_VER_RELEASE) ocv_parse_header("${PNG_INCLUDE_DIR}/png.h" PNG_VERSION_LINES PNG_LIBPNG_VER_MAJOR PNG_LIBPNG_VER_MINOR PNG_LIBPNG_VER_RELEASE)
endif() endif()
set(PNG_VERSION "${PNG_LIBPNG_VER_MAJOR}.${PNG_LIBPNG_VER_MINOR}.${PNG_LIBPNG_VER_RELEASE}") set(HAVE_PNG YES)
set(PNG_VERSION "${PNG_LIBPNG_VER_MAJOR}.${PNG_LIBPNG_VER_MINOR}.${PNG_LIBPNG_VER_RELEASE}")
endif()
# --- OpenEXR (optional) --- # --- OpenEXR (optional) ---
if(WITH_OPENEXR) if(WITH_OPENEXR)
...@@ -148,14 +152,16 @@ if(WITH_OPENEXR) ...@@ -148,14 +152,16 @@ if(WITH_OPENEXR)
else() else()
include("${OpenCV_SOURCE_DIR}/cmake/OpenCVFindOpenEXR.cmake") include("${OpenCV_SOURCE_DIR}/cmake/OpenCVFindOpenEXR.cmake")
endif() endif()
endif()
if(WITH_OPENEXR AND NOT OPENEXR_FOUND) if(NOT OPENEXR_FOUND)
ocv_clear_vars(OPENEXR_INCLUDE_PATHS OPENEXR_LIBRARIES OPENEXR_ILMIMF_LIBRARY OPENEXR_VERSION) ocv_clear_vars(OPENEXR_INCLUDE_PATHS OPENEXR_LIBRARIES OPENEXR_ILMIMF_LIBRARY OPENEXR_VERSION)
set(OPENEXR_LIBRARIES IlmImf) set(OPENEXR_LIBRARIES IlmImf)
set(OPENEXR_ILMIMF_LIBRARY IlmImf) set(OPENEXR_ILMIMF_LIBRARY IlmImf)
add_subdirectory("${OpenCV_SOURCE_DIR}/3rdparty/openexr") add_subdirectory("${OpenCV_SOURCE_DIR}/3rdparty/openexr")
endif()
set(HAVE_OPENEXR YES)
endif() endif()
#cmake 2.8.2 bug - it fails to determine zlib version #cmake 2.8.2 bug - it fails to determine zlib version
......
...@@ -53,7 +53,7 @@ ...@@ -53,7 +53,7 @@
#cmakedefine HAVE_GTK #cmakedefine HAVE_GTK
/* OpenEXR codec */ /* OpenEXR codec */
#cmakedefine HAVE_ILMIMF #cmakedefine HAVE_OPENEXR
/* Apple ImageIO Framework */ /* Apple ImageIO Framework */
#cmakedefine HAVE_IMAGEIO #cmakedefine HAVE_IMAGEIO
...@@ -73,9 +73,6 @@ ...@@ -73,9 +73,6 @@
/* PNG codec */ /* PNG codec */
#cmakedefine HAVE_PNG #cmakedefine HAVE_PNG
/* png.h needs to be included */
#cmakedefine HAVE_PNG_H
/* QuickTime video libraries */ /* QuickTime video libraries */
#cmakedefine HAVE_QUICKTIME #cmakedefine HAVE_QUICKTIME
......
...@@ -9,38 +9,33 @@ ocv_add_module(highgui opencv_imgproc OPTIONAL opencv_androidcamera) ...@@ -9,38 +9,33 @@ ocv_add_module(highgui opencv_imgproc OPTIONAL opencv_androidcamera)
ocv_clear_vars(GRFMT_LIBS) ocv_clear_vars(GRFMT_LIBS)
if(WITH_PNG OR WITH_TIFF OR WITH_OPENEXR) if(HAVE_PNG OR HAVE_TIFF OR HAVE_OPENEXR)
ocv_include_directories(${ZLIB_INCLUDE_DIR}) ocv_include_directories(${ZLIB_INCLUDE_DIR})
list(APPEND GRFMT_LIBS ${ZLIB_LIBRARIES}) list(APPEND GRFMT_LIBS ${ZLIB_LIBRARIES})
endif() endif()
if(WITH_JPEG) if(HAVE_JPEG)
add_definitions(-DHAVE_JPEG)
ocv_include_directories(${JPEG_INCLUDE_DIR}) ocv_include_directories(${JPEG_INCLUDE_DIR})
list(APPEND GRFMT_LIBS ${JPEG_LIBRARIES}) list(APPEND GRFMT_LIBS ${JPEG_LIBRARIES})
endif() endif()
if(WITH_PNG) if(HAVE_PNG)
add_definitions(-DHAVE_PNG)
add_definitions(${PNG_DEFINITIONS}) add_definitions(${PNG_DEFINITIONS})
ocv_include_directories(${PNG_INCLUDE_DIR}) ocv_include_directories(${PNG_INCLUDE_DIR})
list(APPEND GRFMT_LIBS ${PNG_LIBRARIES}) list(APPEND GRFMT_LIBS ${PNG_LIBRARIES})
endif() endif()
if(WITH_TIFF) if(HAVE_TIFF)
add_definitions(-DHAVE_TIFF)
ocv_include_directories(${TIFF_INCLUDE_DIR}) ocv_include_directories(${TIFF_INCLUDE_DIR})
list(APPEND GRFMT_LIBS ${TIFF_LIBRARIES}) list(APPEND GRFMT_LIBS ${TIFF_LIBRARIES})
endif() endif()
if(WITH_JASPER) if(HAVE_JASPER)
add_definitions(-DHAVE_JASPER)
ocv_include_directories(${JASPER_INCLUDE_DIR}) ocv_include_directories(${JASPER_INCLUDE_DIR})
list(APPEND GRFMT_LIBS ${JASPER_LIBRARIES}) list(APPEND GRFMT_LIBS ${JASPER_LIBRARIES})
endif() endif()
if(WITH_OPENEXR) if(HAVE_OPENEXR)
add_definitions(-DHAVE_OPENEXR)
include_directories(SYSTEM ${OPENEXR_INCLUDE_PATHS}) include_directories(SYSTEM ${OPENEXR_INCLUDE_PATHS})
list(APPEND GRFMT_LIBS ${OPENEXR_LIBRARIES}) list(APPEND GRFMT_LIBS ${OPENEXR_LIBRARIES})
endif() endif()
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment