59 lines
2 KiB
CMake
59 lines
2 KiB
CMake
# Copyright (c) the JPEG XL Project Authors. All rights reserved.
|
|
#
|
|
# Use of this source code is governed by a BSD-style
|
|
# license that can be found in the LICENSE file.
|
|
|
|
find_package(PkgConfig QUIET)
|
|
if (PkgConfig_FOUND)
|
|
pkg_check_modules(PC_LCMS2 QUIET libLCMS2)
|
|
set(LCMS2_VERSION ${PC_LCMS2_VERSION})
|
|
endif ()
|
|
|
|
find_path(LCMS2_INCLUDE_DIR
|
|
NAMES lcms2.h
|
|
HINTS ${PC_LCMS2_INCLUDEDIR} ${PC_LCMS2_INCLUDE_DIRS}
|
|
)
|
|
|
|
find_library(LCMS2_LIBRARY
|
|
NAMES ${LCMS2_NAMES} lcms2 liblcms2 lcms-2 liblcms-2
|
|
HINTS ${PC_LCMS2_LIBDIR} ${PC_LCMS2_LIBRARY_DIRS}
|
|
)
|
|
|
|
if (LCMS2_INCLUDE_DIR AND NOT LCMS_VERSION)
|
|
file(READ ${LCMS2_INCLUDE_DIR}/lcms2.h LCMS2_VERSION_CONTENT)
|
|
string(REGEX MATCH "#define[ \t]+LCMS_VERSION[ \t]+([0-9]+)[ \t]*\n" LCMS2_VERSION_MATCH ${LCMS2_VERSION_CONTENT})
|
|
if (LCMS2_VERSION_MATCH)
|
|
string(SUBSTRING ${CMAKE_MATCH_1} 0 1 LCMS2_VERSION_MAJOR)
|
|
string(SUBSTRING ${CMAKE_MATCH_1} 1 2 LCMS2_VERSION_MINOR)
|
|
set(LCMS2_VERSION "${LCMS2_VERSION_MAJOR}.${LCMS2_VERSION_MINOR}")
|
|
endif ()
|
|
endif ()
|
|
|
|
include(FindPackageHandleStandardArgs)
|
|
find_package_handle_standard_args(LCMS2
|
|
FOUND_VAR LCMS2_FOUND
|
|
REQUIRED_VARS LCMS2_LIBRARY LCMS2_INCLUDE_DIR
|
|
VERSION_VAR LCMS2_VERSION
|
|
)
|
|
|
|
if (LCMS2_LIBRARY AND NOT TARGET lcms2)
|
|
add_library(lcms2 INTERFACE IMPORTED GLOBAL)
|
|
|
|
if(CMAKE_VERSION VERSION_LESS "3.13.5")
|
|
set_property(TARGET lcms2 PROPERTY INTERFACE_INCLUDE_DIRECTORIES ${LCMS2_INCLUDE_DIR})
|
|
target_link_libraries(lcms2 INTERFACE ${LCMS2_LIBRARY})
|
|
set_property(TARGET lcms2 PROPERTY INTERFACE_COMPILE_OPTIONS ${PC_LCMS2_CFLAGS_OTHER})
|
|
else()
|
|
target_include_directories(lcms2 INTERFACE ${LCMS2_INCLUDE_DIR})
|
|
target_link_libraries(lcms2 INTERFACE ${LCMS2_LIBRARY})
|
|
target_link_options(lcms2 INTERFACE ${PC_LCMS2_LDFLAGS_OTHER})
|
|
target_compile_options(lcms2 INTERFACE ${PC_LCMS2_CFLAGS_OTHER})
|
|
endif()
|
|
endif()
|
|
|
|
mark_as_advanced(LCMS2_INCLUDE_DIR LCMS2_LIBRARY)
|
|
|
|
if (LCMS2_FOUND)
|
|
set(LCMS2_LIBRARIES ${LCMS2_LIBRARY})
|
|
set(LCMS2_INCLUDE_DIRS ${LCMS2_INCLUDE_DIR})
|
|
endif ()
|