diff -up digikam-1.8.0/CMakeLists.txt.libjpeg_version digikam-1.8.0/CMakeLists.txt --- digikam-1.8.0/CMakeLists.txt.libjpeg_version 2011-01-23 13:33:57.000000000 -0600 +++ digikam-1.8.0/CMakeLists.txt 2011-02-04 11:34:22.712549338 -0600 @@ -151,17 +151,23 @@ ELSE(NOT APPLE) SET(CLAPACK_FOUND FALSE) ENDIF(NOT APPLE) -# Extract version of libjpeg so that we can use the appropriate dir -# See bug #227313, #228483 -FILE(READ "${JPEG_INCLUDE_DIR}/jpeglib.h" jpeglib_h_content) -STRING(REGEX REPLACE ".*#define +JPEG_LIB_VERSION +([0-9]+).*" "\\1" jpeglib_version "${jpeglib_h_content}") -MESSAGE(STATUS "Identified libjpeg version: ${jpeglib_version}") - -IF ("${jpeglib_version}" LESS 80) - SET(DIGIKAM_LIBJPEG_DIR libjpeg-62) -ELSE ("${jpeglib_version}" LESS 80) - SET(DIGIKAM_LIBJPEG_DIR libjpeg-80) -ENDIF ("${jpeglib_version}" LESS 80) +# check version of libjpeg so that we can use the appropriate dir +# See bug #227313 +set(_jpeglib_version_source "#include \n#include\n#include \n int main()\n {\n #if (JPEG_LIB_VERSION >= 80) \n #error JPEG_LIB_VERSION >= 80 found \n #endif \n }\n") +set(_jpeglib_version_source_file ${CMAKE_BINARY_DIR}/CMakeTmp/cmake_jpeglib_version_check.cpp) +file(WRITE "${_jpeglib_version_source_file}" "${_jpeglib_version_source}") +set(_jpeglib_version_include_dirs "-DINCLUDE_DIRECTORIES:STRING=${JPEG_INCLUDE_DIR}") + +try_compile(_jpeglib_version_compile_result ${CMAKE_BINARY_DIR} ${_jpeglib_version_source_file} CMAKE_FLAGS "${_jpeglib_version_include_dirs}" COMPILE_OUTPUT_VARIABLE _jpeglib_version_compile_output_var) + +if(_jpeglib_version_compile_result) +MESSAGE(STATUS "Identified libjpeg version: 62") +set(DIGIKAM_LIBJPEG_DIR libjpeg-62) +else(_jpeglib_version_compile_result) +MESSAGE(STATUS "Identified libjpeg version: 80+") +set(DIGIKAM_LIBJPEG_DIR libjpeg-80) +endif(_jpeglib_version_compile_result) + # Check KDcraw version installed to compile fine. IF(NOT WIN32)