diff options
Diffstat (limited to 'vcpkg/ports/libuvc')
| -rw-r--r-- | vcpkg/ports/libuvc/build_fix.patch | 70 | ||||
| -rw-r--r-- | vcpkg/ports/libuvc/portfile.cmake | 34 | ||||
| -rw-r--r-- | vcpkg/ports/libuvc/usage | 8 | ||||
| -rw-r--r-- | vcpkg/ports/libuvc/vcpkg.json | 20 |
4 files changed, 132 insertions, 0 deletions
diff --git a/vcpkg/ports/libuvc/build_fix.patch b/vcpkg/ports/libuvc/build_fix.patch new file mode 100644 index 0000000..4e6bade --- /dev/null +++ b/vcpkg/ports/libuvc/build_fix.patch @@ -0,0 +1,70 @@ +diff --git a/CMakeLists.txt b/CMakeLists.txt +index fbaffc9..672ebb9 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -5,7 +5,6 @@ project(libuvc + ) + + # Additional search scripts path for libusb-1.0, libjpeg, OpenCV +-list(APPEND CMAKE_MODULE_PATH ${CMAKE_CURRENT_LIST_DIR}/cmake) + + # Xcode and Visual Studio do not using CMAKE_BUILD_TYPE cache variable + # so we use Release build type only with single configuration generators. +@@ -39,10 +38,11 @@ set(SOURCES + src/misc.c + ) + +-find_package(LibUSB) ++FIND_PACKAGE(PkgConfig REQUIRED) ++pkg_check_modules(libusb REQUIRED IMPORTED_TARGET libusb-1.0) + + # JpegPkg name to differ from shipped with CMake +-find_package(JpegPkg QUIET) ++find_package(JPEG REQUIRED) + if(JPEG_FOUND) + message(STATUS "Building libuvc with JPEG support.") + set(LIBUVC_HAS_JPEG TRUE) +@@ -116,8 +116,11 @@ foreach(target_name IN LISTS UVC_TARGETS) + ) + target_link_libraries(${target_name} + # libusb-1.0 used internally so we link to it privately. +- PRIVATE LibUSB::LibUSB ${threads} ++ PRIVATE PkgConfig::libusb ${threads} + ) ++ if(APPLE) ++ target_link_libraries(${target_name} PRIVATE "-framework IOKit" "-framework CoreFoundation" "-framework Security") ++ endif() + if(JPEG_FOUND) + target_link_libraries(${target_name} + PRIVATE JPEG::JPEG +@@ -191,12 +194,6 @@ install(EXPORT libuvcTargets + DESTINATION ${CMAKE_INSTALL_CMAKEDIR} + ) + +-install(FILES +- cmake/FindLibUSB.cmake +- cmake/FindJpegPkg.cmake +- DESTINATION ${CMAKE_INSTALL_CMAKEDIR} +-) +- + include(CMakePackageConfigHelpers) + write_basic_package_version_file(libuvcConfigVersion.cmake + COMPATIBILITY AnyNewerVersion +diff --git a/libuvcConfig.cmake b/libuvcConfig.cmake +index b9887ea..c704ab5 100644 +--- a/libuvcConfig.cmake ++++ b/libuvcConfig.cmake +@@ -10,8 +10,11 @@ if(${CMAKE_FIND_PACKAGE_NAME}_FIND_REQUIRED) + list(APPEND extraArgs REQUIRED) + endif() + +-find_package(JpegPkg ${extraArgs}) +-find_package(LibUSB ${extraArgs}) ++include(CMakeFindDependencyMacro) ++find_dependency(JPEG ${extraArgs}) ++find_dependency(Threads) ++find_package(PkgConfig REQUIRED) ++pkg_check_modules(libusb REQUIRED IMPORTED_TARGET libusb-1.0) + include("${CMAKE_CURRENT_LIST_DIR}/libuvcTargets.cmake") + + set(libuvc_FOUND TRUE) diff --git a/vcpkg/ports/libuvc/portfile.cmake b/vcpkg/ports/libuvc/portfile.cmake new file mode 100644 index 0000000..008b8ba --- /dev/null +++ b/vcpkg/ports/libuvc/portfile.cmake @@ -0,0 +1,34 @@ +vcpkg_from_github( + OUT_SOURCE_PATH SOURCE_PATH + REPO libuvc/libuvc + REF "v${VERSION}" + SHA512 cf2c0a6cc04717f284f25bed17f178a4b2b2a2bb3e5937e50be144e88db2c481c5ea763c164fe0234834fea4837f96fcc13bdbdafd4610d2985943562dfcc72f + HEAD_REF master + PATCHES build_fix.patch +) + +if (VCPKG_LIBRARY_LINKAGE STREQUAL "dynamic") + set(BUILD_TARGET "Shared") +else() + set(BUILD_TARGET "Static") +endif() + +vcpkg_find_acquire_program(PKGCONFIG) +vcpkg_cmake_configure( + SOURCE_PATH ${SOURCE_PATH} + OPTIONS + -DPKG_CONFIG_EXECUTABLE="${PKGCONFIG}" + -DCMAKE_BUILD_TARGET=${BUILD_TARGET} + -DBUILD_EXAMPLE=OFF + -DBUILD_TEST=OFF +) +vcpkg_cmake_install() + +vcpkg_cmake_config_fixup(CONFIG_PATH lib/cmake/${PORT}) +vcpkg_fixup_pkgconfig() + +file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") + +vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE.txt") + +file(INSTALL "${CMAKE_CURRENT_LIST_DIR}/usage" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}") diff --git a/vcpkg/ports/libuvc/usage b/vcpkg/ports/libuvc/usage new file mode 100644 index 0000000..44b9362 --- /dev/null +++ b/vcpkg/ports/libuvc/usage @@ -0,0 +1,8 @@ +libuvc provides CMake targets: + + find_package(libuvc CONFIG REQUIRED) + target_link_libraries(main PRIVATE $<IF:$<TARGET_EXISTS:LibUVC::UVCStatic>,LibUVC::UVCStatic,LibUVC::UVCShared>) + +libuvc provides pkg-config modules: + + libuvc diff --git a/vcpkg/ports/libuvc/vcpkg.json b/vcpkg/ports/libuvc/vcpkg.json new file mode 100644 index 0000000..b685aa0 --- /dev/null +++ b/vcpkg/ports/libuvc/vcpkg.json @@ -0,0 +1,20 @@ +{ + "name": "libuvc", + "version": "0.0.7", + "port-version": 1, + "description": "a cross-platform library for USB video devices", + "homepage": "https://github.com/libuvc/libuvc", + "supports": "!uwp & !windows", + "dependencies": [ + "libjpeg-turbo", + "libusb", + { + "name": "vcpkg-cmake", + "host": true + }, + { + "name": "vcpkg-cmake-config", + "host": true + } + ] +} |