aboutsummaryrefslogtreecommitdiff
path: root/modules
diff options
context:
space:
mode:
Diffstat (limited to 'modules')
-rw-r--r--modules/FindLCMS.cmake48
1 files changed, 17 insertions, 31 deletions
diff --git a/modules/FindLCMS.cmake b/modules/FindLCMS.cmake
index 2b1f3cd7..e321e86c 100644
--- a/modules/FindLCMS.cmake
+++ b/modules/FindLCMS.cmake
@@ -1,11 +1,13 @@
# - Find LCMS
-# Find the LCMS includes and library
+# Find the LCMS (Little Color Management System) library and includes and
# 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.
-
+#
+# The minimum required version of LCMS can be specified using the
+# standard syntax, e.g. find_package(LCMS 1.1)
# Copyright (c) 2008, Adrian Page, <adrian@pagenet.plus.com>
# Copyright (c) 2009, Cyrille Berger, <cberger@cberger.net>
@@ -23,50 +25,34 @@ if(NOT WIN32)
endif(NOT WIN32)
find_path(LCMS_INCLUDE_DIR lcms.h
- PATHS
+ HINTS
${PC_LCMS_INCLUDEDIR}
${PC_LCMS_INCLUDE_DIRS}
PATH_SUFFIXES lcms liblcms1
)
find_library(LCMS_LIBRARIES NAMES lcms liblcms lcms-1 liblcms-1
- PATHS
+ HINTS
${PC_LCMS_LIBDIR}
${PC_LCMS_LIBRARY_DIRS}
PATH_SUFFIXES lcms
)
-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)
+# Store the LCMS version number in the cache, so we don't have to search everytime again
+if(LCMS_INCLUDE_DIR AND NOT LCMS_VERSION)
file(READ ${LCMS_INCLUDE_DIR}/lcms.h LCMS_VERSION_CONTENT)
string(REGEX MATCH "#define LCMS_VERSION[ ]*[0-9]*\n" LCMS_VERSION_MATCH ${LCMS_VERSION_CONTENT})
if(LCMS_VERSION_MATCH)
- string(REGEX REPLACE "#define LCMS_VERSION[ ]*([0-9]*)\n" "\\1" LCMS_VERSION ${LCMS_VERSION_MATCH})
- 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_VERSION_MATCH)
- if(NOT LCMS_FIND_QUIETLY)
- message(STATUS "Found lcms but failed to find version ${LCMS_LIBRARIES}")
- endif(NOT LCMS_FIND_QUIETLY)
- set(LCMS_VERSION NOTFOUND)
+ string(REGEX REPLACE "#define LCMS_VERSION[ ]*([0-9]*)\n" "\\1" _LCMS_VERSION ${LCMS_VERSION_MATCH})
+ string(SUBSTRING ${_LCMS_VERSION} 0 1 LCMS_MAJOR_VERSION)
+ string(SUBSTRING ${_LCMS_VERSION} 1 2 LCMS_MINOR_VERSION)
endif(LCMS_VERSION_MATCH)
-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)
+ set(LCMS_VERSION "${LCMS_MAJOR_VERSION}.${LCMS_MINOR_VERSION}" CACHE STRING "Version number of lcms" FORCE)
+endif(LCMS_INCLUDE_DIR AND NOT LCMS_VERSION)
+
+include(FindPackageHandleStandardArgs)
+find_package_handle_standard_args(LCMS REQUIRED_VARS LCMS_LIBRARIES LCMS_INCLUDE_DIR
+ VERSION_VAR LCMS_VERSION )
mark_as_advanced(LCMS_INCLUDE_DIR LCMS_LIBRARIES LCMS_VERSION)