diff options
Diffstat (limited to 'vcpkg/ports/libraw')
| -rw-r--r-- | vcpkg/ports/libraw/dependencies.patch | 50 | ||||
| -rw-r--r-- | vcpkg/ports/libraw/fix-install.patch | 39 | ||||
| -rw-r--r-- | vcpkg/ports/libraw/portfile.cmake | 73 | ||||
| -rw-r--r-- | vcpkg/ports/libraw/usage | 7 | ||||
| -rw-r--r-- | vcpkg/ports/libraw/vcpkg-cmake-wrapper.cmake | 40 | ||||
| -rw-r--r-- | vcpkg/ports/libraw/vcpkg.json | 40 |
6 files changed, 249 insertions, 0 deletions
diff --git a/vcpkg/ports/libraw/dependencies.patch b/vcpkg/ports/libraw/dependencies.patch new file mode 100644 index 0000000..f25ec96 --- /dev/null +++ b/vcpkg/ports/libraw/dependencies.patch @@ -0,0 +1,50 @@ +diff --git a/CMakeLists.txt b/CMakeLists.txt +index d3faf24..8833187 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -130,7 +130,10 @@ set(LIBRAW_PC_REQUIRES_PRIVATE "") + if(NOT WIN32 AND NOT EMSCRIPTEN) + FIND_LIBRARY(MATH_LIBRARY m) + if(MATH_LIBRARY) ++ set(MATH_LIBRARY m) + string(APPEND LIBRAW_PC_LIBS_PRIVATE " -l${MATH_LIBRARY}") ++ else() ++ set(MATH_LIBRARY "") + endif() + endif() + +@@ -142,7 +145,11 @@ set(LCMS_FOUND false) + + if(ENABLE_LCMS) + message(STATUS "Check for LCMS2 availability...") +- find_package(LCMS2) ++ find_package(lcms2 CONFIG REQUIRED) ++ set(LCMS2_FOUND 1) ++ set(LCMS2_VERSION 2.14) ++ set(LCMS2_INCLUDE_DIR "") ++ set(LCMS2_LIBRARIES lcms2::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_DIR}") + include_directories(${LCMS2_INCLUDE_DIR}) +@@ -188,7 +195,7 @@ MACRO_BOOL_TO_01(ZLIB_FOUND LIBRAW_USE_DNGDEFLATECODEC) + # JPEG library check + find_package(JPEG) + if(JPEG_FOUND) +- if (${JPEG_VERSION} LESS 80) ++ if (${JPEG_VERSION} LESS 80 OR NOT CMAKE_REQUIRE_FIND_PACKAGE_JPEG) + set(JPEG8_FOUND FALSE) + else() + set(JPEG8_FOUND TRUE) +diff --git a/cmake/librawConfig.cmake.in b/cmake/librawConfig.cmake.in +index b1b58d8..dae06cc 100644 +--- a/cmake/librawConfig.cmake.in ++++ b/cmake/librawConfig.cmake.in +@@ -13,7 +13,7 @@ endif() + + if(@LCMS_SUPPORT_CAN_BE_COMPILED@) + if(@LCMS2_FOUND@) +- find_dependency(LCMS2) ++ find_dependency(lcms2 CONFIG) + elseif(@LCMS_FOUND@) + find_dependency(LCMS) + endif() diff --git a/vcpkg/ports/libraw/fix-install.patch b/vcpkg/ports/libraw/fix-install.patch new file mode 100644 index 0000000..c4facc5 --- /dev/null +++ b/vcpkg/ports/libraw/fix-install.patch @@ -0,0 +1,39 @@ +diff --git a/CMakeLists.txt b/CMakeLists.txt +index e6a70d9..a5c70e7 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -629,7 +629,13 @@ if (LIBRAW_INSTALL) + ) + + # Install Shared binary files. +- install(TARGETS raw raw_r ++ install(TARGETS raw ++ EXPORT ${PROJECT_NAME}Targets ++ RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR} ++ LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}/manual-link ++ ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}/manual-link ++ ) ++ install(TARGETS raw_r + EXPORT ${PROJECT_NAME}Targets + RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR} + LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} +@@ -640,6 +646,7 @@ if (LIBRAW_INSTALL) + if(NOT BUILD_SHARED_LIBS AND "${CMAKE_CXX_SIMULATE_ID}" STREQUAL "MSVC") + message("ClangCl does not support pdb generation with static libraries") + elseif(MSVC) ++ elseif(0) + install(FILES ${PROJECT_BINARY_DIR}/raw.pdb ${PROJECT_BINARY_DIR}/raw_r.pdb + DESTINATION ${CMAKE_INSTALL_LIBDIR} + CONFIGURATIONS Debug RelWithDebInfo +diff --git a/cmake/data/libraw.pc.cmake b/cmake/data/libraw.pc.cmake +index 54c5af4..d182680 100644 +--- a/cmake/data/libraw.pc.cmake ++++ b/cmake/data/libraw.pc.cmake +@@ -1,6 +1,6 @@ + prefix=@CMAKE_INSTALL_PREFIX@ + exec_prefix=${prefix} +-libdir=${exec_prefix}/@CMAKE_INSTALL_LIBDIR@ ++libdir=${exec_prefix}/@CMAKE_INSTALL_LIBDIR@/manual-link + includedir=${prefix}/@CMAKE_INSTALL_INCLUDEDIR@ + + Name: @PROJECT_NAME@ diff --git a/vcpkg/ports/libraw/portfile.cmake b/vcpkg/ports/libraw/portfile.cmake new file mode 100644 index 0000000..a85a39a --- /dev/null +++ b/vcpkg/ports/libraw/portfile.cmake @@ -0,0 +1,73 @@ +vcpkg_from_github( + OUT_SOURCE_PATH SOURCE_PATH + REPO LibRaw/LibRaw + REF "${VERSION}" + SHA512 d8366d62f32f02466128ecfedf9a9b39289834a73d89d57004cf7df63919e66808ba283cddf5843b25fe903d72eb988ac5b490525083e2b5d84a05c7679b4014 + HEAD_REF master +) + +vcpkg_from_github( + OUT_SOURCE_PATH LIBRAW_CMAKE_SOURCE_PATH + REPO LibRaw/LibRaw-cmake + REF eb98e4325aef2ce85d2eb031c2ff18640ca616d3 + SHA512 63e68a4d30286ec3aa97168d46b7a1199268099ae27b61abcc92e93ec30e48d364086227983a1d724415e5f4da44d905422f30192453b95f31040e5f8469c3f9 + HEAD_REF master + PATCHES + dependencies.patch + # Move the non-thread-safe library to manual-link. This is unfortunately needed + # because otherwise libraries that build on top of libraw have to choose. + fix-install.patch +) + +file(COPY "${LIBRAW_CMAKE_SOURCE_PATH}/CMakeLists.txt" DESTINATION "${SOURCE_PATH}") +file(COPY "${LIBRAW_CMAKE_SOURCE_PATH}/cmake" DESTINATION "${SOURCE_PATH}") + + +vcpkg_check_features(OUT_FEATURE_OPTIONS FEATURE_OPTIONS + FEATURES + openmp ENABLE_OPENMP + openmp CMAKE_REQUIRE_FIND_PACKAGE_OpenMP + dng-lossy CMAKE_REQUIRE_FIND_PACKAGE_JPEG +) + +vcpkg_cmake_configure( + SOURCE_PATH "${SOURCE_PATH}" + OPTIONS + ${FEATURE_OPTIONS} + -DENABLE_EXAMPLES=OFF + -DCMAKE_REQUIRE_FIND_PACKAGE_Jasper=1 + -DCMAKE_REQUIRE_FIND_PACKAGE_ZLIB=1 + MAYBE_UNUSED_VARIABLES + CMAKE_REQUIRE_FIND_PACKAGE_OpenMP +) + +vcpkg_cmake_install() +vcpkg_copy_pdbs() +vcpkg_cmake_config_fixup(CONFIG_PATH "lib/cmake") +vcpkg_fixup_pkgconfig() + +if(VCPKG_LIBRARY_LINKAGE STREQUAL "static") + vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/include/libraw/libraw_types.h" + "#ifdef LIBRAW_NODLL" "#if 1" + ) +else() + vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/include/libraw/libraw_types.h" + "#ifdef LIBRAW_NODLL" "#if 0" + ) +endif() + +file(COPY "${CURRENT_PACKAGES_DIR}/share/cmake/libraw/FindLibRaw.cmake" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}") +file(REMOVE_RECURSE + "${CURRENT_PACKAGES_DIR}/debug/include" + "${CURRENT_PACKAGES_DIR}/debug/share" + "${CURRENT_PACKAGES_DIR}/share/cmake" + "${CURRENT_PACKAGES_DIR}/share/doc" +) + +configure_file("${CMAKE_CURRENT_LIST_DIR}/vcpkg-cmake-wrapper.cmake" "${CURRENT_PACKAGES_DIR}/share/${PORT}/vcpkg-cmake-wrapper.cmake" @ONLY) +file(INSTALL "${CMAKE_CURRENT_LIST_DIR}/usage" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}") +vcpkg_install_copyright(FILE_LIST + "${SOURCE_PATH}/COPYRIGHT" + "${SOURCE_PATH}/LICENSE.LGPL" + "${SOURCE_PATH}/LICENSE.CDDL" +) diff --git a/vcpkg/ports/libraw/usage b/vcpkg/ports/libraw/usage new file mode 100644 index 0000000..751277b --- /dev/null +++ b/vcpkg/ports/libraw/usage @@ -0,0 +1,7 @@ +libraw provides CMake targets:
+
+ find_package(libraw CONFIG REQUIRED)
+ # non-thread-safe
+ target_link_libraries(main PRIVATE libraw::raw)
+ # thread-safe
+ target_link_libraries(main PRIVATE libraw::raw_r)
diff --git a/vcpkg/ports/libraw/vcpkg-cmake-wrapper.cmake b/vcpkg/ports/libraw/vcpkg-cmake-wrapper.cmake new file mode 100644 index 0000000..4d2b9ad --- /dev/null +++ b/vcpkg/ports/libraw/vcpkg-cmake-wrapper.cmake @@ -0,0 +1,40 @@ +find_library(LibRaw_LIBRARY_RELEASE NAMES raw PATHS "${CMAKE_CURRENT_LIST_DIR}/../../lib/manual-link" NO_DEFAULT_PATH)
+find_library(LibRaw_LIBRARY_DEBUG NAMES rawd raw PATHS "${CMAKE_CURRENT_LIST_DIR}/../../debug/lib/manual-link" NO_DEFAULT_PATH)
+find_library(LibRaw_r_LIBRARY_RELEASE NAMES raw_r PATHS "${CMAKE_CURRENT_LIST_DIR}/../../lib" NO_DEFAULT_PATH)
+find_library(LibRaw_r_LIBRARY_DEBUG NAMES raw_rd raw_r PATHS "${CMAKE_CURRENT_LIST_DIR}/../../debug/lib" NO_DEFAULT_PATH)
+
+set(LIBRAW_PREV_MODULE_PATH "${CMAKE_MODULE_PATH}")
+list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_LIST_DIR}")
+_find_package(${ARGS})
+set(CMAKE_MODULE_PATH ${LIBRAW_PREV_MODULE_PATH})
+
+if(NOT LibRaw_r_LIBRARIES STREQUAL "")
+ if ("@ENABLE_OPENMP@")
+ find_package(OpenMP REQUIRED)
+ if (OpenMP_FOUND)
+ list(APPEND LibRaw_LIBRARIES ${OpenMP_CXX_LIBRARIES})
+ list(APPEND LibRaw_r_LIBRARIES ${OpenMP_CXX_LIBRARIES})
+ endif()
+ endif()
+
+ if ("@VCPKG_LIBRARY_LINKAGE@" STREQUAL "static")
+ find_package(Jasper REQUIRED)
+ list(APPEND LibRaw_LIBRARIES ${JASPER_LIBRARIES})
+ list(APPEND LibRaw_r_LIBRARIES ${JASPER_LIBRARIES})
+ find_package(lcms2 CONFIG REQUIRED)
+ list(APPEND LibRaw_LIBRARIES lcms2::lcms2)
+ list(APPEND LibRaw_r_LIBRARIES lcms2::lcms2)
+ find_package(ZLIB REQUIRED)
+ list(APPEND LibRaw_LIBRARIES ${ZLIB_LIBRARIES})
+ list(APPEND LibRaw_r_LIBRARIES ${ZLIB_LIBRARIES})
+ if("@CMAKE_REQUIRE_FIND_PACKAGE_JPEG@")
+ find_package(JPEG REQUIRED)
+ list(APPEND LibRaw_LIBRARIES ${JPEG_LIBRARIES})
+ list(APPEND LibRaw_r_LIBRARIES ${JPEG_LIBRARIES})
+ endif()
+ if("@MATH_LIBRARY@")
+ list(APPEND LibRaw_LIBRARIES @MATH_LIBRARY@)
+ list(APPEND LibRaw_r_LIBRARIES @MATH_LIBRARY@)
+ endif()
+ endif()
+endif()
diff --git a/vcpkg/ports/libraw/vcpkg.json b/vcpkg/ports/libraw/vcpkg.json new file mode 100644 index 0000000..cb1a157 --- /dev/null +++ b/vcpkg/ports/libraw/vcpkg.json @@ -0,0 +1,40 @@ +{ + "name": "libraw", + "version": "0.21.4", + "description": "raw image decoder library", + "homepage": "https://www.libraw.org", + "license": "LGPL-2.1-only OR CDDL-1.0", + "supports": "!uwp & !xbox", + "dependencies": [ + { + "name": "jasper", + "default-features": false + }, + "lcms", + { + "name": "vcpkg-cmake", + "host": true + }, + { + "name": "vcpkg-cmake-config", + "host": true + }, + "zlib" + ], + "features": { + "dng-lossy": { + "description": "DNG lossy codec support", + "dependencies": [ + { + "name": "libjpeg-turbo", + "features": [ + "jpeg8" + ] + } + ] + }, + "openmp": { + "description": "Build library with OpenMP support" + } + } +} |