diff options
| author | Matthias C. M. Troffaes <matthias.troffaes@gmail.com> | 2020-06-11 10:38:22 +0100 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2020-06-11 02:38:22 -0700 |
| commit | 6e67cb1745c68c6f7008cfa3b80496f45cbdb99c (patch) | |
| tree | 314b72631cccb5be81f9bd03e7861ce2129a7dc5 | |
| parent | 6b32f92067ee4a81aa11172d3504588bc8427314 (diff) | |
| download | vcpkg-6e67cb1745c68c6f7008cfa3b80496f45cbdb99c.tar.gz vcpkg-6e67cb1745c68c6f7008cfa3b80496f45cbdb99c.zip | |
[libvpx] Add cmake config file (#11795)
* [libvpx] Add cmake config file
This allows libvpx to be used with
find_package(libvpx CONFIG REQUIRED)
target_link_libraries(main PRIVATE libvpx::libvpx)
Tested on all supported windows triplets.
* [libvpx] Rename cmake config file to make clear it is unofficial
* [libvpx] Add cmake config target guard
* [libvpx] Update version
| -rw-r--r-- | ports/libvpx/CONTROL | 2 | ||||
| -rw-r--r-- | ports/libvpx/portfile.cmake | 7 | ||||
| -rw-r--r-- | ports/libvpx/unofficial-libvpx-config.cmake.in | 49 |
3 files changed, 57 insertions, 1 deletions
diff --git a/ports/libvpx/CONTROL b/ports/libvpx/CONTROL index b576588a3..0ff504cd4 100644 --- a/ports/libvpx/CONTROL +++ b/ports/libvpx/CONTROL @@ -1,5 +1,5 @@ Source: libvpx
-Version: 1.8.1-4
+Version: 1.8.1-5
Homepage: https://github.com/webmproject/libvpx
Description: The reference software implementation for the video coding formats VP8 and VP9.
Supports: !(uwp|arm|arm64)
diff --git a/ports/libvpx/portfile.cmake b/ports/libvpx/portfile.cmake index 1e3d885fc..fd22c0eeb 100644 --- a/ports/libvpx/portfile.cmake +++ b/ports/libvpx/portfile.cmake @@ -212,5 +212,12 @@ else() endif() endif() +if(NOT DEFINED VCPKG_BUILD_TYPE OR VCPKG_BUILD_TYPE STREQUAL "debug") + set(LIBVPX_CONFIG_DEBUG ON) +else() + set(LIBVPX_CONFIG_DEBUG OFF) +endif() +configure_file(${CMAKE_CURRENT_LIST_DIR}/unofficial-libvpx-config.cmake.in ${CURRENT_PACKAGES_DIR}/share/unofficial-libvpx/unofficial-libvpx-config.cmake @ONLY) + file(COPY ${SOURCE_PATH}/LICENSE DESTINATION ${CURRENT_PACKAGES_DIR}/share/libvpx) file(RENAME ${CURRENT_PACKAGES_DIR}/share/libvpx/LICENSE ${CURRENT_PACKAGES_DIR}/share/libvpx/copyright) diff --git a/ports/libvpx/unofficial-libvpx-config.cmake.in b/ports/libvpx/unofficial-libvpx-config.cmake.in new file mode 100644 index 000000000..6e8fced36 --- /dev/null +++ b/ports/libvpx/unofficial-libvpx-config.cmake.in @@ -0,0 +1,49 @@ +if(NOT TARGET unofficial::libvpx::libvpx)
+ # Compute the installation prefix relative to this file.
+ 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 target (note: vpx always has a static build in vcpkg).
+ add_library(unofficial::libvpx::libvpx STATIC IMPORTED)
+
+ # Add interface include directories and link interface languages (applies to all configurations).
+ set_target_properties(unofficial::libvpx::libvpx PROPERTIES
+ INTERFACE_INCLUDE_DIRECTORIES "${_IMPORT_PREFIX}/include"
+ IMPORTED_LINK_INTERFACE_LANGUAGES "C"
+ )
+ list(APPEND _IMPORT_CHECK_FILES "${_IMPORT_PREFIX}/include/vpx/vpx_codec.h")
+
+ # Add release configuration properties.
+ find_library(_LIBFILE_RELEASE NAMES vpx@LIBVPX_CRT_SUFFIX@ PATHS "${_IMPORT_PREFIX}/lib/" NO_DEFAULT_PATH)
+ set_property(TARGET unofficial::libvpx::libvpx
+ APPEND PROPERTY IMPORTED_CONFIGURATIONS RELEASE)
+ set_target_properties(unofficial::libvpx::libvpx PROPERTIES
+ IMPORTED_LOCATION_RELEASE ${_LIBFILE_RELEASE})
+ list(APPEND _IMPORT_CHECK_FILES ${_LIBFILE_RELEASE})
+ unset(_LIBFILE_RELEASE CACHE)
+
+ # Add debug configuration properties.
+ if(@LIBVPX_CONFIG_DEBUG@)
+ find_library(_LIBFILE_DEBUG NAMES vpx@LIBVPX_CRT_SUFFIX@d PATHS "${_IMPORT_PREFIX}/debug/lib/" NO_DEFAULT_PATH)
+ set_property(TARGET unofficial::libvpx::libvpx
+ APPEND PROPERTY IMPORTED_CONFIGURATIONS DEBUG)
+ set_target_properties(unofficial::libvpx::libvpx PROPERTIES
+ IMPORTED_LOCATION_DEBUG ${_LIBFILE_DEBUG})
+ list(APPEND _IMPORT_CHECK_FILES ${_LIBFILE_DEBUG})
+ unset(_LIBFILE_DEBUG CACHE)
+ endif()
+
+ # Check header and library files are present.
+ foreach(file ${_IMPORT_CHECK_FILES} )
+ if(NOT EXISTS "${file}" )
+ message(FATAL_ERROR "unofficial::libvpx::libvpx references the file
+ \"${file}\"
+but this file does not exist. Possible reasons include:
+* The file was deleted, renamed, or moved to another location.
+* An install or uninstall procedure did not complete successfully.
+")
+ endif()
+ endforeach()
+ unset(_IMPORT_CHECK_FILES)
+endif()
|
