aboutsummaryrefslogtreecommitdiff
path: root/vcpkg/ports/lcms
diff options
context:
space:
mode:
Diffstat (limited to 'vcpkg/ports/lcms')
-rw-r--r--vcpkg/ports/lcms/fix-shared-library.patch12
-rw-r--r--vcpkg/ports/lcms/lcms-config.cmake11
-rw-r--r--vcpkg/ports/lcms/lcms2-config.cmake25
-rw-r--r--vcpkg/ports/lcms/portfile.cmake53
-rw-r--r--vcpkg/ports/lcms/usage4
-rw-r--r--vcpkg/ports/lcms/vcpkg.json34
6 files changed, 139 insertions, 0 deletions
diff --git a/vcpkg/ports/lcms/fix-shared-library.patch b/vcpkg/ports/lcms/fix-shared-library.patch
new file mode 100644
index 0000000..ea8113b
--- /dev/null
+++ b/vcpkg/ports/lcms/fix-shared-library.patch
@@ -0,0 +1,12 @@
+diff --git a/include/lcms2.h b/include/lcms2.h
+index 7c72047..6306027 100644
+--- a/include/lcms2.h
++++ b/include/lcms2.h
+@@ -230,6 +230,7 @@ typedef int cmsBool;
+
+
+ // Calling convention -- this is hardly platform and compiler dependent
++#define CMS_DLL
+ #if defined(CMS_IS_WINDOWS_) && !defined(__GNUC__)
+ # if defined(CMS_DLL) || defined(CMS_DLL_BUILD)
+ # ifdef __BORLANDC__
diff --git a/vcpkg/ports/lcms/lcms-config.cmake b/vcpkg/ports/lcms/lcms-config.cmake
new file mode 100644
index 0000000..525d268
--- /dev/null
+++ b/vcpkg/ports/lcms/lcms-config.cmake
@@ -0,0 +1,11 @@
+if(NOT TARGET lcms::lcms)
+ include(CMakeFindDependencyMacro)
+ find_dependency(lcms2 CONFIG)
+
+ # Create imported target lcms::lcms
+ add_library(lcms::lcms INTERFACE IMPORTED)
+
+ set_target_properties(lcms::lcms PROPERTIES
+ INTERFACE_LINK_LIBRARIES "lcms2::lcms2"
+ )
+endif()
diff --git a/vcpkg/ports/lcms/lcms2-config.cmake b/vcpkg/ports/lcms/lcms2-config.cmake
new file mode 100644
index 0000000..593ac71
--- /dev/null
+++ b/vcpkg/ports/lcms/lcms2-config.cmake
@@ -0,0 +1,25 @@
+if(NOT TARGET lcms2::lcms2)
+ get_filename_component(_IMPORT_PREFIX "${CMAKE_CURRENT_LIST_FILE}" PATH)
+ get_filename_component(_IMPORT_PREFIX "${_IMPORT_PREFIX}" PATH)
+ get_filename_component(_IMPORT_PREFIX "${_IMPORT_PREFIX}" PATH)
+
+ add_library(lcms2::lcms2 UNKNOWN IMPORTED)
+
+ set_target_properties(lcms2::lcms2 PROPERTIES
+ INTERFACE_INCLUDE_DIRECTORIES "${_IMPORT_PREFIX}/include"
+ )
+
+ find_library(LCMS2_LIBRARY_DEBUG NAMES lcms2 PATHS "${_IMPORT_PREFIX}/debug" PATH_SUFFIXES lib NO_DEFAULT_PATH)
+ if(EXISTS "${LCMS2_LIBRARY_DEBUG}")
+ set_property(TARGET lcms2::lcms2 APPEND PROPERTY IMPORTED_CONFIGURATIONS "Debug")
+ set_target_properties(lcms2::lcms2 PROPERTIES IMPORTED_LOCATION_DEBUG "${LCMS2_LIBRARY_DEBUG}")
+ endif()
+
+ find_library(LCMS2_LIBRARY_RELEASE NAMES lcms2 PATHS "${_IMPORT_PREFIX}/" PATH_SUFFIXES lib NO_DEFAULT_PATH)
+ if(EXISTS "${LCMS2_LIBRARY_RELEASE}")
+ set_property(TARGET lcms2::lcms2 APPEND PROPERTY IMPORTED_CONFIGURATIONS "Release")
+ set_target_properties(lcms2::lcms2 PROPERTIES IMPORTED_LOCATION_RELEASE "${LCMS2_LIBRARY_RELEASE}")
+ endif()
+
+ unset(_IMPORT_PREFIX)
+endif()
diff --git a/vcpkg/ports/lcms/portfile.cmake b/vcpkg/ports/lcms/portfile.cmake
new file mode 100644
index 0000000..2148232
--- /dev/null
+++ b/vcpkg/ports/lcms/portfile.cmake
@@ -0,0 +1,53 @@
+if(VCPKG_LIBRARY_LINKAGE STREQUAL dynamic)
+ set(SHARED_LIBRARY_PATCH "fix-shared-library.patch")
+endif()
+
+vcpkg_from_github(
+ OUT_SOURCE_PATH SOURCE_PATH
+ REPO mm2/Little-CMS
+ REF "lcms${VERSION}"
+ SHA512 a7e15f9395eac15971dd6c9d8e33effaa2badc5cd8cfa6152d4b26d653a48ab91438a0f5a2b5faeea033d217f95e459f2659d27849fc110d0e0b5c427c7dcd79
+ HEAD_REF master
+ PATCHES
+ ${SHARED_LIBRARY_PATCH}
+)
+
+if("fastfloat" IN_LIST FEATURES)
+ list(APPEND OPTIONS -Dfastfloat=true)
+else()
+ list(APPEND OPTIONS -Dfastfloat=false)
+endif()
+if("threaded" IN_LIST FEATURES)
+ list(APPEND OPTIONS -Dthreaded=true)
+else()
+ list(APPEND OPTIONS -Dthreaded=false)
+endif()
+if("tools" IN_LIST FEATURES)
+ list(APPEND OPTIONS -Dutils=true)
+else()
+ list(APPEND OPTIONS -Dutils=false)
+endif()
+
+vcpkg_configure_meson(
+ SOURCE_PATH "${SOURCE_PATH}"
+ OPTIONS
+ ${OPTIONS}
+)
+vcpkg_install_meson()
+vcpkg_fixup_pkgconfig()
+
+if("tools" IN_LIST FEATURES)
+ vcpkg_copy_tools(
+ TOOL_NAMES jpgicc linkicc psicc tificc transicc
+ AUTO_CLEAN
+ )
+endif()
+
+file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/share/man")
+file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/share")
+
+file(INSTALL "${CMAKE_CURRENT_LIST_DIR}/lcms-config.cmake" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}")
+file(INSTALL "${CMAKE_CURRENT_LIST_DIR}/lcms2-config.cmake" DESTINATION "${CURRENT_PACKAGES_DIR}/share/lcms2")
+file(INSTALL "${CMAKE_CURRENT_LIST_DIR}/usage" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}")
+
+vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE")
diff --git a/vcpkg/ports/lcms/usage b/vcpkg/ports/lcms/usage
new file mode 100644
index 0000000..1b37c7f
--- /dev/null
+++ b/vcpkg/ports/lcms/usage
@@ -0,0 +1,4 @@
+The package lcms provides CMake targets:
+
+ find_package(lcms2 CONFIG REQUIRED)
+ target_link_libraries(main PRIVATE lcms2::lcms2)
diff --git a/vcpkg/ports/lcms/vcpkg.json b/vcpkg/ports/lcms/vcpkg.json
new file mode 100644
index 0000000..390c8da
--- /dev/null
+++ b/vcpkg/ports/lcms/vcpkg.json
@@ -0,0 +1,34 @@
+{
+ "name": "lcms",
+ "version": "2.17",
+ "description": "Little CMS.",
+ "homepage": "https://github.com/mm2/Little-CMS",
+ "license": "MIT",
+ "dependencies": [
+ {
+ "name": "vcpkg-tool-meson",
+ "host": true
+ }
+ ],
+ "features": {
+ "fastfloat": {
+ "description": "Build the fast float plugin",
+ "supports": "!(x86 & windows)",
+ "license": "GPL-3.0-or-later"
+ },
+ "threaded": {
+ "description": "Build the multi threaded plugin",
+ "license": "GPL-3.0-or-later"
+ },
+ "tools": {
+ "description": "Build the utilities",
+ "dependencies": [
+ "libjpeg-turbo",
+ {
+ "name": "tiff",
+ "default-features": false
+ }
+ ]
+ }
+ }
+}