Subject: [digikam] /: [lcms2] add ENABLE_LCMS2 option to force lcms2
Git commit 43d9572dbb17efacf96fbd484edfa37365e93ddf by Francesco Riosa.
Committed on 22/02/2012 at 16:26.
Pushed by riosa into branch 'master'.

[lcms2] add ENABLE_LCMS2 option to force lcms2

adding -DENABLE_LCMS2=1 to cmake options will force digikam applications
to link against lcms2, see comment in the commitdiff for a roadmap

CCBUG: 294105

M +36 -31 CMakeLists.txt

http://commits.kde.org/digikam/43d9572dbb17efacf96fbd484edfa37365e93ddf

diff --git a/CMakeLists.txt b/CMakeLists.txt
index fccb039..9617f96 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -9,6 +9,7 @@ OPTION(ENABLE_THUMBS_DB "Build digiKam with thumbnails
database support (
OPTION(ENABLE_INTERNALMYSQL "Look for MySQL server executable at build time
(default=ON)" ON)
OPTION(ENABLE_ADVANCEDDEBUGMSG "Build digiKam with more internal debug message
(default=OFF)" OFF)
OPTION(ENABLE_NEPOMUKSUPPORT "Build digiKam with Nepomuk support
(default=ON)" ON)
+OPTION(ENABLE_LCMS2 "Link digiKam to lcms2 (experimental)
(default=OFF)" OFF)

#
==================================================================================================
# Information to update before to release this package.
@@ -156,37 +157,41 @@ FIND_PACKAGE(PGF)
FIND_PACKAGE(CLAPACK)
FIND_PACKAGE(Boost) # 1.36.0)

-# manage the lcms{1,2} library
-# at the moment we STILL DEFAULT TO LCMS1 because the porting to lcms2 is
incomplete
-# when libs/dklcms/digikam-lcms.cpp is completed we can move the default to
lcms2
-# if we decide to drop support for lcms1 the layer of abstraction introduced
by libs/dklcms
-# may become superfluous and the dkCms* functions can be merged back.
-FIND_PACKAGE(LCMS)
-IF (LCMS_FOUND)
- SET(USE_LCMS_VERSION_1000 1)
-ELSE (LCMS_FOUND)
- IF (LCMS2_FOUND AND (LCMS2_VERSION VERSION_EQUAL 2.1 OR LCMS2_VERSION
VERSION_GREATER 2.1))
- MESSAGE(STATUS "Found lcms2: ${LCMS2_LIBRARIES} ${LCMS2_INCLUDE_DIRS}")
- MESSAGE(WARNING "Support for lcms2 is still incomplete and possibly
buggy")
- MESSAGE(WARNING "Please install lcms1 if available")
- SET(LCMS_FOUND ${LCMS2_FOUND})
- SET(LCMS_LIBRARIES ${LCMS2_LIBRARIES})
- SET(LCMS_INCLUDE_DIR ${LCMS2_INCLUDE_DIRS})
- SET(USE_LCMS_VERSION_2000 1)
- ENDIF (LCMS_FOUND)
-ENDIF (LCMS_FOUND)
-# pkg_check_modules(LCMS2 REQUIRED lcms2)
-# if (LCMS2_FOUND AND (LCMS2_VERSION VERSION_EQUAL 2.1 OR LCMS2_VERSION
VERSION_GREATER 2.1))
-# MESSAGE(STATUS "Found lcms2: ${LCMS2_LIBRARIES} ${LCMS2_INCLUDE_DIRS}")
-# SET(LCMS_FOUND ${LCMS2_FOUND})
-# SET(LCMS_LIBRARIES ${LCMS2_LIBRARIES})
-# SET(LCMS_INCLUDE_DIR ${LCMS2_INCLUDE_DIRS})
-# SET(USE_LCMS_VERSION_2000 1)
-# else (LCMS2_FOUND AND (LCMS2_VERSION VERSION_EQUAL 2.1 OR LCMS2_VERSION
VERSION_GREATER 2.1))
-# FIND_PACKAGE(LCMS)
-# MESSAGE(STATUS "Found lcms1: ${LCMS_LIBRARIES} ${LCMS_INCLUDE_DIR}")
-# SET(USE_LCMS_VERSION_1000 1)
-# endif (LCMS2_FOUND AND (LCMS2_VERSION VERSION_EQUAL 2.1 OR LCMS2_VERSION
VERSION_GREATER 2.1))
+# lcms{1,2} library
+# at the moment (2.6) we STILL DEFAULT TO LCMS1 because the porting to lcms2 is
+# experimental.
+# It's possible to force lcms2 enabling the ENABLE_LCMS2 option
+# future plans:
+# 2.7 will compile against lcms2 by default but lcms1 will stay as a fallback
+# 2.8 will support lcms2 only, probably ENABLE_LCMS2 will be removed too
+# unless we decide to support another color managment library
+# Note, if ENABLE_LCMS2 is set and there is no lcms2 build will fail, even if
+# lcms1 is present
+IF (ENABLE_LCMS2)
+ pkg_check_modules(LCMS2 REQUIRED lcms2)
+ IF (LCMS2_FOUND AND (LCMS2_VERSION VERSION_EQUAL 2.1 OR LCMS2_VERSION
VERSION_GREATER 2.1))
+ MESSAGE(STATUS "Found lcms2: ${LCMS2_LIBRARIES} ${LCMS2_INCLUDE_DIRS}")
+ SET(LCMS_FOUND ${LCMS2_FOUND})
+ SET(LCMS_LIBRARIES ${LCMS2_LIBRARIES})
+ SET(LCMS_INCLUDE_DIR ${LCMS2_INCLUDE_DIRS})
+ SET(USE_LCMS_VERSION_2000 1)
+ ENDIF (LCMS2_FOUND AND (LCMS2_VERSION VERSION_EQUAL 2.1 OR LCMS2_VERSION
VERSION_GREATER 2.1))
+ELSE (ENABLE_LCMS2)
+ FIND_PACKAGE(LCMS)
+ IF (LCMS_FOUND)
+ SET(USE_LCMS_VERSION_1000 1)
+ ELSE (LCMS_FOUND)
+ IF (LCMS2_FOUND AND (LCMS2_VERSION VERSION_EQUAL 2.1 OR LCMS2_VERSION
VERSION_GREATER 2.1))
+ MESSAGE(STATUS "Found lcms2: ${LCMS2_LIBRARIES}
${LCMS2_INCLUDE_DIRS}")
+ MESSAGE(WARNING "Support for lcms2 is still incomplete and possibly
buggy")
+ MESSAGE(WARNING "Please install lcms1 if available")
+ SET(LCMS_FOUND ${LCMS2_FOUND})
+ SET(LCMS_LIBRARIES ${LCMS2_LIBRARIES})
+ SET(LCMS_INCLUDE_DIR ${LCMS2_INCLUDE_DIRS})
+ SET(USE_LCMS_VERSION_2000 1)
+ ENDIF (LCMS_FOUND)
+ ENDIF (LCMS_FOUND)
+ENDIF (ENABLE_LCMS2)

# To link under Solaris (see B.K.O #274484)
IF(NOT WIN32)

(C)2011 mailinglist-archive.com