Use Opus CMake #4875 (#6007)

This commit is contained in:
Marcus Asteborg 2019-04-09 09:56:02 -07:00 committed by Phil Christensen
parent 68d1d2b1eb
commit 8a1c4fce30
4 changed files with 22 additions and 93 deletions

View File

@ -1,3 +1,3 @@
Source: opus
Version: 1.3-1
Version: 1.3-2
Description: Totally open, royalty-free, highly versatile audio codec

View File

@ -1,14 +0,0 @@
diff --git a/win32/VS2015/opus.vcxproj b/win32/VS2015/opus.vcxproj
index 33bf706..296bc79 100644
--- a/win32/VS2015/opus.vcxproj
+++ b/win32/VS2015/opus.vcxproj
@@ -350,9 +350,6 @@
<ClCompile Include="..\..\src\mlp.c" />
<ClCompile Include="..\..\src\mlp_data.c" />
<ClCompile Include="..\..\src\opus.c" />
- <ClCompile Include="..\..\src\opus_compare.c">
- <DisableSpecificWarnings>4244;%(DisableSpecificWarnings)</DisableSpecificWarnings>
- </ClCompile>
<ClCompile Include="..\..\src\opus_decoder.c" />
<ClCompile Include="..\..\src\opus_encoder.c" />
<ClCompile Include="..\..\src\opus_multistream.c" />

View File

@ -1 +0,0 @@
PACKAGE_VERSION="@OPUS_VERSION@"

View File

@ -1,84 +1,28 @@
if(VCPKG_CMAKE_SYSTEM_NAME STREQUAL WindowsStore)
message(FATAL_ERROR "UWP builds not supported")
endif()
include(vcpkg_common_functions)
set(OPUS_VERSION "1.3")
vcpkg_from_github(
OUT_SOURCE_PATH SOURCE_PATH
REPO xiph/opus
REF v1.3
SHA512 5ac067514b6471432fcd027b912dcaa765e2bdc986ea289a2aeb57660d18fa1460a0a697b9736d8e2b65eb7b72ad4fa36b9b213389fe1e64335db8e9ad51b750
HEAD_REF master
PATCHES "${CMAKE_CURRENT_LIST_DIR}/no-main.patch"
)
configure_file(
${CMAKE_CURRENT_LIST_DIR}/package_version.in
${SOURCE_PATH}/package_version
)
# Ensure proper crt linkage
file(READ ${SOURCE_PATH}/win32/VS2015/common.props OPUS_PROPS)
if(VCPKG_CRT_LINKAGE STREQUAL dynamic)
string(REPLACE ">MultiThreaded<" ">MultiThreadedDLL<" OPUS_PROPS "${OPUS_PROPS}")
string(REPLACE ">MultiThreadedDebug<" ">MultiThreadedDebugDLL<" OPUS_PROPS "${OPUS_PROPS}")
else()
string(REPLACE ">MultiThreadedDLL<" ">MultiThreaded<" OPUS_PROPS "${OPUS_PROPS}")
string(REPLACE ">MultiThreadedDebugDLL<" ">MultiThreadedDebug<" OPUS_PROPS "${OPUS_PROPS}")
endif()
file(WRITE ${SOURCE_PATH}/win32/VS2015/common.props "${OPUS_PROPS}")
if(VCPKG_LIBRARY_LINKAGE STREQUAL static)
set(RELEASE_CONFIGURATION "Release")
set(DEBUG_CONFIGURATION "Debug")
else()
set(RELEASE_CONFIGURATION "ReleaseDll")
set(DEBUG_CONFIGURATION "DebugDll")
endif()
if(TARGET_TRIPLET MATCHES "x86")
set(ARCH_DIR "Win32")
elseif(TARGET_TRIPLET MATCHES "x64")
set(ARCH_DIR "x64")
else()
message(FATAL_ERROR "Architecture not supported")
endif()
vcpkg_build_msbuild(
PROJECT_PATH ${SOURCE_PATH}/win32/VS2015/opus.vcxproj
RELEASE_CONFIGURATION ${RELEASE_CONFIGURATION}
DEBUG_CONFIGURATION ${DEBUG_CONFIGURATION}
)
if(VCPKG_LIBRARY_LINKAGE STREQUAL static)
# Install release build
file(INSTALL ${SOURCE_PATH}/win32/VS2015/${ARCH_DIR}/${RELEASE_CONFIGURATION}/opus.lib DESTINATION ${CURRENT_PACKAGES_DIR}/lib/)
# Install debug build
file(INSTALL ${SOURCE_PATH}/win32/VS2015/${ARCH_DIR}/${DEBUG_CONFIGURATION}/opus.lib DESTINATION ${CURRENT_PACKAGES_DIR}/debug/lib/)
else()
# Install release build
file(INSTALL ${SOURCE_PATH}/win32/VS2015/${ARCH_DIR}/${RELEASE_CONFIGURATION}/opus.lib DESTINATION ${CURRENT_PACKAGES_DIR}/lib/)
file(INSTALL ${SOURCE_PATH}/win32/VS2015/${ARCH_DIR}/${RELEASE_CONFIGURATION}/opus.dll DESTINATION ${CURRENT_PACKAGES_DIR}/bin/)
# Install debug build
file(INSTALL ${SOURCE_PATH}/win32/VS2015/${ARCH_DIR}/${DEBUG_CONFIGURATION}/opus.lib DESTINATION ${CURRENT_PACKAGES_DIR}/debug/lib/)
file(INSTALL ${SOURCE_PATH}/win32/VS2015/${ARCH_DIR}/${DEBUG_CONFIGURATION}/opus.dll DESTINATION ${CURRENT_PACKAGES_DIR}/debug/bin/)
endif()
OUT_SOURCE_PATH
SOURCE_PATH
REPO
xiph/opus
REF
f9d3d432d135253357ba457ecd0e4f68f12a4584
SHA512
9d77d063e0215c4f4e46b044d2f51106b3a599aeab7b1b788efa1fc79d0d2bc7780adafef6ffe6d3276f24223490898aa695cbbe36df174da9ba2317b21cb369
HEAD_REF
master)
vcpkg_configure_cmake(SOURCE_PATH ${SOURCE_PATH} PREFER_NINJA)
vcpkg_install_cmake()
vcpkg_fixup_cmake_targets(CONFIG_PATH lib/cmake/Opus)
vcpkg_copy_pdbs()
# Install headers
file(INSTALL ${SOURCE_PATH}/include DESTINATION ${CURRENT_PACKAGES_DIR}/include RENAME opus)
file(INSTALL
${SOURCE_PATH}/COPYING
DESTINATION
${CURRENT_PACKAGES_DIR}/share/opus
RENAME copyright)
if(VCPKG_LIBRARY_LINKAGE STREQUAL dynamic)
file(READ ${CURRENT_PACKAGES_DIR}/include/opus/opus_defines.h OPUS_DEFINES)
string(REPLACE "define OPUS_EXPORT" "define OPUS_EXPORT __declspec(dllimport)" OPUS_DEFINES "${OPUS_DEFINES}")
file(WRITE ${CURRENT_PACKAGES_DIR}/include/opus/opus_defines.h "${OPUS_DEFINES}")
endif()
# Handle copyright
file(INSTALL ${SOURCE_PATH}/COPYING DESTINATION ${CURRENT_PACKAGES_DIR}/share/opus RENAME copyright)
file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/lib/cmake
${CURRENT_PACKAGES_DIR}/lib/cmake
${CURRENT_PACKAGES_DIR}/debug/include)