Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
71 commits
Select commit Hold shift + click to select a range
01860e1
Update INSTALLER.md
miaoxd Jun 24, 2022
8dda1e5
Update INSTALLER.md
miaoxd Jun 27, 2022
503cca0
Update INSTALLER.md
digisomni Jul 1, 2022
d048f18
Eliminate Transfrom dependency in AbstractAudioInterface,
namark Jul 3, 2022
c4d3dfd
Eliminate AABox dependency in PositionalAudioStream,
namark Jul 3, 2022
2d6eb16
Eliminate dependency on ReginsterMetaTypes in AudioInjectorOptions,
namark Jul 3, 2022
69efeea
Eliminate CodecPlugin dependency in InboundAudioStream,
namark Jul 3, 2022
ddca9ed
Audio library no longer depends on GUI and plugins.
namark Jul 3, 2022
0e6b140
Moved opus and pcm codec implementations to libraries,
namark Jul 3, 2022
76e62d8
New library for audio client packet handling and audio format convers…
namark Jul 3, 2022
c592257
Fixed some silly compiler errors.
namark Jul 4, 2022
17d2239
Merge pull request #1669 from miaoxd/master
digisomni Jul 5, 2022
91aa0c5
Microphone input sample type conversion for client library.
namark Jul 8, 2022
ad6a843
Another silly compilation error.
namark Jul 8, 2022
f39c124
AudioPacketHandler codec list interface.
namark Jul 8, 2022
ef8b5f1
Handling codec negotiation on mixer activation in AudioPacketHandler.
namark Jul 8, 2022
ea14b2b
Removed unused forward declaration that caused ambiguity.
namark Jul 11, 2022
bf8a8d0
Initial implementation of client library audio mixer API.
namark Jul 11, 2022
a4fb525
Using IPFS for additional android packages.
namark Jul 12, 2022
efee251
Fixed environment variable file reading code for android dependencies.
namark Jul 13, 2022
dbb9222
Fixed external asset MD5 checksums not being written to _env.
namark Jul 13, 2022
e6a5470
Disabled direct download fallbacks for external assets by default.
namark Jul 13, 2022
e2be7f8
Updated github actions to make use of out dedicated IPFS gateway when…
namark Jul 13, 2022
d21421e
Updated qt build instructions to refer to the IPFS gateway server ins…
namark Jul 13, 2022
ebfca01
Using HTTPS protocol for Vircadia IPFS gateway server.
namark Jul 13, 2022
468d323
Updated qt build documentation
namark Jul 13, 2022
5011d7f
Made qt build archive upload instruction consistent between operating…
namark Jul 13, 2022
c37d082
Small formatting fixes in qt build instructions.
namark Jul 13, 2022
28b501b
Replaced direct download links for nlohmann-json, openssl and zlib wi…
namark Jul 13, 2022
d66b3cb
Replaced QAudioFormat with simple struct in audio-client-core library,
namark Jul 18, 2022
c4a20d7
Fixed AudioFormat class qDebug output formatting.
namark Jul 20, 2022
3aa808c
Fixed unintended implicit sample type conversion in AudioPacketHandler.
namark Jul 20, 2022
1f02bf9
Fixed audio output initialization check in AudioPacketHandler.
namark Jul 20, 2022
07e4250
Moved AudioPacketHandler signal connections and handler registration …
namark Jul 20, 2022
312e881
Fixed native client library audio format validation logic.
namark Jul 20, 2022
8ce1654
Attempt to fix client library NodeList not being destroyed properly,
namark Jul 20, 2022
9a67048
Moved native client library AudioClient update timer code into audio …
namark Jul 20, 2022
82a97ca
Fixed client library audio dummy input being continuously set,
namark Jul 20, 2022
96c94cd
Fixed a forward declaration of AudioFormat to match the definition.
namark Jul 20, 2022
c40661a
Removed an unnecessary include.
namark Jul 20, 2022
b31b224
Improved AudioFormat interface to be less confusing.
namark Jul 20, 2022
3647a1a
Fixed audio output requested sample count calculation in AudioPacketH…
namark Jul 20, 2022
ba842e2
Client library vircadia_get_audio_output_data function now returns by…
namark Jul 20, 2022
da167e4
Minor typo fix.
namark Jul 20, 2022
45a7e3b
Client library unit test for sending and receiving audio.
namark Jul 20, 2022
eb0358a
Validating audio input and output data buffers in client library.
namark Jul 21, 2022
a2270d9
Client library audio API documentation.
namark Jul 21, 2022
756afbe
Fixed native client library audio unit test failing without a running…
namark Jul 21, 2022
dbaa0de
Fixed audio packet handler include guard to encompass includes.
namark Jul 21, 2022
e728500
CMake option for WebRTC audio processing.
namark Jul 21, 2022
e37d2e4
Workaround Apple Clang bug with lambdas in templates,
namark Jul 21, 2022
b73ef7f
Merged vircadia client avatars into audio, and resolved trivial confl…
namark Jul 22, 2022
14f92b3
Fixed an include guard.
namark Jul 22, 2022
dfab83d
Merge branch 'vircadia-client-audio' into vircadia-client-audio-and-a…
namark Jul 22, 2022
5bfb7e2
Separated out common data type and conversion code in audio and avata…
namark Jul 23, 2022
0d4e5b7
Merge branch 'android-ipfs-dependencies' into vircadia-client-audio-a…
namark Jul 30, 2022
3fc1337
Fixed client library audio unit test cleanup.
namark Jul 30, 2022
f294831
Audio output buffer size and injector gain client library APIs.
namark Jul 30, 2022
5293b1e
Explicitly disabled WebRTC audio processing on Android by default.
namark Jul 31, 2022
673dffb
Fixed an undefined reference error, when building with Android NDK.
namark Jul 31, 2022
6fc4e39
Removed dependencies on QtMultimedia headers from audio and audio-cli…
namark Jul 31, 2022
aa94192
Updated client library README in regards to WebRTC audio processing.
namark Jul 31, 2022
0a0e5e5
Updated client library android build instruction to include opus codec.
namark Jul 31, 2022
8f1b6bf
Struct redeclared as class confusing MSVC again,
namark Jul 31, 2022
3e6d960
Added missing headers in main library header.
namark Aug 8, 2022
df755ad
Improved doxygen configurtion, added doxygen-awesome theme,
namark Aug 8, 2022
ac9d3e0
Updated the readme to better fit the vircadia dev docs.
namark Aug 8, 2022
73a589d
Fixed doxygen warnings in client library documentation.
namark Aug 8, 2022
10aaa9f
Client library functions for node bandwidth statistics.
namark Aug 23, 2022
6e88b7c
Fixed vircadia client node list not restarting once checkin limit rea…
namark Aug 30, 2022
aa6501c
Improved client library messages subscribe function,
namark Aug 30, 2022
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 2 additions & 1 deletion .github/workflows/master_build.yml
Original file line number Diff line number Diff line change
Expand Up @@ -124,7 +124,8 @@ jobs:
sudo apt install -y ${{ matrix.apt-dependencies }} || exit 1
else # macOS
echo "Downloading MacOSX10.12 SDK.."
curl --progress-bar -L -o macOS_SDK10.12.4.tar.xz "https://cloudflare-ipfs.com/ipfs/QmTDLEYdo616YgZKSYC2mySSw8EKQWTz7CH8UyMupMBpzK?filename=macOS_SDK10.12.4.tar.xz" || exit 1
# TODO: do this in cmake or python build scripts to make use of centralized external asset configuration with fallback gateways.
curl --progress-bar -L -o macOS_SDK10.12.4.tar.xz "https://ipfs.vircadia.dev/ipfs/QmTDLEYdo616YgZKSYC2mySSw8EKQWTz7CH8UyMupMBpzK?filename=macOS_SDK10.12.4.tar.xz" || exit 1
echo " done\n"
echo "Checking MacOSX10.12 SDK.."
echo "c00e03cb64bed8d0d75d7a01c93de094b6ffaa3bc3318e7b29a9bdc354f0e29e363c454b7db89db8a3b78e9702668d1c661f1af279807de8db11accecb0ca498 macOS_SDK10.12.4.tar.xz" >> macOS_SDK10.12.4.tar.xz.checksum
Expand Down
3 changes: 2 additions & 1 deletion .github/workflows/pr_build.yml
Original file line number Diff line number Diff line change
Expand Up @@ -158,7 +158,8 @@ jobs:
sudo apt install -y ${{ matrix.apt-dependencies }} || exit 1
else # macOS
echo "Downloading MacOSX10.12 SDK.."
curl --progress-bar -L -o macOS_SDK10.12.4.tar.xz "https://cloudflare-ipfs.com/ipfs/QmTDLEYdo616YgZKSYC2mySSw8EKQWTz7CH8UyMupMBpzK?filename=macOS_SDK10.12.4.tar.xz" || exit 1
# TODO: do this in cmake or python build scripts to make use of centralized external asset configuration with fallback gateways.
curl --progress-bar -L -o macOS_SDK10.12.4.tar.xz "https://ipfs.vircadia.dev/ipfs/QmTDLEYdo616YgZKSYC2mySSw8EKQWTz7CH8UyMupMBpzK?filename=macOS_SDK10.12.4.tar.xz" || exit 1
echo " done\n"
echo "Checking MacOSX10.12 SDK.."
echo "c00e03cb64bed8d0d75d7a01c93de094b6ffaa3bc3318e7b29a9bdc354f0e29e363c454b7db89db8a3b78e9702668d1c661f1af279807de8db11accecb0ca498 macOS_SDK10.12.4.tar.xz" >> macOS_SDK10.12.4.tar.xz.checksum
Expand Down
14 changes: 14 additions & 0 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -227,11 +227,19 @@ set(BUILD_INSTALLER_OPTION ON)
set(DISABLE_QML_OPTION OFF)
set(DOWNLOAD_SERVERLESS_CONTENT_OPTION OFF)
set(ENABLE_WEBRTC_DATA_CHANNELS_OPTION OFF)
set(ENABLE_WEBRTC_AUDIO_OPTION OFF)

