55 lines
1.6 KiB
CMake
55 lines
1.6 KiB
CMake
|
cmake_minimum_required(VERSION 3.5)
|
||
|
|
||
|
project(little-cms)
|
||
|
|
||
|
file(GLOB SRCS src/*.c)
|
||
|
|
||
|
add_library(lcms2 ${SRCS} src/lcms2.def)
|
||
|
|
||
|
if(BUILD_SHARED_LIBS)
|
||
|
target_compile_options(lcms2 PRIVATE -DCMS_DLL_BUILD)
|
||
|
target_compile_options(lcms2 PUBLIC -DCMS_DLL)
|
||
|
endif()
|
||
|
target_compile_options(lcms2 PRIVATE -DUNICODE -D_UNICODE)
|
||
|
|
||
|
target_include_directories(lcms2 PUBLIC $<BUILD_INTERFACE:${PROJECT_SOURCE_DIR}/include> $<INSTALL_INTERFACE:include>)
|
||
|
set_target_properties(lcms2 PROPERTIES PUBLIC_HEADER "${CMAKE_CURRENT_LIST_DIR}/include/lcms2.h;${CMAKE_CURRENT_LIST_DIR}/include/lcms2_plugin.h")
|
||
|
|
||
|
# Generate pkg-config file
|
||
|
SET(PACKAGE "lcms2")
|
||
|
# Read VERSION from file configure
|
||
|
file(READ "${CMAKE_CURRENT_LIST_DIR}/configure" lcms2_configure)
|
||
|
string(REGEX MATCH "PACKAGE_VERSION='(([0-9]+)\\.([0-9]+))'" _ ${lcms2_configure})
|
||
|
set(VERSION "${CMAKE_MATCH_1}")
|
||
|
SET(prefix "${CMAKE_INSTALL_PREFIX}")
|
||
|
SET(exec_prefix "\${prefix}")
|
||
|
SET(libdir "\${exec_prefix}/${CMAKE_INSTALL_LIBDIR}")
|
||
|
SET(includedir "\${prefix}/include")
|
||
|
CONFIGURE_FILE(lcms2.pc.in "${PROJECT_BINARY_DIR}/lcms2.pc" @ONLY)
|
||
|
|
||
|
install(TARGETS lcms2
|
||
|
EXPORT lcms2Config
|
||
|
RUNTIME DESTINATION "bin"
|
||
|
LIBRARY DESTINATION "lib"
|
||
|
ARCHIVE DESTINATION "lib"
|
||
|
PUBLIC_HEADER DESTINATION "include"
|
||
|
)
|
||
|
|
||
|
INSTALL(FILES ${PROJECT_BINARY_DIR}/lcms2.pc DESTINATION ${CMAKE_INSTALL_LIBDIR}/pkgconfig)
|
||
|
|
||
|
install(EXPORT lcms2Config
|
||
|
DESTINATION "share/lcms2"
|
||
|
NAMESPACE lcms2::
|
||
|
)
|
||
|
|
||
|
# Backwards compatibility for previous vcpkg users
|
||
|
add_library(lcms INTERFACE)
|
||
|
target_link_libraries(lcms INTERFACE lcms2)
|
||
|
|
||
|
|
||
|
install(TARGETS lcms EXPORT lcms-targets)
|
||
|
install(EXPORT lcms-targets
|
||
|
DESTINATION "share/lcms"
|
||
|
NAMESPACE lcms::
|
||
|
)
|