aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMatthias C. M. Troffaes <matthias.troffaes@gmail.com>2020-06-11 10:38:22 +0100
committerGitHub <noreply@github.com>2020-06-11 02:38:22 -0700
commit6e67cb1745c68c6f7008cfa3b80496f45cbdb99c (patch)
tree314b72631cccb5be81f9bd03e7861ce2129a7dc5
parent6b32f92067ee4a81aa11172d3504588bc8427314 (diff)
downloadvcpkg-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/CONTROL2
-rw-r--r--ports/libvpx/portfile.cmake7
-rw-r--r--ports/libvpx/unofficial-libvpx-config.cmake.in49
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()