diff options
| author | Ethan Morgan <ethan@gweithio.com> | 2026-02-14 16:44:06 +0000 |
|---|---|---|
| committer | Ethan Morgan <ethan@gweithio.com> | 2026-02-14 16:44:06 +0000 |
| commit | 54409423f767d8b1cf30cb7d0efca6b4ca138823 (patch) | |
| tree | d915ac7828703ce4b963efdd9728a1777ba18c1e /vcpkg/ports/lcms | |
Diffstat (limited to 'vcpkg/ports/lcms')
| -rw-r--r-- | vcpkg/ports/lcms/fix-shared-library.patch | 12 | ||||
| -rw-r--r-- | vcpkg/ports/lcms/lcms-config.cmake | 11 | ||||
| -rw-r--r-- | vcpkg/ports/lcms/lcms2-config.cmake | 25 | ||||
| -rw-r--r-- | vcpkg/ports/lcms/portfile.cmake | 53 | ||||
| -rw-r--r-- | vcpkg/ports/lcms/usage | 4 | ||||
| -rw-r--r-- | vcpkg/ports/lcms/vcpkg.json | 34 |
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 + } + ] + } + } +} |