diff options
author | Laurent Montel <montel@kde.org> | 2007-06-05 14:39:59 +0000 |
---|---|---|
committer | Laurent Montel <montel@kde.org> | 2007-06-05 14:39:59 +0000 |
commit | 41cbc7bb9079eaff5a73b69d4446dd778b4ae8f4 (patch) | |
tree | 1b92649660ad043ce35ed102be535afef828cc5f | |
parent | 2afd73c8c91ecd46eeb8310ce96f47475656c5f9 (diff) | |
download | extra-cmake-modules-41cbc7bb9079eaff5a73b69d4446dd778b4ae8f4.tar.gz extra-cmake-modules-41cbc7bb9079eaff5a73b69d4446dd778b4ae8f4.tar.bz2 |
Move into kdelibs (now used by koffice/libkexiv2 and digikam for the future)
svn path=/trunk/KDE/kdelibs/; revision=671799
-rw-r--r-- | modules/FindLCMS.cmake | 89 |
1 files changed, 89 insertions, 0 deletions
diff --git a/modules/FindLCMS.cmake b/modules/FindLCMS.cmake new file mode 100644 index 00000000..d992a651 --- /dev/null +++ b/modules/FindLCMS.cmake @@ -0,0 +1,89 @@ +# - Find LCMS +# Find the LCMS includes and library +# This module defines +# LCMS_INCLUDE_DIR, where to find lcms.h +# LCMS_LIBRARIES, the libraries needed to use LCMS. +# LCMS_VERSION, The value of LCMS_VERSION defined in lcms.h +# LCMS_FOUND, If false, do not try to use LCMS. + +# use pkg-config to get the directories and then use these values +# in the FIND_PATH() and FIND_LIBRARY() calls +if(NOT WIN32) +INCLUDE(UsePkgConfig) +PKGCONFIG(lcms _LcmsIncDir _LcmsLinkDir _LcmsLinkFlags _LcmsCflags) +SET(LCMS_DEFINITIONS ${_LcmsCflags}) +endif(NOT WIN32) + +find_path(LCMS_INCLUDE_DIR lcms.h + ${_LcmsIncDir} + ${CMAKE_INSTALL_PREFIX}/include + /usr/include + /usr/include/lcms + /usr/include/liblcms1 + /usr/local/include + /usr/local/include/lcms + NO_DEFAULT_PATH +) +find_path(LCMS_INCLUDE_DIR lcms.h +) + +find_library(LCMS_LIBRARIES NAMES lcms liblcms + PATHS + ${_LcmsLinkDir} + ${CMAKE_INSTALL_PREFIX}/lib + /usr/lib + /usr/lib/lcms + /usr/local/lib + /usr/local/lib/lcms + NO_DEFAULT_PATH +) +find_library(LCMS_LIBRARIES NAMES lcms liblcms +) + +if(LCMS_INCLUDE_DIR AND LCMS_LIBRARIES) + set(LCMS_FOUND TRUE) +else(LCMS_INCLUDE_DIR AND LCMS_LIBRARIES) + set(LCMS_FOUND FALSE) +endif(LCMS_INCLUDE_DIR AND LCMS_LIBRARIES) + +if(LCMS_FOUND) + set(FIND_LCMS_VERSION_SOURCE + "#include <lcms.h>\n int main()\n {\n return LCMS_VERSION;\n }\n") + set(FIND_LCMS_VERSION_SOURCE_FILE ${CMAKE_BINARY_DIR}/CMakeTmp/FindLCMS.cxx) + file(WRITE "${FIND_LCMS_VERSION_SOURCE_FILE}" "${FIND_LCMS_VERSION_SOURCE}") + + set(FIND_LCMS_VERSION_ADD_INCLUDES + "-DINCLUDE_DIRECTORIES:STRING=${LCMS_INCLUDE_DIR}") + + try_run(LCMS_VERSION LCMS_COMPILE_RESULT + ${CMAKE_BINARY_DIR} + ${FIND_LCMS_VERSION_SOURCE_FILE} + CMAKE_FLAGS "${FIND_LCMS_VERSION_ADD_INCLUDES}" + OUTPUT_VARIABLE OUTPUT) + + if(LCMS_COMPILE_RESULT AND NOT LCMS_VERSION STREQUAL FAILED_TO_RUN) + if(NOT LCMS_FIND_QUIETLY) + string(SUBSTRING ${LCMS_VERSION} 0 1 LCMS_MAJOR_VERSION) + string(SUBSTRING ${LCMS_VERSION} 1 2 LCMS_MINOR_VERSION) + message(STATUS "Found lcms version ${LCMS_MAJOR_VERSION}.${LCMS_MINOR_VERSION}, ${LCMS_LIBRARIES}") + endif(NOT LCMS_FIND_QUIETLY) + else(LCMS_COMPILE_RESULT AND NOT LCMS_VERSION STREQUAL FAILED_TO_RUN) + if(NOT LCMS_FIND_QUIETLY) + message(STATUS "Found lcms but failed to find version ${LCMS_LIBRARIES}") + file(APPEND ${CMAKE_BINARY_DIR}/CMakeFiles/CMakeError.log + "Find lcms version failed with the following output:\n${OUTPUT}\nFindLCMS.cxx:\n${FIND_LCMS_VERSION_SOURCE}\n\n") + endif(NOT LCMS_FIND_QUIETLY) + set(LCMS_VERSION NOTFOUND) + endif(LCMS_COMPILE_RESULT AND NOT LCMS_VERSION STREQUAL FAILED_TO_RUN) +else(LCMS_FOUND) + if(NOT LCMS_FIND_QUIETLY) + if(LCMS_FIND_REQUIRED) + message(FATAL_ERROR "Required package lcms NOT found") + else(LCMS_FIND_REQUIRED) + message(STATUS "lcms NOT found") + endif(LCMS_FIND_REQUIRED) + endif(NOT LCMS_FIND_QUIETLY) +endif(LCMS_FOUND) + +mark_as_advanced(LCMS_INCLUDE_DIR LCMS_LIBRARIES LCMS_VERSION) + |