if (WIN32 OR (UNIX AND NOT APPLE AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64"))
set(ENABLE_WEBRTC_DATA_CHANNELS_OPTION ON)
endif()

if (WIN32 OR (UNIX AND NOT ANDROID AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64"))
# We don't yet have a working libwebrtc for android.
# WebRTC is difficult to build on aarch64 Linux.
# an alternative is https://gitlab.freedesktop.org/pulseaudio/webrtc-audio-processing.
set(ENABLE_WEBRTC_AUDIO_OPTION ON)
endif()

if (ANDROID OR UWP)
set(BUILD_SERVER_OPTION OFF)
set(BUILD_TOOLS_OPTION OFF)
Expand Down Expand Up @@ -304,13 +312,18 @@ option(
${DOWNLOAD_SERVERLESS_CONTENT_OPTION}
)
option(ENABLE_WEBRTC_DATA_CHANNELS "Use WebRTC for client-server connection in parallel with UDP" ${ENABLE_WEBRTC_DATA_CHANNELS_OPTION})
option(ENABLE_WEBRTC_AUDIO "Use WebRTC for audio processing (e.g. echo cancelation)." ${ENABLE_WEBRTC_AUDIO_OPTION})

set(PLATFORM_QT_GL OpenGL)

if (ENABLE_WEBRTC_DATA_CHANNELS)
add_compile_definitions(WEBRTC_DATA_CHANNELS=1)
endif()

if (ENABLE_WEBRTC_AUDIO)
add_compile_definitions(WEBRTC_AUDIO=1)
endif()

if (USE_KHR_ROBUSTNESS)
add_definitions(-DUSE_KHR_ROBUSTNESS)
endif()
Expand Down Expand Up @@ -338,6 +351,7 @@ MESSAGE(STATUS "Build installer: " ${BUILD_INSTALLER})
MESSAGE(STATUS "GL ES: " ${USE_GLES})
MESSAGE(STATUS "DL serverless content: " ${DOWNLOAD_SERVERLESS_CONTENT})
MESSAGE(STATUS "WebRTC Data Channels: " ${ENABLE_WEBRTC_DATA_CHANNELS})
MESSAGE(STATUS "WebRTC Audio: " ${ENABLE_WEBRTC_AUDIO})
MESSAGE(STATUS "Static standard libraries: " ${STATIC_STDLIB})
MESSAGE(STATUS "Shared internal libraries: " ${BUILD_SHARED_LIBS})

Expand Down
12 changes: 7 additions & 5 deletions INSTALLER.md
Original file line number Diff line number Diff line change
Expand Up @@ -32,22 +32,24 @@ To produce an executable installer on Windows, the following are required:
1. Extract Zip
1. Copy `Include\nsProcess.nsh` to `C:\Program Files (x86)\NSIS\Include\`
1. Copy `Plugins\nsProcess.dll` to `C:\Program Files (x86)\NSIS\Plugins\x86-ansi\`
1. Copy `Plugins\nsProcessW.dll` to `C:\Program Files (x86)\NSIS\Plugins\x86-unicode\`
1. Copy `Plugins\nsProcessW.dll` to `C:\Program Files (x86)\NSIS\Plugins\x86-unicode\` and rename the filename to `nsProcess.dll` (remove the 'W' character)

1. [InetC Plug-in for Nullsoft](http://nsis.sourceforge.net/Inetc_plug-in) - 1.0
1. Extract Zip
1. Copy `Plugin\x86-ansi\InetC.dll` to `C:\Program Files (x86)\NSIS\Plugins\x86-ansi\`
1. Copy `Plugin\x86-unicode\InetC.dll` to `C:\Program Files (x86)\NSIS\Plugins\x86-unicode\`

1. [NSISpcre Plug-in for Nullsoft](http://nsis.sourceforge.net/NSISpcre_plug-in) - 1.0
1. [NSISpcre Plug-in for Nullsoft](https://github.com/mazinsw/NSISpcre/archive/refs/heads/master.zip) - 1.0
1. Extract Zip
1. Copy `NSISpre.nsh` to `C:\Program Files (x86)\NSIS\Include\`
1. Copy `NSISpre.dll` to `C:\Program Files (x86)\NSIS\Plugins\x86-ansi\`
1. Copy `include\NSISpre.nsh` to `C:\Program Files (x86)\NSIS\Include\`
1. Copy `bin\x86-ansi\NSISpre.dll` to `C:\Program Files (x86)\NSIS\Plugins\x86-ansi\`
1. Copy `bin\x86-unicode\NSISpre.dll` to `C:\Program Files (x86)\NSIS\Plugins\x86-unicode\`


1. [nsisSlideshow Plug-in for Nullsoft](<http://wiz0u.free.fr/prog/nsisSlideshow/>) - 1.7
1. Extract Zip
1. Copy `bin\nsisSlideshow.dll` to `C:\Program Files (x86)\NSIS\Plugins\x86-ansi\`
1. Copy `bin\nsisSlideshowW.dll` to `C:\Program Files (x86)\NSIS\Plugins\x86-unicode\`
1. Copy `bin\nsisSlideshowW.dll` to `C:\Program Files (x86)\NSIS\Plugins\x86-unicode\` and rename the filename to `nsisSlideshow.dll` (remove the 'W' character)

1. [Nsisunz plug-in for Nullsoft](http://nsis.sourceforge.net/Nsisunz_plug-in)
1. Download both Zips and unzip
Expand Down
11 changes: 3 additions & 8 deletions assignment-client/src/Agent.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -475,11 +475,6 @@ void Agent::executeScript() {
packetType = PacketType::SilentAudioFrame;
}

Transform audioTransform;
auto headOrientation = scriptedAvatar->getHeadOrientation();
audioTransform.setTranslation(scriptedAvatar->getWorldPosition());
audioTransform.setRotation(headOrientation);

QByteArray encodedBuffer;
if (_encoder) {
_encoder->encode(audio, encodedBuffer);
Expand All @@ -488,7 +483,7 @@ void Agent::executeScript() {
}

AbstractAudioInterface::emitAudioPacket(encodedBuffer.data(), encodedBuffer.size(), audioSequenceNumber, false,
audioTransform, scriptedAvatar->getWorldPosition(), glm::vec3(0),
{scriptedAvatar->getWorldPosition(), scriptedAvatar->getHeadOrientation()}, scriptedAvatar->getWorldPosition(), glm::vec3(0),
packetType, _selectedCodecName);
});

Expand Down Expand Up @@ -719,7 +714,7 @@ void Agent::processAgentAvatarAudio() {
if (isPlayingRecording && !_shouldMuteRecordingAudio) {
_shouldMuteRecordingAudio = true;
}

auto audioData = _avatarSound->getAudioData();
nextSoundOutput = reinterpret_cast<const int16_t*>(audioData->rawData()
+ _numAvatarSoundSentBytes);
Expand Down Expand Up @@ -880,7 +875,7 @@ void Agent::aboutToFinish() {
{
DependencyManager::get<ScriptEngines>()->shutdownScripting();
}

DependencyManager::destroy<ScriptEngines>();

DependencyManager::destroy<AssignmentDynamicFactory>();
Expand Down
10 changes: 5 additions & 5 deletions assignment-client/src/audio/AudioMixerSlave.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -279,7 +279,7 @@ bool shouldBeSkipped(MixableStream& stream, const Node& listener,
bool shouldCheckIgnoreBox = (listenerAudioStream.isIgnoreBoxEnabled() ||
stream.positionalStream->isIgnoreBoxEnabled());
if (shouldCheckIgnoreBox &&
listenerAudioStream.getIgnoreBox().touches(stream.positionalStream->getIgnoreBox())) {
isTouching(listenerAudioStream.getIgnoreBox(), stream.positionalStream->getIgnoreBox())) {
return true;
}

Expand Down Expand Up @@ -587,7 +587,7 @@ void AudioMixerSlave::updateHRTFParameters(AudioMixerClientData::MixableStream&
glm::vec3 relativePosition = streamToAdd->getPosition() - listeningNodeStream.getPosition();

float distance = glm::max(glm::length(relativePosition), EPSILON);
float gain = isEcho ? 1.0f : computeGain(masterAvatarGain, masterInjectorGain, listeningNodeStream, *streamToAdd,
float gain = isEcho ? 1.0f : computeGain(masterAvatarGain, masterInjectorGain, listeningNodeStream, *streamToAdd,
relativePosition, distance);
float azimuth = isEcho ? 0.0f : computeAzimuth(listeningNodeStream, listeningNodeStream, relativePosition);

Expand Down Expand Up @@ -815,14 +815,14 @@ float computeAzimuth(const AvatarAudioStream& listeningNodeStream,

float rotatedSourcePositionLength2 = glm::length2(rotatedSourcePosition);
if (rotatedSourcePositionLength2 > SOURCE_DISTANCE_THRESHOLD) {

// produce an oriented angle about the y-axis
glm::vec3 direction = rotatedSourcePosition * (1.0f / fastSqrtf(rotatedSourcePositionLength2));
float angle = fastAcosf(glm::clamp(-direction.z, -1.0f, 1.0f)); // UNIT_NEG_Z is "forward"
return (direction.x < 0.0f) ? -angle : angle;

} else {
} else {
// no azimuth if they are in same spot
return 0.0f;
return 0.0f;
}
}
111 changes: 109 additions & 2 deletions cmake/ExternalAssetsConfig.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -3,19 +3,21 @@
include("${CMAKE_CURRENT_SOURCE_DIR}/cmake/macros/ExternalAssetsUtils.cmake")

set(USE_IPFS_EXTERNAL_BUILD_ASSETS true CACHE STRING "Enable IPFS gateway for external assets (default: true)")
set(USE_DIRECT_EXTERNAL_BUILD_ASSETS true CACHE STRING "Enable direct links for external assets (default: true)")
set(USE_DIRECT_EXTERNAL_BUILD_ASSETS false CACHE STRING "Enable direct links for external assets (default: false)")

set(EXTERNAL_BUILD_ASSETS_DIRECT_BASE_URLS
"https://athena-public.s3.amazonaws.com"
"http://motofckr9k.ddns.net"
"https://data.moto9000.moe"
"https://cdn-1.vircadia.com/eu-c-1/vircadia-public/dependencies/android"
"https://cdn-1.vircadia.com/eu-c-1/vircadia-public/dependencies/"
CACHE
STRING "Direct base urls for external assets"
)

set(EXTERNAL_BUILD_ASSETS_IPFS_BASE_URLS
"http://localhost:8080/ipfs"
"http://ipfs.vircadia.dev/ipfs"
"https://ipfs.vircadia.dev/ipfs"
"https://cf-ipfs.com/ipfs"
"https://gateway.ipfs.io/ipfs"
"https://cloudflare-ipfs.com/ipfs"
Expand Down Expand Up @@ -301,3 +303,108 @@ set(EXTERNAL_QT_DEBIAN_AARCH64_SHA512 "c18f8a6ff2ca091fb14947e437c3179368d85c1da
set(EXTERNAL_QT_DEBIAN_AARCH64_MD5 "097069159999c32b6cf626fe05f22e7a")
define_external_asset_urls(QT_DEBIAN_AARCH64)

set(EXTERNAL_QT_LINUX_ARMV8_LIBCPP_OPENSSL_PATCHED_PATH "qt-5.11.1_linux_armv8-libcpp_openssl_patched.tgz")
set(EXTERNAL_QT_LINUX_ARMV8_LIBCPP_OPENSSL_PATCHED_IPFS_CID "Qma2EUEymBG8KB1DGxFaD8jZZD8VC4CtpVzbSsg3CQBKYT")
set(EXTERNAL_QT_LINUX_ARMV8_LIBCPP_OPENSSL_PATCHED_MD5 "aa449d4bfa963f3bc9a9dfe558ba29df")
define_external_asset_urls(QT_LINUX_ARMV8_LIBCPP_OPENSSL_PATCHED)

set(EXTERNAL_QT_WIN_ARMV8_LIBCPP_OPENSSL_PATCHED_PATH "qt-5.11.1_win_armv8-libcpp_openssl_patched.tgz")
set(EXTERNAL_QT_WIN_ARMV8_LIBCPP_OPENSSL_PATCHED_IPFS_CID "QmPXk7uJnY7tFH1gBFPiFmnWQmvMq57Ltpg9PcbfhSk77K")
set(EXTERNAL_QT_WIN_ARMV8_LIBCPP_OPENSSL_PATCHED_MD5 "0582191cc55431aa4f660848a542883e")
define_external_asset_urls(QT_WIN_ARMV8_LIBCPP_OPENSSL_PATCHED)

set(EXTERNAL_QT_MAC_ARMV8_LIBCPP_OPENSSL_PATCHED_PATH "qt-5.11.1_osx_armv8-libcpp_openssl_patched.tgz")
set(EXTERNAL_QT_MAC_ARMV8_LIBCPP_OPENSSL_PATCHED_IPFS_CID "QmesL4YUQi1hw3LYx8FWKm43RJ9K9gmC7wanYaw9rby245")
set(EXTERNAL_QT_MAC_ARMV8_LIBCPP_OPENSSL_PATCHED_MD5 "c83cc477c08a892e00c71764dca051a0")
define_external_asset_urls(QT_MAC_ARMV8_LIBCPP_OPENSSL_PATCHED)

set(EXTERNAL_BULLET_ARMV8_LIBCPP_PATH "bullet-2.88_armv8-libcpp.tgz")
set(EXTERNAL_BULLET_ARMV8_LIBCPP_IPFS_CID "QmdRdQWXS4oxg5cS7x1BMnovfivJEkHEkrZ26Zuy7Zxy2m")
set(EXTERNAL_BULLET_ARMV8_LIBCPP_MD5 "81642779ccb110f8c7338e8739ac38a0")
define_external_asset_urls(BULLET_ARMV8_LIBCPP)

set(EXTERNAL_DRACO_ARMV8_LIBCPP_PATH "draco_armv8-libcpp.tgz")
set(EXTERNAL_DRACO_ARMV8_LIBCPP_IPFS_CID "QmQuA9gUT7DUxPPjEb95FkvkYZ3B4by5r9H3uGv8iU8ig6")
set(EXTERNAL_DRACO_ARMV8_LIBCPP_MD5 "617a80d213a5ec69fbfa21a1f2f738cd")
define_external_asset_urls(DRACO_ARMV8_LIBCPP)

set(EXTERNAL_GLAD_ARMV8_LIBCPP_PATH "glad_armv8-libcpp.zip")
set(EXTERNAL_GLAD_ARMV8_LIBCPP_IPFS_CID "QmVpvmDg9MEPudkfKTDJfPZg4ckq1jcUQzhZ1YyBiNs2TR")
set(EXTERNAL_GLAD_ARMV8_LIBCPP_MD5 "a8ee8584cf1ccd34766c7ddd9d5e5449")
define_external_asset_urls(GLAD_ARMV8_LIBCPP)

set(EXTERNAL_GVRSDK_PATH "gvrsdk_v1.101.0.tgz")
set(EXTERNAL_GVRSDK_IPFS_CID "QmbPZqU7dKoQEARUbF6ztcSyPWN5LW6VPzfATjhL6x2aN3")
set(EXTERNAL_GVRSDK_MD5 "57fd02baa069176ba18597a29b6b4fc7")
define_external_asset_urls(GVRSDK)

set(EXTERNAL_NVTT_ARMV8_LIBCPP_PATH "nvtt_armv8-libcpp.zip")
set(EXTERNAL_NVTT_ARMV8_LIBCPP_IPFS_CID "QmcxwNX5HPVqJ9Xbqyk7vWe9i2skm2kPp7gd9MMHwJ7y8T")
set(EXTERNAL_NVTT_ARMV8_LIBCPP_MD5 "eb46d0b683e66987190ed124aabf8910")
define_external_asset_urls(NVTT_ARMV8_LIBCPP)

set(EXTERNAL_OVR_SDK_MOBILE_PATH "ovr_sdk_mobile_1.37.0.zip")
set(EXTERNAL_OVR_SDK_MOBILE_IPFS_CID "Qmek4kWXEMiGx7vyn5ntLAKtB7uVaAaGUbYcRown1b9KLj")
set(EXTERNAL_OVR_SDK_MOBILE_MD5 "6040e1966f335a3e5015295154cd7383")
define_external_asset_urls(OVR_SDK_MOBILE)

set(EXTERNAL_OVR_PLATFORM_SDK_ANDROID_PATH "ovr_platform_sdk_23.0.0.zip")
set(EXTERNAL_OVR_PLATFORM_SDK_ANDROID_IPFS_CID "QmW2CamwqPd3mAz5KtCsbnoFz17pJw8vCyvLXmRa7m7WZ4")
set(EXTERNAL_OVR_PLATFORM_SDK_ANDROID_MD5 "29d02b560f60d0fa7b8a64cd965dd55b")
define_external_asset_urls(OVR_PLATFORM_SDK_ANDROID)

set(EXTERNAL_POLYVOX_ARMV8_LIBCPP_PATH "polyvox_armv8-libcpp.tgz")
set(EXTERNAL_POLYVOX_ARMV8_LIBCPP_IPFS_CID "QmXHgaQ3wo3GHSGbxPQo26twARQUtE9uQpDJqW5HxsBm9A")
set(EXTERNAL_POLYVOX_ARMV8_LIBCPP_MD5 "dba88b3a098747af4bb169e9eb9af57e")
define_external_asset_urls(POLYVOX_ARMV8_LIBCPP)

set(EXTERNAL_TBB_ARMV8_LIBCPP_PATH "tbb-2018_U1_armv8_libcpp.tgz")
set(EXTERNAL_TBB_ARMV8_LIBCPP_IPFS_CID "QmWB2BAitm8N2iECVYg56LZAVs8SqvGRzDkrdY4wGxxk13")
set(EXTERNAL_TBB_ARMV8_LIBCPP_MD5 "20768f298f53b195e71b414b0ae240c4")
define_external_asset_urls(TBB_ARMV8_LIBCPP)

set(EXTERNAL_CODECSDK_ANDROID_ARMV8_PATH "codecSDK-android_armv8-2.0.zip")
set(EXTERNAL_CODECSDK_ANDROID_ARMV8_IPFS_CID "QmWP6AZizmuDkMboFW78qxAWEhQZYriXP5tg28iCZkFCxL")
set(EXTERNAL_CODECSDK_ANDROID_ARMV8_MD5 "1cbef929675818fc64c4101b72f84a6a")
define_external_asset_urls(CODECSDK_ANDROID_ARMV8)

set(EXTERNAL_ETC2COMP_PATCHED_ARMV8_LIBCPP_PATH "etc2comp-patched-armv8-libcpp.tgz")
set(EXTERNAL_ETC2COMP_PATCHED_ARMV8_LIBCPP_IPFS_CID "QmZSCzQsTs7EsdoskNZDz9coywhzbWV1d8PP192rKCBVte")
set(EXTERNAL_ETC2COMP_PATCHED_ARMV8_LIBCPP_MD5 "14b02795d774457a33bbc60e00a786bc")
define_external_asset_urls(ETC2COMP_PATCHED_ARMV8_LIBCPP)

set(EXTERNAL_BREAKPAD_PATH "breakpad.tgz")
set(EXTERNAL_BREAKPAD_IPFS_CID "QmSTohJ6X1L5MNyPs98izFRKzm1tt3sLPytoJVNo9ehz6B")
set(EXTERNAL_BREAKPAD_MD5 "ddcb23df336b08017042ba4786db1d9e")
define_external_asset_urls(BREAKPAD)

set(EXTERNAL_WEBRTC_ANDROID_PATH "webrtc-20190626-android.tar.gz")
set(EXTERNAL_WEBRTC_ANDROID_IPFS_CID "QmcwRmgYmfyFyQ2Y8bhAw8aH5BQ63R9HBrNiRAUVWroEoE")
set(EXTERNAL_WEBRTC_ANDROID_MD5 "e2dccd3d8efdcba6d428c87ba7fb2a53")
define_external_asset_urls(WEBRTC_ANDROID)

set(EXTERNAL_NLOHMANN_JSON_JSONHPP_PATH "nlohmann-json-v3.3.0/json.hpp")
set(EXTERNAL_NLOHMANN_JSON_JSONHPP_IPFS_CID "QmRe7unCwvNjzmt7CExnphS13Ltnk8WBSmNqHmS3VTmBFs")
set(EXTERNAL_NLOHMANN_JSON_JSONHPP_SHA512 "c4e4bb84d1488f87a02c4e12409491225e345cc508e6dbbee1a3542fbd4953052c256d0fe78c4d3ce02d44c3a2155fe66f0c8a93a3851ddf94fec4f9f3fd6918")
define_external_asset_urls(NLOHMANN_JSON_JSONHPP)

set(EXTERNAL_NLOHMANN_JSON_LICENSE_PATH "nlohmann-json-v3.3.0/LICENSE.MIT")
set(EXTERNAL_NLOHMANN_JSON_LICENSE_IPFS_CID "QmRSAu3zMMfoZAdpU8nhN5hnJMHFBsP5X3vxGGgTwUfiXD")
set(EXTERNAL_NLOHMANN_JSON_LICENSE_SHA512 "0fdb404547467f4523579acde53066badf458504d33edbb6e39df0ae145ed27d48a720189a60c225c0aab05f2aa4ce4050dcb241b56dc693f7ee9f54c8728a75")
define_external_asset_urls(NLOHMANN_JSON_LICENSE)

set(EXTERNAL_OPENSSL_102S_PATH "openssl-1.0.2s.tar.gz")
set(EXTERNAL_OPENSSL_102S_IPFS_CID "QmXRKtBhXJbYJm2FhrVobYo7sboU5V5C8xXMc3ryNs6z8F")
set(EXTERNAL_OPENSSL_102S_SHA512 "9f745452c4f777df694158e95003cde78a2cf8199bc481a563ec36644664c3c1415a774779b9791dd18f2aeb57fa1721cb52b3db12d025955e970071d5b66d2a")
define_external_asset_urls(OPENSSL_102S)

set(EXTERNAL_OPENSSL_111H_PATH "openssl-1.1.1h.tar.gz")
set(EXTERNAL_OPENSSL_111H_IPFS_CID "QmYks763hXmjvMooXx3y2gi75RVGB3KbbcCFqPmouu9gWk")
set(EXTERNAL_OPENSSL_111H_SHA512 "da50fd99325841ed7a4367d9251c771ce505a443a73b327d8a46b2c6a7d2ea99e43551a164efc86f8743b22c2bdb0020bf24a9cbd445e9d68868b2dc1d34033a")
define_external_asset_urls(OPENSSL_111H)

set(EXTERNAL_ZLIB_PATH "zlib-1.2.11.tar.gz")
set(EXTERNAL_ZLIB_IPFS_CID "QmVUxkKQnLaiWK7nSwMFQ97LYSeGuwtRFjhw9ooMpJd5Gr")
set(EXTERNAL_ZLIB_SHA512 "73fd3fff4adeccd4894084c15ddac89890cd10ef105dd5e1835e1e9bbb6a49ff229713bd197d203edfa17c2727700fce65a2a235f07568212d820dca88b528ae")
define_external_asset_urls(ZLIB)

1 change: 1 addition & 0 deletions cmake/macros/ExternalAssetsUtils.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,7 @@ macro(define_external_asset_urls ASSETNAME)

file(WRITE "${CMAKE_CURRENT_BINARY_DIR}/_env/EXTERNAL_${ASSETNAME}_URLS.txt" "${EXTERNAL_${ASSETNAME}_URLS}")
file(WRITE "${CMAKE_CURRENT_BINARY_DIR}/_env/EXTERNAL_${ASSETNAME}_SHA512.txt" "${EXTERNAL_${ASSETNAME}_SHA512}")
file(WRITE "${CMAKE_CURRENT_BINARY_DIR}/_env/EXTERNAL_${ASSETNAME}_MD5.txt" "${EXTERNAL_${ASSETNAME}_MD5}")

endmacro(define_external_asset_urls)

17 changes: 10 additions & 7 deletions cmake/ports/nlohmann-json/portfile.cmake
Original file line number Diff line number Diff line change
@@ -1,17 +1,20 @@
include(vcpkg_common_functions)

set(SOURCE_VERSION 3.3.0)
file(READ "${VCPKG_ROOT_DIR}/_env/EXTERNAL_NLOHMANN_JSON_JSONHPP_URLS.txt" EXTERNAL_NLOHMANN_JSON_JSONHPP_URLS)
file(READ "${VCPKG_ROOT_DIR}/_env/EXTERNAL_NLOHMANN_JSON_LICENSE_URLS.txt" EXTERNAL_NLOHMANN_JSON_LICENSE_URLS)
file(READ "${VCPKG_ROOT_DIR}/_env/EXTERNAL_NLOHMANN_JSON_JSONHPP_SHA512.txt" EXTERNAL_NLOHMANN_JSON_JSONHPP_SHA512)
file(READ "${VCPKG_ROOT_DIR}/_env/EXTERNAL_NLOHMANN_JSON_LICENSE_SHA512.txt" EXTERNAL_NLOHMANN_JSON_LICENSE_SHA512)

vcpkg_download_distfile(HEADER
URLS "https://github.com/nlohmann/json/releases/download/v${SOURCE_VERSION}/json.hpp"
FILENAME "nlohmann-json-${SOURCE_VERSION}.hpp"
SHA512 c4e4bb84d1488f87a02c4e12409491225e345cc508e6dbbee1a3542fbd4953052c256d0fe78c4d3ce02d44c3a2155fe66f0c8a93a3851ddf94fec4f9f3fd6918
URLS ${EXTERNAL_NLOHMANN_JSON_JSONHPP_URLS}
FILENAME "nlohmann-json.hpp"
SHA512 ${EXTERNAL_NLOHMANN_JSON_JSONHPP_SHA512}
)

vcpkg_download_distfile(LICENSE
URLS "https://github.com/nlohmann/json/raw/v${SOURCE_VERSION}/LICENSE.MIT"
FILENAME "nlohmann-json-LICENSE-${SOURCE_VERSION}.txt"
SHA512 0fdb404547467f4523579acde53066badf458504d33edbb6e39df0ae145ed27d48a720189a60c225c0aab05f2aa4ce4050dcb241b56dc693f7ee9f54c8728a75
URLS ${EXTERNAL_NLOHMANN_JSON_LICENSE_URLS}
FILENAME "nlohmann-json-LICENSE.txt"
SHA512 ${EXTERNAL_NLOHMANN_JSON_LICENSE_SHA512}
)

file(INSTALL ${HEADER} DESTINATION ${CURRENT_PACKAGES_DIR}/include/nlohmann RENAME json.hpp)
Expand Down
8 changes: 6 additions & 2 deletions cmake/ports/openssl-unix/portfile.cmake
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
include(vcpkg_common_functions)


if(VCPKG_CMAKE_SYSTEM_NAME STREQUAL "WindowsStore" OR NOT VCPKG_CMAKE_SYSTEM_NAME)
message(FATAL_ERROR "This port is only for openssl on Unix-like systems")
endif()
Expand All @@ -16,12 +17,15 @@ endif()

vcpkg_find_acquire_program(PERL)

file(READ "${VCPKG_ROOT_DIR}/_env/EXTERNAL_OPENSSL_102S_URLS.txt" EXTERNAL_OPENSSL_102S_URLS)
file(READ "${VCPKG_ROOT_DIR}/_env/EXTERNAL_OPENSSL_102S_SHA512.txt" EXTERNAL_OPENSSL_102S_SHA512)

set(OPENSSL_VERSION 1.0.2s)

vcpkg_download_distfile(OPENSSL_SOURCE_ARCHIVE
URLS "https://www.openssl.org/source/openssl-${OPENSSL_VERSION}.tar.gz" "https://www.openssl.org/source/old/1.0.2/openssl-${OPENSSL_VERSION}.tar.gz"
URLS ${EXTERNAL_OPENSSL_102S_URLS}
FILENAME "openssl-${OPENSSL_VERSION}.tar.gz"
SHA512 9f745452c4f777df694158e95003cde78a2cf8199bc481a563ec36644664c3c1415a774779b9791dd18f2aeb57fa1721cb52b3db12d025955e970071d5b66d2a
SHA512 ${EXTERNAL_OPENSSL_102S_SHA512}
)

vcpkg_extract_source_archive_ex(
Expand Down
Loading