Skip to content

Commit

Permalink
Merge branch 'master' into dev/webapp-master-update
Browse files Browse the repository at this point in the history
# Conflicts:
#	libraries/networking/src/NodeList.h
#	libraries/shared/src/shared/WebRTC.h
  • Loading branch information
ctrlaltdavid committed Oct 2, 2021
2 parents 1eb36d4 + 939d095 commit c033123
Show file tree
Hide file tree
Showing 145 changed files with 268 additions and 137 deletions.
41 changes: 36 additions & 5 deletions .github/workflows/pr_build.yml
Original file line number Diff line number Diff line change
Expand Up @@ -46,6 +46,10 @@ jobs:
- os: ubuntu-18.04
build_type: android
apt-dependencies: mesa-common-dev libegl1 libglvnd-dev libdouble-conversion1 libpulse0
# Do not change the names of self-hosted runners without knowing what you are doing, as they correspond to labels that have to be set on the runner.
- os: self-hosted_debian-11_aarch64
build_type: full
apt-dependencies: qtbase5-dev qtbase5-private-dev qtwebengine5-dev qtwebengine5-dev-tools qtmultimedia5-dev libqt5opengl5-dev qtscript5-dev libqt5scripttools5 libqt5webchannel5-dev libqt5websockets5-dev qtxmlpatterns5-dev-tools qttools5-dev libqt5xmlpatterns5-dev libqt5svg5-dev qml-module-qtwebchannel build-essential cmake curl freeglut3-dev git libasound2 libasound2-dev libdouble-conversion-dev libdrm-dev libfontconfig1 libgl1-mesa-dev libglvnd-dev libharfbuzz-dev libjack-dev libjack0 libnspr4 libnss3 libpcre2-16-0 libpulse0 libsdl2-dev libssl-dev libudev-dev libxcb-xinerama0-dev libxcb-xinput0 libxcomposite1 libxcursor1 libxi-dev libxmu-dev libxrandr-dev libxslt1.1 libxtst6 make mesa-common-dev mesa-utils nodejs npm patchelf python2 python3 python3-distro xdg-user-dirs zlib1g-dev ninja-build zip
fail-fast: false
runs-on: ${{matrix.os}}
if: github.event.action != 'labeled' || github.event.label.name == 'rebuild'
Expand All @@ -59,10 +63,17 @@ jobs:
echo "APP_TARGET_NAME=$APP_NAME" >> $GITHUB_ENV
# Linux build variables
if [[ "${{ matrix.os }}" = "ubuntu-"* ]]; then
if [[ "${{ matrix.os }}" = "ubuntu-"* || "${{ matrix.os }}" = *"debian"* ]]; then
echo "PYTHON_EXEC=python3" >> $GITHUB_ENV
echo "INSTALLER_EXT=*" >> $GITHUB_ENV
echo "CMAKE_BUILD_EXTRA=-- -j3" >> $GITHUB_ENV
echo "CMAKE_BUILD_EXTRA=-- -j$(nproc)" >> $GITHUB_ENV
if [ "${{ matrix.os }}" = "self-hosted_debian-11_aarch64" ]; then
echo "VIRCADIA_USE_SYSTEM_QT=true" >> $GITHUB_ENV
echo "CI_WORKSPACE=${{runner.workspace}}" >> $GITHUB_ENV
fi
if [[ "${{ matrix.os }}" = *"aarch64" ]]; then
echo "VCPKG_FORCE_SYSTEM_BINARIES=true" >> $GITHUB_ENV
fi
if [ "${{ matrix.build_type }}" = "full" ]; then
echo "CMAKE_EXTRA=-DBUILD_TOOLS:BOOLEAN=FALSE -DHIFI_PYTHON_EXEC:FILEPATH=$(which python3)" >> $GITHUB_ENV
else
Expand Down Expand Up @@ -97,6 +108,7 @@ jobs:
mkdir $HIFI_ANDROID_PRECOMPILED
echo "INSTALLER_EXT=apk" >> $GITHUB_ENV
fi
# Configuration is broken into two steps because you can't set an env var and also reference it in the same step
- name: Configure Build Environment 2
shell: bash
Expand All @@ -114,18 +126,20 @@ jobs:
else
echo "ARTIFACT_PATTERN=*.$INSTALLER_EXT" >> $GITHUB_ENV
fi
- name: Clear Working Directory
if: startsWith(matrix.os, 'windows')
if: startsWith(matrix.os, 'windows') || contains(matrix.os, 'self-hosted')
shell: bash
working-directory: ${{runner.workspace}}
run: rm -rf ./*
- uses: actions/checkout@v1
with:
submodules: false
fetch-depth: 1

- name: Install dependencies
shell: bash
if: startsWith(matrix.os, 'ubuntu')
if: startsWith(matrix.os, 'ubuntu') || contains(matrix.os, 'debian')
run: |
echo "Installing Python Modules:"
pip3 install distro || exit 1
Expand All @@ -135,13 +149,16 @@ jobs:
echo "Installing apt packages"
sudo apt install -y ${{ matrix.apt-dependencies }} || exit 1
- name: Create Build Environment
shell: bash
run: cmake -E make_directory "${{runner.workspace}}/build"

- name: Configure CMake
working-directory: ${{runner.workspace}}/build
shell: bash
run: cmake $GITHUB_WORKSPACE -DCMAKE_BUILD_TYPE=$BUILD_TYPE -DVCPKG_BUILD_TYPE=release $CMAKE_EXTRA

- name: Compress cmake logs
if: always()
shell: bash
Expand All @@ -152,34 +169,44 @@ jobs:
TAR=tar
fi
find "$HOME/vircadia-files/vcpkg" -name '*log' -type f -print0 | $TAR --null --force-local -T - -c --xz -v -f "${{ runner.workspace }}/cmake-logs-${{ matrix.os }}-${{ github.event.number }}.tar.xz"
if [ ${{ env.CI_WORKSPACE }} ]; then
find "$CI_WORKSPACE/vircadia-files/vcpkg" -name '*log' -type f -print0 | $TAR --null --force-local -T - -c --xz -v -f "${{ runner.workspace }}/cmake-logs-${{ matrix.os }}-${{ github.event.number }}.tar.xz"
else
find "$HOME/vircadia-files/vcpkg" -name '*log' -type f -print0 | $TAR --null --force-local -T - -c --xz -v -f "${{ runner.workspace }}/cmake-logs-${{ matrix.os }}-${{ github.event.number }}.tar.xz"
fi
- name: Archive cmake logs
if: always()
uses: actions/upload-artifact@v2
with:
name: cmake-logs-${{ matrix.os }}-${{ github.event.number }}.tar.xz
path: ${{ runner.workspace }}/cmake-logs-${{ matrix.os }}-${{ github.event.number }}.tar.xz
if-no-files-found: error

- name: Build Application
if: matrix.build_type == 'full' || matrix.build_type == 'client'
working-directory: ${{runner.workspace}}/build
shell: bash
run: cmake --build . --config $BUILD_TYPE --target $APP_TARGET_NAME $CMAKE_BUILD_EXTRA

- name: Build Domain Server
if: matrix.build_type == 'full'
working-directory: ${{runner.workspace}}/build
shell: bash
run: cmake --build . --config $BUILD_TYPE --target domain-server $CMAKE_BUILD_EXTRA

- name: Build Assignment Client
if: matrix.build_type == 'full'
working-directory: ${{runner.workspace}}/build
shell: bash
run: cmake --build . --config $BUILD_TYPE --target assignment-client $CMAKE_BUILD_EXTRA

- name: Build Console
if: matrix.build_type == 'full' || matrix.os == 'windows-latest'
working-directory: ${{runner.workspace}}/build
shell: bash
run: cmake --build . --config $BUILD_TYPE --target packaged-server-console $CMAKE_BUILD_EXTRA

- name: Build Installer
if: matrix.build_type != 'android'
working-directory: ${{runner.workspace}}/build
Expand Down Expand Up @@ -218,6 +245,7 @@ jobs:
working-directory: ${{runner.workspace}}/vircadia
run: |
/usr/local/lib/android/sdk/tools/bin/sdkmanager --uninstall 'cmake;3.18.1'
- name: Build for Android + Quest
if: matrix.build_type == 'android'
shell: bash
Expand All @@ -230,18 +258,21 @@ jobs:
./gradlew -m tasks -PHIFI_ANDROID_PRECOMPILED=$HIFI_ANDROID_PRECOMPILED
# Build!
./build_android.sh
- name: Output system stats
if: ${{ always() }}
working-directory: ${{runner.workspace}}/build
shell: bash
run: |
echo "Disk usage:"
df -h
- name: Output Installer Logs
if: failure() && matrix.os == 'windows-latest'
shell: bash
working-directory: ${{runner.workspace}}/build
run: cat ./_CPack_Packages/win64/NSIS/NSISOutput.log

- name: Upload Artifact
shell: bash
working-directory: ${{runner.workspace}}/build
Expand Down
7 changes: 5 additions & 2 deletions .grenrc.js
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,8 @@ module.exports = {
"ignoreLabels": [
"enhancement",
"bugfix",
"CMake",
"unmerged-dev",
"CR Approved",
"QA Approved",
"allow-build-upload",
Expand All @@ -33,11 +35,12 @@ module.exports = {
"rebuild",
"merge right before snip"
],
"onlyMilestones": true,
"onlyMilestones": false,
"groupBy": {
"Enhancements": ["enhancement"],
"Bug Fixes": ["bugfix"],
"Docs": ["docs"]
"Docs": ["docs"],
"In Development": ["unmerged-dev"]
},
"changelogFilename": "CHANGELOG.md"
}
1 change: 1 addition & 0 deletions assignment-client/src/Agent.h
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,7 @@

#include <QtScript/QScriptEngine>
#include <QtCore/QObject>
#include <QtCore/QSharedPointer>
#include <QtCore/QUrl>
#include <QtCore/QTimer>
#include <QUuid>
Expand Down
1 change: 1 addition & 0 deletions assignment-client/src/AssignmentClient.h
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,7 @@

#include <QtCore/QCoreApplication>
#include <QtCore/QPointer>
#include <QtCore/QSharedPointer>

#include <shared/WebRTC.h>

Expand Down
1 change: 1 addition & 0 deletions assignment-client/src/AssignmentClientMonitor.h
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,7 @@
#include <QtCore/qpointer.h>
#include <QtCore/QProcess>
#include <QtCore/QDateTime>
#include <QtCore/QSharedPointer>
#include <QDir>

#include <Assignment.h>
Expand Down
1 change: 1 addition & 0 deletions assignment-client/src/assets/AssetServer.h
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,7 @@
#define hifi_AssetServer_h

#include <QtCore/QDir>
#include <QtCore/QSharedPointer>
#include <QtCore/QThreadPool>
#include <QRunnable>

Expand Down
2 changes: 2 additions & 0 deletions assignment-client/src/audio/AudioMixer.h
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,8 @@
#ifndef hifi_AudioMixer_h
#define hifi_AudioMixer_h

#include <QtCore/QSharedPointer>

#include <AABox.h>
#include <AudioHRTF.h>
#include <AudioRingBuffer.h>
Expand Down
1 change: 1 addition & 0 deletions assignment-client/src/audio/AudioMixerClientData.h
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,7 @@
#endif

#include <QtCore/QJsonObject>
#include <QtCore/QSharedPointer>

#include <AABox.h>
#include <AudioHRTF.h>
Expand Down
4 changes: 1 addition & 3 deletions assignment-client/src/audio/AvatarAudioStream.h
Original file line number Diff line number Diff line change
Expand Up @@ -23,9 +23,7 @@ class AvatarAudioStream : public PositionalAudioStream {
AvatarAudioStream(bool isStereo, int numStaticJitterFrames = -1);

private:
// disallow copying of AvatarAudioStream objects
AvatarAudioStream(const AvatarAudioStream&);
AvatarAudioStream& operator= (const AvatarAudioStream&);
Q_DISABLE_COPY(AvatarAudioStream)

int parseStreamProperties(PacketType type, const QByteArray& packetAfterSeqNum, int& numAudioSamples) override;
};
Expand Down
2 changes: 2 additions & 0 deletions assignment-client/src/avatars/AvatarMixer.h
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,8 @@
#ifndef hifi_AvatarMixer_h
#define hifi_AvatarMixer_h

#include <QtCore/QSharedPointer>

#include <set>
#include <shared/RateCounter.h>
#include <PortableHighResolutionClock.h>
Expand Down
1 change: 1 addition & 0 deletions assignment-client/src/avatars/AvatarMixerClientData.h
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,7 @@
#include <queue>

#include <QtCore/QJsonObject>
#include <QtCore/QSharedPointer>
#include <QtCore/QUrl>

#include "MixerAvatar.h"
Expand Down
2 changes: 2 additions & 0 deletions assignment-client/src/entities/EntityServer.h
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,8 @@

#include "../octree/OctreeServer.h"

#include <QtCore/QSharedPointer>

#include <memory>

#include <EntityItem.h>
Expand Down
2 changes: 2 additions & 0 deletions assignment-client/src/messages/MessagesMixer.h
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,8 @@
#ifndef hifi_MessagesMixer_h
#define hifi_MessagesMixer_h

#include <QtCore/QSharedPointer>

#include <ThreadedAssignment.h>

/// Handles assignments of type MessagesMixer - distribution of avatar data to various clients
Expand Down
2 changes: 2 additions & 0 deletions assignment-client/src/octree/OctreeHeadlessViewer.h
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,8 @@
#ifndef hifi_OctreeHeadlessViewer_h
#define hifi_OctreeHeadlessViewer_h

#include <QtCore/QSharedPointer>

#include <OctreeProcessor.h>
#include <OctreeQuery.h>

Expand Down
2 changes: 2 additions & 0 deletions assignment-client/src/octree/OctreeInboundPacketProcessor.h
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,8 @@
#ifndef hifi_OctreeInboundPacketProcessor_h
#define hifi_OctreeInboundPacketProcessor_h

#include <QtCore/QSharedPointer>

#include <ReceivedPacketProcessor.h>

#include "SequenceNumberStats.h"
Expand Down
1 change: 1 addition & 0 deletions assignment-client/src/octree/OctreeServer.h
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,7 @@
#include <QStringList>
#include <QDateTime>
#include <QtCore/QCoreApplication>
#include <QtCore/QSharedPointer>

#include <HTTPManager.h>

Expand Down
1 change: 1 addition & 0 deletions assignment-client/src/scripts/EntityScriptServer.h
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,7 @@
#include <vector>

#include <QtCore/QObject>
#include <QtCore/QSharedPointer>
#include <QtCore/QUuid>

#include <EntityEditPacketSender.h>
Expand Down
3 changes: 3 additions & 0 deletions cmake/macros/TargetWebRTC.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,9 @@ macro(TARGET_WEBRTC)
# set(WEBRTC_LIBRARY_DEBUG ${INSTALL_DIR}/debug/lib/libwebrtc.a)
# set(WEBRTC_LIBRARY_RELEASE ${INSTALL_DIR}/lib/libwebrtc.a)
# select_library_configurations(WEBRTC)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarch64")
# WebRTC is basically impossible to build on aarch64 Linux.
# I am looking at https://gitlab.freedesktop.org/pulseaudio/webrtc-audio-processing for an alternative.
else()
set(WEBRTC_INCLUDE_DIRS "${VCPKG_INSTALL_ROOT}/include/webrtc")
target_include_directories(${TARGET_NAME} SYSTEM PUBLIC ${WEBRTC_INCLUDE_DIRS})
Expand Down
2 changes: 1 addition & 1 deletion cmake/ports/hifi-deps/CONTROL
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
Source: hifi-deps
Version: 0.1.5-github-actions
Description: Collected dependencies for High Fidelity applications
Build-Depends: bullet3, draco, etc2comp, glad, glm, nvtt, openexr (!android), openssl (windows), opus, polyvox, tbb (!android), vhacd, webrtc (!android), zlib
Build-Depends: bullet3, draco, etc2comp, glad, glm, nvtt, openexr (!android), openssl (windows), opus, polyvox, tbb (!android), vhacd, webrtc (!android|!(linux&arm)), zlib
2 changes: 1 addition & 1 deletion cmake/ports/openvr/CONTROL
Original file line number Diff line number Diff line change
@@ -1,3 +1,3 @@
Source: openvr
Version: 1.0.16
Version: 1.16.8
Description: an API and runtime that allows access to VR hardware from multiple vendors without requiring that applications have specific knowledge of the hardware they are targeting.
4 changes: 2 additions & 2 deletions cmake/ports/openvr/portfile.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -3,8 +3,8 @@ include(vcpkg_common_functions)
vcpkg_from_github(
OUT_SOURCE_PATH SOURCE_PATH
REPO ValveSoftware/openvr
REF v1.11.11
SHA512 25bddb0e82eea091fe5101d0d3de1de7bb81b4504adc0c8d8e687d2502c0167bc5a11e68bc343d7563fb4db7c917e9d0e2ea99bc1d8016d479874b0c6bd7f121
REF v1.16.8
SHA512 bc65fd2fc2aab870c7fee98f5211b7d88cd30511ce5b23fa2ac05454969b6ee56b42e422e44a16a833b317bb1328e0ed986c926e3d78abddf5fd5788ff74de91
HEAD_REF master
)

Expand Down
1 change: 1 addition & 0 deletions domain-server/src/DomainGatekeeper.h
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,7 @@

#include <QtCore/QObject>
#include <QtNetwork/QNetworkReply>
#include <QtCore/QSharedPointer>

#include <DomainHandler.h>

Expand Down
1 change: 1 addition & 0 deletions domain-server/src/DomainServerSettingsManager.h
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,7 @@
#include <QtCore/QJsonObject>
#include <QtCore/QJsonDocument>
#include <QtNetwork/QNetworkReply>
#include <QtCore/QSharedPointer>

#include <HifiConfigVariantMap.h>
#include <HTTPManager.h>
Expand Down
4 changes: 1 addition & 3 deletions hifi_qt.py
Original file line number Diff line number Diff line change
Expand Up @@ -169,11 +169,9 @@ def __init__(self, args):

elif distro.id() == 'debian':
u_major = int( distro.major_version() )
u_minor = int( distro.minor_version() )

if u_major == 10:
#self.qtUrl = self.assets_url + '/dependencies/vcpkg/qt5-install-5.12.3-ubuntu-16.04-with-symbols.tar.gz'
self.__no_qt_package_error()
self.qtUrl = 'https://data.moto9000.moe/vircadia_packages/qt5-install-5.15.2-debian-10-aarch64.tar.xz'
elif u_major > 10:
self.__no_qt_package_error()
else:
Expand Down
9 changes: 6 additions & 3 deletions hifi_vcpkg.py
Original file line number Diff line number Diff line change
Expand Up @@ -61,7 +61,10 @@ def __init__(self, args):
self.noClean = True
else:
defaultBasePath = os.path.expanduser('~/vircadia-files/vcpkg')
self.basePath = os.getenv('HIFI_VCPKG_BASE', defaultBasePath)
if 'CI_WORKSPACE' in os.environ:
self.basePath = os.path.join(os.getenv('CI_WORKSPACE'), 'vircadia-files/vcpkg')
else:
self.basePath = os.getenv('HIFI_VCPKG_BASE', defaultBasePath)
if self.args.android:
self.basePath = os.path.join(self.basePath, 'android')
if (not os.path.isdir(self.basePath)):
Expand Down Expand Up @@ -109,8 +112,8 @@ def __init__(self, args):
elif 'Linux' == system and 'aarch64' == machine:
self.exe = os.path.join(self.path, 'vcpkg')
self.bootstrapCmds = [ os.path.join(self.path, 'bootstrap-vcpkg.sh'), '-disableMetrics' ]
self.vcpkgUrl = 'http://motofckr9k.ddns.net/vircadia_packages/vcpkg-2020.11-1_arm64.tar.xz'
self.vcpkgHash = 'f39fa1c34d2ba820954b8ce4acc05e3d0ce5fa5efe5440516ba910ff222c85c658ba4bbfc92b3fa6cbb594f99be115cda69ebe44ed38d4d3988058fb1faefbb3'
self.vcpkgUrl = self.assets_url + '/dependencies/vcpkg/vcpkg-linux_aarch64_2021.05.12.tar.xz'
self.vcpkgHash = '7abb7aa96200e3cb5a6d0ec1c6ee63aa7886df2d1fecf8f9ee41ebe4d2cea0d4143274222c4941cb7aca61e4048229fdfe9eb2cd36dd559dd26db871a3b3ed61'
self.hostTriplet = 'arm64-linux'
else:
self.exe = os.path.join(self.path, 'vcpkg')
Expand Down
1 change: 1 addition & 0 deletions ice-server/src/IceServer.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,7 @@
#include <QtCore/QTimer>
#include <QtNetwork/QNetworkReply>
#include <QtNetwork/QNetworkRequest>
#include <QtCore/QSharedPointer>

#include <LimitedNodeList.h>
#include <NetworkAccessManager.h>
Expand Down
Loading

0 comments on commit c033123

Please sign in to comment.