mirror of
https://github.com/lubosz/overte.git
synced 2025-04-07 15:22:09 +02:00
Merge pull request #938 from vircadia/feature/qt-update
Update to Qt 5.15.2
This commit is contained in:
commit
5ec026255c
21 changed files with 448 additions and 726 deletions
2
.github/workflows/master_build.yml
vendored
2
.github/workflows/master_build.yml
vendored
|
@ -35,7 +35,7 @@ jobs:
|
|||
include:
|
||||
- os: ubuntu-18.04
|
||||
build_type: full
|
||||
apt-dependencies: mesa-common-dev libegl1 libglvnd-dev libdouble-conversion1 libpulse0
|
||||
apt-dependencies: mesa-common-dev libegl1 libglvnd-dev libdouble-conversion1 libpulse0 libsnappy1v5 libwebpdemux2 libwebpmux3
|
||||
fail-fast: false
|
||||
runs-on: ${{matrix.os}}
|
||||
steps:
|
||||
|
|
2
.github/workflows/pr_build.yml
vendored
2
.github/workflows/pr_build.yml
vendored
|
@ -40,7 +40,7 @@ jobs:
|
|||
build_type: client
|
||||
- os: ubuntu-18.04
|
||||
build_type: full
|
||||
apt-dependencies: mesa-common-dev libegl1 libglvnd-dev libdouble-conversion1 libpulse0
|
||||
apt-dependencies: mesa-common-dev libegl1 libglvnd-dev libdouble-conversion1 libpulse0 libsnappy1v5 libwebpdemux2 libwebpmux3
|
||||
- os: ubuntu-18.04
|
||||
build_type: android
|
||||
apt-dependencies: mesa-common-dev libegl1 libglvnd-dev libdouble-conversion1 libpulse0
|
||||
|
|
42
BUILD.md
42
BUILD.md
|
@ -1,6 +1,6 @@
|
|||
# General Build Information
|
||||
|
||||
*Last Updated on December 21, 2020*
|
||||
*Last Updated on March 8, 2021*
|
||||
|
||||
### OS Specific Build Guides
|
||||
|
||||
|
@ -11,7 +11,7 @@
|
|||
|
||||
### Dependencies
|
||||
- [git](https://git-scm.com/downloads): >= 1.6
|
||||
- [CMake](https://cmake.org/download/): 3.9
|
||||
- [CMake](https://cmake.org/download/): 3.9 (or greater up to 3.18.x)
|
||||
- [Python](https://www.python.org/downloads/): 3.6 or higher
|
||||
- [Node.JS](https://nodejs.org/en/): >= 12.13.1 LTS
|
||||
- Used to build the Screen Sharing executable.
|
||||
|
@ -42,30 +42,54 @@ Vircadia uses CMake to generate build files and project files for your platform.
|
|||
|
||||
#### Qt
|
||||
|
||||
CMake will download Qt 5.12.3 using vcpkg.
|
||||
CMake will download Qt 5.15.2 using vcpkg.
|
||||
|
||||
To override this (i.e. use an installed Qt configuration - you will need to set a QT_CMAKE_PREFIX_PATH environment variable pointing to your Qt **lib/cmake** folder.
|
||||
This can either be entered directly into your shell session before you build or in your shell profile (e.g.: ~/.bash_profile, ~/.bashrc, ~/.zshrc - this depends on your shell and environment). The path it needs to be set to will depend on where and how Qt5 was installed. e.g.
|
||||
To override this - i.e., use an installed Qt configuration - you need to set a QT_CMAKE_PREFIX_PATH environment variable pointing to your Qt **lib/cmake** folder.
|
||||
This can either be entered directly into your shell session before you build or in your shell profile (e.g.: ~/.bash_profile, ~/.bashrc, ~/.zshrc - this depends on your shell and environment). The path it needs to be set to will depend on where and how Qt5 was installed.
|
||||
|
||||
For example, under Linux:
|
||||
```bash
|
||||
export QT_CMAKE_PREFIX_PATH=/usr/local/Qt5.12.3/gcc_64/lib/cmake
|
||||
export QT_CMAKE_PREFIX_PATH=/usr/local/qt/5.12.3/clang_64/lib/cmake/
|
||||
export QT_CMAKE_PREFIX_PATH=/usr/local/Cellar/qt5/5.12.3/lib/cmake
|
||||
export QT_CMAKE_PREFIX_PATH=/usr/local/Qt5.15.2/gcc_64/lib/cmake
|
||||
export QT_CMAKE_PREFIX_PATH=/usr/local/qt/5.15.2/clang_64/lib/cmake/
|
||||
export QT_CMAKE_PREFIX_PATH=/usr/local/Cellar/qt5/5.15.2/lib/cmake
|
||||
export QT_CMAKE_PREFIX_PATH=/usr/local/opt/qt5/lib/cmake
|
||||
```
|
||||
|
||||
For example, under Windows:
|
||||
|
||||
set QT_CMAKE_PREFIX_PATH=C:\Qt\5.15.2\msvc2019_64\lib\cmake
|
||||
|
||||
For example, under OSX:
|
||||
|
||||
export QT_CMAKE_PREFIX_PATH=/usr/local/Cellar/qt5/5.15.2/lib/cmake
|
||||
|
||||
Note: You only need the following components checked under Qt 5.15.2 (select the "Custom Installation" option):
|
||||
"MSVC 2019 64-bit", "Qt WebEngine", and "Qt Script (Deprecated)".
|
||||
|
||||
Note: Installing the sources is optional but recommended if you have room for them (~3GB). You may also want the Qt debug
|
||||
information files (~7GB).
|
||||
|
||||
Note: Installing Qt Creator is optional but recommended if you will be editing QML files.
|
||||
|
||||
#### VCPKG
|
||||
|
||||
Vircadia uses vcpkg to download and build dependencies.
|
||||
You do not need to install vcpkg.
|
||||
|
||||
Building the dependencies can be lengthy and the resulting files will be stored in your OS temp directory.
|
||||
However, those files can potentially get cleaned up by the OS, so in order to avoid this and having to redo the lengthy build step, you can set the following environment variable:
|
||||
However, those files can potentially get cleaned up by the OS, so in order to avoid this and having to redo the lengthy build step, you can set an environment variable.
|
||||
|
||||
Linux:
|
||||
|
||||
```bash
|
||||
export HIFI_VCPKG_BASE=/path/to/directory
|
||||
```
|
||||
|
||||
Windows:
|
||||
```bash
|
||||
set HIFI_VCPKG_BASE=/path/to/directory
|
||||
```
|
||||
|
||||
Where `/path/to/directory` is the path to a directory where you wish the build files to get stored.
|
||||
|
||||
#### Generating Build Files
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
# Build OSX
|
||||
|
||||
*Last Updated on August 26, 2020*
|
||||
*Last Updated on January 16, 2021*
|
||||
|
||||
Please read the [general build guide](BUILD.md) for information on dependencies required for all platforms. Only macOS specific instructions are found in this document.
|
||||
|
||||
|
@ -12,6 +12,8 @@ Please read the [general build guide](BUILD.md) for information on dependencies
|
|||
brew install cmake openssl npm
|
||||
```
|
||||
|
||||
Note: cmake versions > 3.18.x have known problems building Vircadia, so alternatively you can download cmake 3.18.4 (or earlier versions) from [Github](https://github.com/Kitware/CMake/releases).
|
||||
|
||||
### Python 3
|
||||
|
||||
Download an install Python 3.6.6 or higher from [here](https://www.python.org/downloads/).
|
||||
|
|
34
BUILD_WIN.md
34
BUILD_WIN.md
|
@ -1,30 +1,25 @@
|
|||
# Build Windows
|
||||
|
||||
*Last Updated on May 17, 2020*
|
||||
*Last Updated on 15 Apr 2021*
|
||||
|
||||
This is a stand-alone guide for creating your first Vircadia build for Windows 64-bit.
|
||||
|
||||
Note: We are now using Visual Studio 2017 or 2019 and Qt 5.12.3.
|
||||
Note: We are now using Visual Studio 2019 and Qt 5.15.2.
|
||||
If you are upgrading from previous versions, do a clean uninstall of those versions before going through this guide.
|
||||
|
||||
**Note: The prerequisites will require about 10 GB of space on your drive. You will also need a system with at least 8GB of main memory.**
|
||||
|
||||
### Step 1. Visual Studio & Python 3.x
|
||||
|
||||
If you don’t have Community or Professional edition of Visual Studio, download [Visual Studio Community 2019](https://visualstudio.microsoft.com/vs/). If you have Visual Studio 2017, you are not required to download Visual Studio 2019.
|
||||
If you don't have Community or Professional edition of Visual Studio 2019, download [Visual Studio Community 2019](https://visualstudio.microsoft.com/vs/). If you have Visual Studio 2017, you need to download Visual Studio 2019.
|
||||
|
||||
When selecting components, check "Desktop development with C++".
|
||||
|
||||
If you do not already have a Python 3.x development environment installed and want to install it with Visual Studio, check "Python Development". If you already have Visual Studio installed and need to add Python, open the "Add or remove programs" control panel and find the "Microsoft Visual Studio Installer". Select it and click "Modify". In the installer, select "Modify" again, then check "Python Development" and allow the installer to apply the changes.
|
||||
|
||||
On the right on the Summary toolbar, select the following components based on your Visual Studio version.
|
||||
#### Visual Studio 2019
|
||||
|
||||
#### If you're installing Visual Studio 2017
|
||||
|
||||
* Windows 8.1 SDK and UCRT SDK
|
||||
* VC++ 2015.3 v14.00 (v140) toolset for desktop
|
||||
|
||||
#### If you're installing Visual Studio 2019
|
||||
On the right on the Summary toolbar, select the following components.
|
||||
|
||||
* MSVC v142 - VS 2019 C++ X64/x86 build tools
|
||||
* MSVC v141 - VS 2017 C++ x64/x86 build tools
|
||||
|
@ -56,8 +51,8 @@ Install version 10.15.0 LTS (or greater) of [Node.JS and NPM](<https://nodejs.or
|
|||
### Step 5. (Optional) Install Qt
|
||||
|
||||
If you would like to compile Qt instead of using the precompiled package provided during CMake, you can do so now. Install version 5.12.3 of [Qt](<https://www.qt.io/download-open-source>), as well as the following packages:
|
||||
* Qt 5.12.3
|
||||
* MSVC 2017 64-bit
|
||||
* Qt 5.15.2
|
||||
* MSVC 2019 64-bit
|
||||
* Qt WebEngine
|
||||
* Qt Script (Deprecated)
|
||||
|
||||
|
@ -66,26 +61,26 @@ For convenience, you may also want the "Qt Debug Information" and "Sources" pack
|
|||
You'll need to create the environment variable that CMake uses to find your system's Qt install.
|
||||
|
||||
To create this variable:
|
||||
* Navigate to 'Edit the System Environment Variables' through the start menu.
|
||||
* Navigate to 'Edit the System Environment Variables' through the Start menu.
|
||||
* Click on 'Environment Variables'
|
||||
* Select 'New'
|
||||
* Set "Variable name" to `QT_CMAKE_PREFIX_PATH`
|
||||
* Set "Variable value" to `%QT_INSTALL_DIR%\5.12.3\msvc2017_64\lib\cmake`, where `%QT_INSTALL_DIR%` is the directory you specified for Qt's installation. The default is `C:\Qt`.
|
||||
* Set "Variable value" to `%QT_INSTALL_DIR%\5.15.2\msvc2019_64\lib\cmake`, where `%QT_INSTALL_DIR%` is the directory you specified for Qt's installation. The default is `C:\Qt`.
|
||||
|
||||
### Step 6. Create VCPKG environment variable
|
||||
In the next step, you will use CMake to build Vircadia. By default, the CMake process builds dependency files in Windows' `%TEMP%` directory, which is periodically cleared by the operating system. To prevent you from having to re-build the dependencies in the event that Windows clears that directory, we recommend that you create a `HIFI_VCPKG_BASE` environment variable linked to a directory somewhere on your machine. That directory will contain all dependency files until you manually remove them.
|
||||
|
||||
To create this variable:
|
||||
* Navigate to 'Edit the System Environment Variables' Through the start menu.
|
||||
* Navigate to 'Edit the System Environment Variables' Through the Start menu.
|
||||
* Click on 'Environment Variables'
|
||||
* Select 'New'
|
||||
* Set "Variable name" to `HIFI_VCPKG_BASE`
|
||||
* Set "Variable value" to any directory that you have control over.
|
||||
|
||||
Additionally, if you have Visual Studio 2019 installed and _only_ Visual Studio 2019 (i.e. you do not have Visual Studio 2017 installed) you must add an additional environment variable `HIFI_VCPKG_BOOTSTRAP` that will fix a bug in our `vcpkg` pre-build step.
|
||||
Additionally, if you have Visual Studio 2019 installed and _only_ Visual Studio 2019 (i.e., you do not have Visual Studio 2017 installed) you must add an additional environment variable `HIFI_VCPKG_BOOTSTRAP` that will fix a bug in our `vcpkg` pre-build step.
|
||||
|
||||
To create this variable:
|
||||
* Navigate to 'Edit the System Environment Variables' Through the start menu.
|
||||
* Navigate to 'Edit the System Environment Variables' through the Start menu.
|
||||
* Click on 'Environment Variables'
|
||||
* Select 'New'
|
||||
* Set "Variable name" to `HIFI_VCPKG_BOOTSTRAP`
|
||||
|
@ -98,10 +93,7 @@ Run Command Prompt from Start and run the following commands:
|
|||
`mkdir build`
|
||||
`cd build`
|
||||
|
||||
#### If you're using Visual Studio 2017,
|
||||
Run `cmake .. -G "Visual Studio 15 Win64"`.
|
||||
|
||||
#### If you're using Visual Studio 2019,
|
||||
#### Visual Studio 2019
|
||||
Run `cmake .. -G "Visual Studio 16 2019" -A x64`.
|
||||
|
||||
Where `%VIRCADIA_DIR%` is the directory for the Vircadia repository.
|
||||
|
|
|
@ -3,6 +3,7 @@
|
|||
#
|
||||
# Created by Stephen Birarda on 1/15/16.
|
||||
# Copyright 2014 High Fidelity, Inc.
|
||||
# Copyright 2020 Vircadia contributors.
|
||||
#
|
||||
# Distributed under the Apache License, Version 2.0.
|
||||
# See the accompanying file LICENSE or http://www.apache.org/licenses/LICENSE-2.0.html
|
||||
|
@ -19,13 +20,13 @@ macro(manually_install_openssl_for_qt)
|
|||
find_package(OpenSSL REQUIRED)
|
||||
|
||||
install(
|
||||
FILES "${VCPKG_INSTALL_ROOT}/bin/ssleay32.dll"
|
||||
FILES "${VCPKG_INSTALL_ROOT}/bin/libcrypto-1_1-x64.dll"
|
||||
DESTINATION ${TARGET_INSTALL_DIR}
|
||||
COMPONENT ${TARGET_INSTALL_COMPONENT}
|
||||
)
|
||||
|
||||
install(
|
||||
FILES "${VCPKG_INSTALL_ROOT}/bin/libeay32.dll"
|
||||
FILES "${VCPKG_INSTALL_ROOT}/bin/libssl-1_1-x64.dll"
|
||||
DESTINATION ${TARGET_INSTALL_DIR}
|
||||
COMPONENT ${TARGET_INSTALL_COMPONENT}
|
||||
)
|
||||
|
|
|
@ -18,7 +18,7 @@ endfunction()
|
|||
|
||||
function(calculate_qt5_version result _QT_DIR)
|
||||
# All Qt5 packages have little "private" include directories named with the actual Qt version such as:
|
||||
# .../include/QtCore/5.12.3/QtCore/private
|
||||
# .../include/QtCore/5.15.2/QtCore/private
|
||||
# Sometimes we need to include these private headers for debug hackery.
|
||||
# Hence we find one of these directories and pick apart its path to determine the actual QT_VERSION.
|
||||
if (APPLE)
|
||||
|
|
|
@ -1,3 +1,3 @@
|
|||
Source: openssl-windows
|
||||
Version: 1.0.2p-1
|
||||
Version: 1.1.1h
|
||||
Description: OpenSSL is an open source project that provides a robust, commercial-grade, and full-featured toolkit for the Transport Layer Security (TLS) and Secure Sockets Layer (SSL) protocols. It is also a general-purpose cryptography library.
|
||||
|
|
|
@ -1,13 +0,0 @@
|
|||
diff --git a/Configure b/Configure
|
||||
index c98107a..77ad9d3 100644
|
||||
--- a/Configure
|
||||
+++ b/Configure
|
||||
@@ -972,7 +972,7 @@ PROCESS_ARGS:
|
||||
}
|
||||
elsif (/^--with-zlib-include=(.*)$/)
|
||||
{
|
||||
- $withargs{"zlib-include"}="-I$1";
|
||||
+ $withargs{"zlib-include"}="-I\"$1\"";
|
||||
}
|
||||
elsif (/^--with-fipsdir=(.*)$/)
|
||||
{
|
|
@ -1,25 +0,0 @@
|
|||
diff --git a/util/pl/VC-32.pl b/util/pl/VC-32.pl
|
||||
index dba96cb..5722f6e 100644
|
||||
--- a/util/pl/VC-32.pl
|
||||
+++ b/util/pl/VC-32.pl
|
||||
@@ -154,9 +154,17 @@ else
|
||||
$cflags=$opt_cflags.$base_cflags;
|
||||
}
|
||||
|
||||
-# generate symbols.pdb unconditionally
|
||||
-$app_cflag.=" /Zi /Fd\$(TMP_D)/app";
|
||||
-$lib_cflag.=" /Zi /Fd\$(TMP_D)/lib";
|
||||
+# generate symbols.pdb when building dlls and embed symbols when building static libs
|
||||
+if ($shlib)
|
||||
+ {
|
||||
+ $app_cflag.=" /Zi /Fd\$(TMP_D)/app.pdb";
|
||||
+ $lib_cflag.=" /Zi /Fd\$(TMP_D)/lib.pdb";
|
||||
+ }
|
||||
+else
|
||||
+ {
|
||||
+ $app_cflag.=" /Z7";
|
||||
+ $lib_cflag.=" /Z7";
|
||||
+ }
|
||||
$lflags.=" /debug";
|
||||
|
||||
$obj='.obj';
|
|
@ -1,23 +0,0 @@
|
|||
diff --git a/crypto/cversion.c b/crypto/cversion.c
|
||||
index bfff699..17b7912 100644
|
||||
--- a/crypto/cversion.c
|
||||
+++ b/crypto/cversion.c
|
||||
@@ -56,6 +56,9 @@
|
||||
* [including the GNU Public Licence.]
|
||||
*/
|
||||
|
||||
+#define STRINGIFY2(x) #x
|
||||
+#define STRINGIFY(x) STRINGIFY2(x)
|
||||
+
|
||||
#include "cryptlib.h"
|
||||
|
||||
#ifndef NO_WINDOWS_BRAINDEATH
|
||||
@@ -79,7 +82,7 @@ const char *SSLeay_version(int t)
|
||||
}
|
||||
if (t == SSLEAY_CFLAGS) {
|
||||
#ifdef CFLAGS
|
||||
- return (CFLAGS);
|
||||
+ return STRINGIFY(CFLAGS);
|
||||
#else
|
||||
return ("compiler: information not available");
|
||||
#endif
|
|
@ -3,7 +3,7 @@ if(VCPKG_CMAKE_SYSTEM_NAME)
|
|||
endif()
|
||||
|
||||
include(vcpkg_common_functions)
|
||||
set(OPENSSL_VERSION 1.0.2p)
|
||||
set(OPENSSL_VERSION 1.1.1h)
|
||||
set(MASTER_COPY_SOURCE_PATH ${CURRENT_BUILDTREES_DIR}/src/openssl-${OPENSSL_VERSION})
|
||||
|
||||
vcpkg_find_acquire_program(PERL)
|
||||
|
@ -12,18 +12,12 @@ get_filename_component(PERL_EXE_PATH ${PERL} DIRECTORY)
|
|||
set(ENV{PATH} "$ENV{PATH};${PERL_EXE_PATH}")
|
||||
|
||||
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 "https://www.openssl.org/source/openssl-${OPENSSL_VERSION}.tar.gz" "https://www.openssl.org/source/old/1.1.1/openssl-${OPENSSL_VERSION}.tar.gz"
|
||||
FILENAME "openssl-${OPENSSL_VERSION}.tar.gz"
|
||||
SHA512 958c5a7c3324bbdc8f07dfb13e11329d9a1b4452c07cf41fbd2d42b5fe29c95679332a3476d24c2dc2b88be16e4a24744aba675a05a388c0905756c77a8a2f16
|
||||
SHA512 da50fd99325841ed7a4367d9251c771ce505a443a73b327d8a46b2c6a7d2ea99e43551a164efc86f8743b22c2bdb0020bf24a9cbd445e9d68868b2dc1d34033a
|
||||
)
|
||||
|
||||
vcpkg_extract_source_archive(${OPENSSL_SOURCE_ARCHIVE})
|
||||
vcpkg_apply_patches(
|
||||
SOURCE_PATH ${MASTER_COPY_SOURCE_PATH}
|
||||
PATCHES ${CMAKE_CURRENT_LIST_DIR}/ConfigureIncludeQuotesFix.patch
|
||||
${CMAKE_CURRENT_LIST_DIR}/STRINGIFYPatch.patch
|
||||
${CMAKE_CURRENT_LIST_DIR}/EmbedSymbolsInStaticLibsZ7.patch
|
||||
)
|
||||
|
||||
vcpkg_find_acquire_program(NASM)
|
||||
get_filename_component(NASM_EXE_PATH ${NASM} DIRECTORY)
|
||||
|
@ -40,39 +34,26 @@ set(CONFIGURE_COMMAND ${PERL} Configure
|
|||
|
||||
if(VCPKG_TARGET_ARCHITECTURE STREQUAL "x86")
|
||||
set(OPENSSL_ARCH VC-WIN32)
|
||||
set(OPENSSL_DO "ms\\do_nasm.bat")
|
||||
elseif(VCPKG_TARGET_ARCHITECTURE STREQUAL "x64")
|
||||
set(OPENSSL_ARCH VC-WIN64A)
|
||||
set(OPENSSL_DO "ms\\do_win64a.bat")
|
||||
else()
|
||||
message(FATAL_ERROR "Unsupported target architecture: ${VCPKG_TARGET_ARCHITECTURE}")
|
||||
endif()
|
||||
|
||||
if(VCPKG_LIBRARY_LINKAGE STREQUAL dynamic)
|
||||
set(OPENSSL_MAKEFILE "ms\\ntdll.mak")
|
||||
else()
|
||||
set(OPENSSL_MAKEFILE "ms\\nt.mak")
|
||||
endif()
|
||||
|
||||
file(REMOVE_RECURSE ${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-rel ${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-dbg)
|
||||
|
||||
|
||||
if(NOT DEFINED VCPKG_BUILD_TYPE OR VCPKG_BUILD_TYPE STREQUAL "release")
|
||||
message(STATUS "Configure ${TARGET_TRIPLET}-rel")
|
||||
file(COPY ${MASTER_COPY_SOURCE_PATH} DESTINATION ${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-rel)
|
||||
set(SOURCE_PATH_RELEASE ${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-rel/openssl-${OPENSSL_VERSION})
|
||||
set(OPENSSLDIR_RELEASE ${CURRENT_PACKAGES_DIR})
|
||||
|
||||
message(STATUS "Configure ${TARGET_TRIPLET}-rel")
|
||||
vcpkg_execute_required_process(
|
||||
COMMAND ${CONFIGURE_COMMAND} ${OPENSSL_ARCH} "--prefix=${OPENSSLDIR_RELEASE}" "--openssldir=${OPENSSLDIR_RELEASE}" -FS
|
||||
WORKING_DIRECTORY ${SOURCE_PATH_RELEASE}
|
||||
LOGNAME configure-perl-${TARGET_TRIPLET}-${CMAKE_BUILD_TYPE}-rel
|
||||
)
|
||||
vcpkg_execute_required_process(
|
||||
COMMAND ${OPENSSL_DO}
|
||||
WORKING_DIRECTORY ${SOURCE_PATH_RELEASE}
|
||||
LOGNAME configure-do-${TARGET_TRIPLET}-${CMAKE_BUILD_TYPE}-rel
|
||||
)
|
||||
message(STATUS "Configure ${TARGET_TRIPLET}-rel done")
|
||||
|
||||
message(STATUS "Build ${TARGET_TRIPLET}-rel")
|
||||
|
@ -80,16 +61,16 @@ if(NOT DEFINED VCPKG_BUILD_TYPE OR VCPKG_BUILD_TYPE STREQUAL "release")
|
|||
# This is ok; we just do as much work as we can in parallel first, then follow up with a single-threaded build.
|
||||
make_directory(${SOURCE_PATH_RELEASE}/inc32/openssl)
|
||||
execute_process(
|
||||
COMMAND ${JOM} -k -j $ENV{NUMBER_OF_PROCESSORS} -f ${OPENSSL_MAKEFILE}
|
||||
COMMAND ${JOM} -k -j $ENV{NUMBER_OF_PROCESSORS}
|
||||
WORKING_DIRECTORY ${SOURCE_PATH_RELEASE}
|
||||
OUTPUT_FILE ${CURRENT_BUILDTREES_DIR}/build-${TARGET_TRIPLET}-rel-0-out.log
|
||||
ERROR_FILE ${CURRENT_BUILDTREES_DIR}/build-${TARGET_TRIPLET}-rel-0-err.log
|
||||
)
|
||||
vcpkg_execute_required_process(
|
||||
COMMAND nmake -f ${OPENSSL_MAKEFILE} install
|
||||
COMMAND nmake install
|
||||
WORKING_DIRECTORY ${SOURCE_PATH_RELEASE}
|
||||
LOGNAME build-${TARGET_TRIPLET}-rel-1)
|
||||
|
||||
LOGNAME build-${TARGET_TRIPLET}-rel-1
|
||||
)
|
||||
message(STATUS "Build ${TARGET_TRIPLET}-rel done")
|
||||
endif()
|
||||
|
||||
|
@ -101,39 +82,46 @@ if(NOT DEFINED VCPKG_BUILD_TYPE OR VCPKG_BUILD_TYPE STREQUAL "debug")
|
|||
set(OPENSSLDIR_DEBUG ${CURRENT_PACKAGES_DIR}/debug)
|
||||
|
||||
vcpkg_execute_required_process(
|
||||
COMMAND ${CONFIGURE_COMMAND} debug-${OPENSSL_ARCH} "--prefix=${OPENSSLDIR_DEBUG}" "--openssldir=${OPENSSLDIR_DEBUG}" -FS
|
||||
COMMAND ${CONFIGURE_COMMAND} ${OPENSSL_ARCH} --debug "--prefix=${OPENSSLDIR_DEBUG}" "--openssldir=${OPENSSLDIR_DEBUG}" -FS
|
||||
WORKING_DIRECTORY ${SOURCE_PATH_DEBUG}
|
||||
LOGNAME configure-perl-${TARGET_TRIPLET}-${CMAKE_BUILD_TYPE}-dbg
|
||||
)
|
||||
vcpkg_execute_required_process(
|
||||
COMMAND ${OPENSSL_DO}
|
||||
WORKING_DIRECTORY ${SOURCE_PATH_DEBUG}
|
||||
LOGNAME configure-do-${TARGET_TRIPLET}-${CMAKE_BUILD_TYPE}-dbg
|
||||
)
|
||||
message(STATUS "Configure ${TARGET_TRIPLET}-dbg done")
|
||||
|
||||
message(STATUS "Build ${TARGET_TRIPLET}-dbg")
|
||||
make_directory(${SOURCE_PATH_DEBUG}/inc32/openssl)
|
||||
execute_process(
|
||||
COMMAND ${JOM} -k -j $ENV{NUMBER_OF_PROCESSORS} -f ${OPENSSL_MAKEFILE}
|
||||
COMMAND ${JOM} -k -j $ENV{NUMBER_OF_PROCESSORS}
|
||||
WORKING_DIRECTORY ${SOURCE_PATH_DEBUG}
|
||||
OUTPUT_FILE ${CURRENT_BUILDTREES_DIR}/build-${TARGET_TRIPLET}-dbg-0-out.log
|
||||
ERROR_FILE ${CURRENT_BUILDTREES_DIR}/build-${TARGET_TRIPLET}-dbg-0-err.log
|
||||
)
|
||||
vcpkg_execute_required_process(
|
||||
COMMAND nmake -f ${OPENSSL_MAKEFILE} install
|
||||
COMMAND nmake install
|
||||
WORKING_DIRECTORY ${SOURCE_PATH_DEBUG}
|
||||
LOGNAME build-${TARGET_TRIPLET}-dbg-1)
|
||||
|
||||
LOGNAME build-${TARGET_TRIPLET}-dbg-1
|
||||
)
|
||||
message(STATUS "Build ${TARGET_TRIPLET}-dbg done")
|
||||
endif()
|
||||
|
||||
|
||||
file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/certs)
|
||||
file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/lib/engines-1_1)
|
||||
file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/private)
|
||||
file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/certs)
|
||||
file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/include)
|
||||
file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/lib/engines-1_1)
|
||||
file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/private)
|
||||
file(REMOVE
|
||||
${CURRENT_PACKAGES_DIR}/debug/bin/openssl.exe
|
||||
${CURRENT_PACKAGES_DIR}/debug/openssl.cnf
|
||||
${CURRENT_PACKAGES_DIR}/openssl.cnf
|
||||
${CURRENT_PACKAGES_DIR}/openssl.cnf.dist
|
||||
${CURRENT_PACKAGES_DIR}/ct_log_list.cnf
|
||||
${CURRENT_PACKAGES_DIR}/ct_log_list.cnf.dist
|
||||
${CURRENT_PACKAGES_DIR}/debug/openssl.cnf
|
||||
${CURRENT_PACKAGES_DIR}/debug/openssl.cnf.dist
|
||||
${CURRENT_PACKAGES_DIR}/debug/ct_log_list.cnf
|
||||
${CURRENT_PACKAGES_DIR}/debug/ct_log_list.cnf.dist
|
||||
${CURRENT_PACKAGES_DIR}/debug/bin/openssl.exe
|
||||
)
|
||||
|
||||
file(MAKE_DIRECTORY ${CURRENT_PACKAGES_DIR}/tools/openssl/)
|
||||
|
@ -147,14 +135,6 @@ if(VCPKG_LIBRARY_LINKAGE STREQUAL static)
|
|||
file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/bin/)
|
||||
endif()
|
||||
|
||||
file(READ "${CURRENT_PACKAGES_DIR}/include/openssl/dtls1.h" _contents)
|
||||
string(REPLACE "<winsock.h>" "<winsock2.h>" _contents "${_contents}")
|
||||
file(WRITE "${CURRENT_PACKAGES_DIR}/include/openssl/dtls1.h" "${_contents}")
|
||||
|
||||
file(READ "${CURRENT_PACKAGES_DIR}/include/openssl/rand.h" _contents)
|
||||
string(REPLACE "# include <windows.h>" "#ifndef _WINSOCKAPI_\n#define _WINSOCKAPI_\n#endif\n# include <windows.h>" _contents "${_contents}")
|
||||
file(WRITE "${CURRENT_PACKAGES_DIR}/include/openssl/rand.h" "${_contents}")
|
||||
|
||||
vcpkg_copy_pdbs()
|
||||
|
||||
file(COPY ${CMAKE_CURRENT_LIST_DIR}/usage DESTINATION ${CURRENT_PACKAGES_DIR}/share/${PORT})
|
||||
|
|
17
hifi_qt.py
17
hifi_qt.py
|
@ -27,7 +27,7 @@ endif()
|
|||
def __init__(self, args):
|
||||
self.args = args
|
||||
self.configFilePath = os.path.join(args.build_root, 'qt.cmake')
|
||||
self.version = os.getenv('VIRCADIA_USE_QT_VERSION', '5.12.3')
|
||||
self.version = os.getenv('VIRCADIA_USE_QT_VERSION', '5.15.2')
|
||||
|
||||
self.assets_url = hifi_utils.readEnviromentVariableFromFile(args.build_root, 'EXTERNAL_BUILD_ASSETS')
|
||||
|
||||
|
@ -56,9 +56,9 @@ endif()
|
|||
cpu_architecture = platform.machine()
|
||||
|
||||
if 'Windows' == system:
|
||||
self.qtUrl = self.assets_url + '/dependencies/vcpkg/qt5-install-5.12.3-windows3.tar.gz%3FversionId=5ADqP0M0j5ZfimUHrx4zJld6vYceHEsI'
|
||||
self.qtUrl = self.assets_url + '/dependencies/vcpkg/qt5-install-5.15.2-windows.tar.gz'
|
||||
elif 'Darwin' == system:
|
||||
self.qtUrl = self.assets_url + '/dependencies/vcpkg/qt5-install-5.12.3-macos.tar.gz%3FversionId=bLAgnoJ8IMKpqv8NFDcAu8hsyQy3Rwwz'
|
||||
self.qtUrl = self.assets_url + '/dependencies/vcpkg/qt5-install-5.15.2-macos.tar.gz'
|
||||
elif 'Linux' == system:
|
||||
import distro
|
||||
dist = distro.linux_distribution()
|
||||
|
@ -68,14 +68,10 @@ endif()
|
|||
u_major = int( distro.major_version() )
|
||||
u_minor = int( distro.minor_version() )
|
||||
|
||||
if u_major == 16:
|
||||
self.qtUrl = self.assets_url + '/dependencies/vcpkg/qt5-install-5.12.3-ubuntu-16.04-with-symbols.tar.gz'
|
||||
elif u_major == 18:
|
||||
self.qtUrl = self.assets_url + '/dependencies/vcpkg/qt5-install-5.12.3-ubuntu-18.04.tar.gz'
|
||||
elif u_major == 19 and u_minor == 10:
|
||||
self.qtUrl = self.assets_url + '/dependencies/vcpkg/qt5-install-5.12.6-ubuntu-19.10.tar.xz'
|
||||
if u_major == 18:
|
||||
self.qtUrl = self.assets_url + '/dependencies/vcpkg/qt5-install-5.15.2-ubuntu-18.04-amd64.tar.xz'
|
||||
elif u_major > 19:
|
||||
print("We don't support " + distro.name(pretty=True) + " on x86_64 yet. Perhaps consider helping us out?")
|
||||
print("We don't support " + distro.name(pretty=True) + " yet. Perhaps consider helping us out?")
|
||||
raise Exception('LINUX DISTRO IS NOT SUPPORTED YET!!!')
|
||||
else:
|
||||
print("Sorry, " + distro.name(pretty=True) + " is old and won't be officially supported. Please consider upgrading.");
|
||||
|
@ -113,6 +109,7 @@ endif()
|
|||
else:
|
||||
print("Sorry, " + distro.name(pretty=True) + " is old and won't be officially supported. Please consider upgrading.");
|
||||
raise Exception('UNKNOWN LINUX DISTRO VERSION!!!')
|
||||
|
||||
else:
|
||||
print("Sorry, " + distro.name(pretty=True) + " is not supported on aarch64. Please consider helping us out.")
|
||||
print("It's also possible to build Qt for your distribution, please see the documentation at:")
|
||||
|
|
|
@ -26,7 +26,7 @@ namespace NetworkingConstants {
|
|||
// if you manually generate a personal access token for the domains scope
|
||||
// at https://staging.highfidelity.com/user/tokens/new?for_domain_server=true
|
||||
|
||||
const QString WEB_ENGINE_VERSION = "Chrome/69.0.3497.113";
|
||||
const QString WEB_ENGINE_VERSION = "Chrome/83.0.4103.122";
|
||||
|
||||
// For now we only have one Metaverse server.
|
||||
const QUrl METAVERSE_SERVER_URL_STABLE { "https://metaverse.vircadia.com/live" };
|
||||
|
|
|
@ -1,250 +1,317 @@
|
|||
# General
|
||||
This document describes the process to build Qt 5.12.3.
|
||||
Note that there are several patches.
|
||||
* The first (to qfloat16.h) is needed to compile QT 5.12.3 on Visual Studio 2017 due to a bug in Visual Studio (*bitset* will not compile. Note that there is a change in CMakeLists.txt to support this.
|
||||
* The second patch is to OpenSL ES audio and allow audio echo cancelllation on Android.
|
||||
* The third is a patch to QScriptEngine to prevent crashes in QScriptEnginePrivate::reportAdditionalMemoryCost, during garbage collection. See https://bugreports.qt.io/browse/QTBUG-76176
|
||||
* The fourth is a patch which fixes video playback on WebEngineViews on mac. See https://bugreports.qt.io/browse/QTBUG-70967
|
||||
This document describes the process to build Qt 5.15.2.
|
||||
|
||||
Reference: https://doc.qt.io/qt-5/build-sources.html
|
||||
|
||||
Note that there are patches.
|
||||
* *win-qtwebengine.diff* fixes building with Visual Studio 2019 16.8.0. See https://bugreports.qt.io/browse/QTBUG-88625.
|
||||
|
||||
|
||||
## Requirements
|
||||
|
||||
### Windows
|
||||
1. Visual Studio 2017
|
||||
If you don’t have Community or Professional edition of Visual Studio 2017, download [Visual Studio Community 2017](https://www.visualstudio.com/downloads/).
|
||||
1. Visual Studio 2019
|
||||
If you don’t have Community or Professional edition of Visual Studio 2019, download [Visual Studio Community 2019](https://www.visualstudio.com/downloads/).
|
||||
Install with C++ support.
|
||||
|
||||
1. python 2.7.16
|
||||
Check if needed running `python --version` - should return python 2.7.x
|
||||
Install from https://www.python.org/ftp/python/2.7.16/python-2.7.16.amd64.msi
|
||||
Add path to python executable to PATH.
|
||||
|
||||
NOTE: REMOVE python 3 from PATH. Our regular build uses python 3. This will still work, because HIFI_PYTHON_EXEC points to the python 3 executable.
|
||||
|
||||
Verify that python runs python 2.7 (run “python --version”)
|
||||
1. git >= 1.6
|
||||
Check if needed `git --version`
|
||||
Download from https://git-scm.com/download/win
|
||||
Verify by entering `git --version`
|
||||
1. perl >= 5.14
|
||||
Install from Strawberry Perl - http://strawberryperl.com/ - 5.28.1.1 64 bit to C:\Strawberry\
|
||||
Verify by running `perl --version`
|
||||
1. flex and bison
|
||||
Download from https://sourceforge.net/projects/winflexbison/files/latest/download
|
||||
Uncompress in C:\flex_bison
|
||||
Rename win-bison.exe to bison.exe and win-flex.exe to flex.exe
|
||||
Add C:\flex_bison to PATH
|
||||
Verify by running `flex --version`
|
||||
Verify by running `bison --version`
|
||||
1. gperf
|
||||
Install from http://gnuwin32.sourceforge.net/downlinks/gperf.php
|
||||
Add C:\Program Files (x86)\GnuWin32\bin to PATH
|
||||
Verify by running `gperf --version`
|
||||
1. 7-zip
|
||||
Download from https://www.7-zip.org/download.html
|
||||
1. Bash shell
|
||||
From *Settings* select *Update & Security*
|
||||
Select *For Developers*
|
||||
Enable *Developer mode*
|
||||
Restart PC
|
||||
Open Control Panel and select *Programs and Features*
|
||||
Select *Turn Windows features on or off*
|
||||
Check *Windows Subsystem for Linux*
|
||||
Click *Restart now*
|
||||
Download from the Microsoft Store - Search for *bash* and choose the latest Ubuntu version
|
||||
[First run will take a few minutes]
|
||||
Enter a user name - all small letters (this is used for *sudo* commands)
|
||||
1. python 2.7.x >= 2.7.16
|
||||
Download MSI installer from https://www.python.org/ and add directory of the python executable to PATH.
|
||||
NOTE: REMOVE python 3 from PATH. (Regular Vircadia builds use python 3, however these will still work because
|
||||
the make files automatically handle this.)
|
||||
Verify by running `python.exe --version`
|
||||
1. git >= 1.6
|
||||
Download from https://git-scm.com/download/win
|
||||
Verify by running `git --version`
|
||||
1. perl >= 5.14
|
||||
Install from Strawberry Perl - http://strawberryperl.com/ - 5.28.1.1 64 bit to C:\Strawberry\
|
||||
Verify by running `perl --version`
|
||||
1. flex and bison
|
||||
These are provided as part of the Qt repository in the gnuwin32/bin folder, which is prepended to the command prompt PATH when
|
||||
`tq5vars.bat` is run (see below).
|
||||
Alternatively, you can download it from https://sourceforge.net/projects/winflexbison/files/latest/download and...
|
||||
: Uncompress in C:\flex_bison
|
||||
: Rename win-bison.exe to bison.exe and win-flex.exe to flex.exe
|
||||
: Add C:\flex_bison to PATH
|
||||
Verify by running `flex --version`
|
||||
Verify by running `bison --version`
|
||||
1. gperf
|
||||
This is provided as part of the Qt repository in the gnuwin32/bin folder, which is prepended to the command prompt PATH when
|
||||
`tq5vars.bat` is run (see below).
|
||||
alternatively, you can install from http://gnuwin32.sourceforge.net/downlinks/gperf.php and...
|
||||
: Add C:\Program Files (x86)\GnuWin32\bin to PATH
|
||||
Verify by running `gperf --version`
|
||||
1. 7-zip
|
||||
Download from https://www.7-zip.org/download.html and install.
|
||||
1. Bash shell
|
||||
Open Control Panel and select *Programs and Features*
|
||||
Select *Turn Windows features on or off*
|
||||
Check *Windows Subsystem for Linux*
|
||||
Click *Restart now*
|
||||
Download from the Microsoft Store - Search for *bash* and choose the latest Ubuntu version
|
||||
[First run will take a few minutes]
|
||||
Enter a user name - all small letters (this is used for *sudo* commands)
|
||||
Choose a password
|
||||
1. Jom
|
||||
jom is a clone of nmake to support the execution of multiple independent commands in parallel.
|
||||
https://wiki.qt.io/Jom
|
||||
1. Jom
|
||||
jom is a clone of nmake to support the execution of multiple independent commands in parallel.
|
||||
https://wiki.qt.io/Jom
|
||||
Install in C:\Jom and add directory to PATH.
|
||||
|
||||
### Linux
|
||||
Tested on Ubuntu 16.04 and 18.04.
|
||||
**16.04 NEEDED FOR JENKINS~~ **
|
||||
1. qt5 requirements
|
||||
edit /etc/apt/sources.list (edit as root)
|
||||
replace all *# deb-src* with *deb-src* (in vi `1,$s/# deb-src/deb-src/`)
|
||||
`sudo apt-get update -y`
|
||||
`sudo apt-get upgrade -y`
|
||||
`sudo apt-get build-dep qt5-default -y`
|
||||
1. git >= 1.6
|
||||
Check if needed `git --version`
|
||||
`sudo apt-get install git -y`
|
||||
Verify again
|
||||
1. python
|
||||
Check if needed `python --version` - should return python 2.7.x
|
||||
`sudo apt-get install python -y` (not python 3!)
|
||||
Verify again
|
||||
1. gperf
|
||||
Check if needed `gperf --version`
|
||||
`sudo apt-get install gperf -y`
|
||||
Verify again
|
||||
1. bison and flex
|
||||
Check if needed `flex --version` and `bison --version`
|
||||
`sudo apt-get install flex bison -y`
|
||||
Verify again
|
||||
1. pkg-config (needed for qtwebengine)
|
||||
Check if needed `pkg-config --version`
|
||||
`sudo apt-get install pkg-config -y`
|
||||
Verify again
|
||||
1. OpenGL
|
||||
Verify (first install mesa-utils - `sudo apt install mesa-utils -y`) by `glxinfo | grep "OpenGL version"`
|
||||
`sudo apt-get install libgl1-mesa-dev -y`
|
||||
`sudo ln -s /usr/lib/x86_64-linux-gnu/libGL.so.346.35 /usr/lib/x86_64-linux-gnu/libGL.so.1.2.0`
|
||||
Verify again
|
||||
1. make
|
||||
Check if needed `make --version`
|
||||
`sudo apt-get install make -y`
|
||||
Verify again
|
||||
1. g++
|
||||
Check if needed
|
||||
`g++ --version`
|
||||
`sudo apt-get install g++ -y`
|
||||
Verify again
|
||||
1. dbus-1 (needed for qtwebengine)
|
||||
`sudo apt-get install libdbus-glib-1-dev -y`
|
||||
1. nss (needed for qtwebengine)
|
||||
`sudo apt-get install libnss3-dev -y`
|
||||
1. qt5 requirements
|
||||
On Ubuntu based systems you can just have apt install the dependencies for the qt5-default package:
|
||||
Edit /etc/apt/sources.list (edit as root) and uncomment all source repositories by replacing all `# deb-src` with `deb-src`.
|
||||
```bash
|
||||
sudo apt update
|
||||
sudo apt upgrade
|
||||
sudo apt build-dep qt5-default
|
||||
```
|
||||
|
||||
2. git >= 1.6
|
||||
3. python 2.7.x
|
||||
4. gperf
|
||||
5. bison and flex
|
||||
6. pkg-config (needed for qtwebengine)
|
||||
7. OpenGL
|
||||
8. make
|
||||
9. g++
|
||||
10. dbus-1 (needed for qtwebengine)
|
||||
11. nss (needed for qtwebengine)
|
||||
|
||||
On Ubuntu based systems you can install all these dependencies with:
|
||||
```bash
|
||||
sudo apt install git python gperf flex bison pkg-config mesa-utils libgl1-mesa-dev make g++ libdbus-glib-1-dev libnss3-dev
|
||||
```
|
||||
Make sure that python 2.7.x is the system standard by checking if `python --version` returns python 2.7.x
|
||||
|
||||
Qt also provides a dependency list for some major Linux distributions here: https://wiki.qt.io/Building_Qt_5_from_Git#Linux.2FX11
|
||||
|
||||
### Mac
|
||||
1. git >= 1.6
|
||||
Check if needed `git --version`
|
||||
Install from https://git-scm.com/download/mac
|
||||
Verify again
|
||||
1. pkg-config
|
||||
brew fontconfig dbus-glib stall pkg-config
|
||||
1. dbus-1
|
||||
brew install dbus-glib
|
||||
1. git >= 1.6
|
||||
Check if needed `git --version`
|
||||
Install from https://git-scm.com/download/mac
|
||||
Verify again
|
||||
1. install pkg-config, dbug-glib, and fontconfig
|
||||
brew install fontconfig dbus-glib pkg-config
|
||||
|
||||
|
||||
## Build Process
|
||||
|
||||
|
||||
### General
|
||||
qt is cloned to the qt5 folder.
|
||||
The build is performed in the qt5-build folder.
|
||||
Build products are installed to the qt5-install folder.
|
||||
Before running configure, make sure that the qt5-build folder is empty.
|
||||
Qt is cloned to a qt5 folder.
|
||||
The build is performed in a qt5/qt5-build folder.
|
||||
Build products are installed to the qt5/qt5-install folder.
|
||||
Before running configure, make sure that the qt5-build folder is empty.
|
||||
|
||||
|
||||
**Only run the git patches once!!!**
|
||||
### Windows
|
||||
Before building, verify that **HIFI_VCPKG_BASE_VERSION** points to a *vcpkg* folder containing *packages\openssl-windows_x64-windows*.
|
||||
If not, follow https://github.com/highfidelity/vcpkg to install *vcpkg* and then *openssl*.
|
||||
Also, make sure the directory that you are using to build qt is not deeply nested. It is quite possible to run into the windows MAX_PATH limit when building chromium. For example: `c:\msys64\home\ajt\code\hifi\tools\qt-builder\qt5-build` is too long. `c:\q\qt5-build\` is a better choice.
|
||||
Make sure that the directory you are using to build Qt is not deeply nested. It is quite possible to run into the windows MAX_PATH limit when building chromium. For example: `c:\msys64\home\ajt\code\hifi\tools\qt-builder\qt5-build` is too long. `c:\q\qt5-build\` is a better choice.
|
||||
|
||||
#### Preparing OpenSSL
|
||||
|
||||
Do one of the following to provide OpenSSL for building against:
|
||||
a. If you have installed a local copy of Qt 5.15.2 and have built Vircadia against that, including OpenSSL, find the
|
||||
**HIFI_VCPKG_BASE** subdirectory used in your build and make an environment variable **HIFI_VCPKG_BASE_DIR** point to the
|
||||
*installed\x64-windows* folder.
|
||||
a. Follow https://github.com/vircadia/vcpkg to install *vcpkg* and then *openssl*.
|
||||
Then make an environment variable **HIFI_VCPKG_BASE_DIR** point to the *packages\openssl-windows_x64-windows* vcpkg folder.
|
||||
|
||||
#### Preparing source files
|
||||
`git clone --recursive https://code.qt.io/qt/qt5.git -b 5.12.3 --single-branch`
|
||||
|
||||
* Copy the **patches** folder to qt5
|
||||
* Copy the **qt5vars.bat** file to qt5
|
||||
* Apply the patches to Qt
|
||||
Get the source:
|
||||
`git clone --recursive https://code.qt.io/qt/qt5.git -b 5.15.2 --single-branch`
|
||||
|
||||
`cd qt5`
|
||||
`git apply --ignore-space-change --ignore-whitespace patches/qfloat16.patch`
|
||||
`git apply --ignore-space-change --ignore-whitespace patches/aec.patch`
|
||||
`git apply --ignore-space-change --ignore-whitespace patches/qtscript-crash-fix.patch`
|
||||
`cd ..`
|
||||
#### Configuring
|
||||
`mkdir qt5-install`
|
||||
`mkdir qt5-build`
|
||||
`cd qt5-build`
|
||||
Apply patches:
|
||||
* Copy the **patches** folder to qt5
|
||||
* Apply the patches to Qt
|
||||
`cd qt5`
|
||||
`git apply --ignore-space-change --ignore-whitespace patches/win-qtwebengine.diff`
|
||||
`cd ..`
|
||||
|
||||
run `..\qt5\qt5vars.bat`
|
||||
`cd ..\..\qt5-build`
|
||||
Set up configuration batch file:
|
||||
* Copy the **qt5vars.bat** file to qt5.
|
||||
* Edit the **qt5vars.bat** file per the instructions in it.
|
||||
|
||||
#### Configuring
|
||||
|
||||
Do the following in a Visual Studio 2019 Command Prompt window.
|
||||
|
||||
Set up the build directories:
|
||||
`cd qt5`
|
||||
`mkdir qt5-build`
|
||||
`mkdir qt5-install`
|
||||
`cd qt5-build`
|
||||
|
||||
Set up the environment variables:
|
||||
`..\qt5vars`
|
||||
|
||||
Note: If you need to rebuild, wipe the *qt5-build* and *qt5-install* directories and re-run `qt5vars`.
|
||||
|
||||
Configure the Qt build:
|
||||
|
||||
`..\configure -force-debug-info -opensource -confirm-license -opengl desktop -platform win32-msvc -openssl-linked -I %HIFI_VCPKG_BASE_DIR%\include -L %HIFI_VCPKG_BASE_DIR%\lib OPENSSL_LIBS="-llibcrypto -llibssl" -nomake examples -nomake tests -skip qttranslations -skip qtserialport -skip qt3d -skip qtlocation -skip qtwayland -skip qtsensors -skip qtgamepad -skip qtcharts -skip qtx11extras -skip qtmacextras -skip qtvirtualkeyboard -skip qtpurchasing -skip qtdatavis3d -no-warnings-are-errors -no-pch -prefix ..\qt5-install`
|
||||
|
||||
Copy the files *zlib1.dll* and *zlib.pdb* from the %HIFI_VCPKG_BASE_DIR%\bin directory to *qt5-build\qtbase\bin* (which is on
|
||||
the PATH used by the `jom` command).
|
||||
FIXME: Why aren't these zlib files automatically provided / found for use by rcc.exe?
|
||||
|
||||
`..\qt5\configure -force-debug-info -opensource -confirm-license -opengl desktop -platform win32-msvc -openssl-linked OPENSSL_LIBS="-lssleay32 -llibeay32" -I %HIFI_VCPKG_BASE_VERSION%\packages\openssl-windows_x64-windows\include -L %HIFI_VCPKG_BASE_VERSION%\packages\openssl-windows_x64-windows\lib -nomake examples -nomake tests -skip qttranslations -skip qtserialport -skip qt3d -skip qtlocation -skip qtwayland -skip qtsensors -skip qtgamepad -skip qtspeech -skip qtcharts -skip qtx11extras -skip qtmacextras -skip qtvirtualkeyboard -skip qtpurchasing -skip qtdatavis3d -no-warnings-are-errors -no-pch -prefix ..\qt5-install`
|
||||
#### Make
|
||||
`jom`
|
||||
`jom install`
|
||||
|
||||
Build Qt:
|
||||
`jom`
|
||||
`jom install`
|
||||
|
||||
#### Fixing
|
||||
The *.prl* files have an absolute path that needs to be removed (see http://www.linuxfromscratch.org/blfs/view/stable-systemd/x/qtwebengine.html)
|
||||
1. Open a bash terminal
|
||||
1. `cd` to the *qt5-install* folder (e.g. `cd /mnt/d/qt5-install/`)
|
||||
1. Run the following command
|
||||
`find . -name \*.prl -exec sed -i -e '/^QMAKE_PRL_BUILD_DIR/d' {} \;`
|
||||
1. Copy *qt.conf* to *qt5-install\bin*
|
||||
|
||||
The *.prl* files have an absolute path that needs to be removed (see http://www.linuxfromscratch.org/blfs/view/stable-systemd/x/qtwebengine.html)
|
||||
1. `cd` to the *qt5-install* folder.
|
||||
1. Open a bash terminal. (Run `bash` in command prompt.)
|
||||
1. Run the following command:
|
||||
`find . -name \*.prl -exec sed -i -e '/^QMAKE_PRL_BUILD_DIR/d' {} \;`
|
||||
|
||||
Add a *qt.conf* file.
|
||||
1. Copy the file *qt5-build\qtbase\bin\qt.conf* to *qt5-install\bin*.
|
||||
1. Edit the *qt.conf* file: replace all absolute URLs with relative URLs.
|
||||
|
||||
Copy the files *zlib1.dll* and *zlib.pdb* from *qt5-build\qtbase\bin* to *qt5-install\bin*.
|
||||
FIXME: Why aren't these zlib files automatically included?
|
||||
|
||||
|
||||
#### Uploading
|
||||
Create a tar file called qt5-install-5.12.3-windows.tar.gz from the qt5-install folder.
|
||||
Upload qt5-install-5.12.3-windows.tar.gz to our Amazon S3 vircadia-public bucket, under the dependencies/vckpg directory.
|
||||
Update hifi_vcpkg.py to use this new URL. Additionally, you should make a small change to any file in the hifi/cmake/ports directory to force the re-download of the qt-install.tar.gz during the build process for hifi.
|
||||
|
||||
Create a Gzip tar file called qt5-install-5.15.2-windows.tar.gz from the qt5-install folder.
|
||||
|
||||
Using 7-Zip:
|
||||
* `cd` to the *qt5* folder.
|
||||
* `7z a -ttar qt5-install-5.15.2-windows.tar qt5-install`
|
||||
* `7z a -tgzip qt5-install-5.15.2-windows.tar.gz qt5-install-5.15.2-windows.tar`
|
||||
|
||||
Upload qt5-install-5.15.2-windows.tar.gz to the Amazon S3 vircadia-public bucket, under the dependencies/vckpg directory.
|
||||
Update hifi_vcpkg.py to use this new URL. Additionally, you should make a small change to any file in the vircadia/cmake/ports
|
||||
directory to force the re-download of the qt-install.tar.gz during the build process for Vircadia.
|
||||
|
||||
#### Preparing Symbols
|
||||
Run `python3 prepare-windows-symbols-for-backtrace.py qt5-install` to scan the qt5-install directory for any dlls and pdbs. After running this command the backtrace directory will be created. Zip this directory up, but make sure that all dlls and pdbs are in the root of the zip file, not under a sub-directory. This file can then be uploaded to backtrace here: https://highfidelity.sp.backtrace.io/p/Interface/settings/symbol/upload
|
||||
|
||||
Using Python 3, Run the following command in the *qt5* folder, substituting in paths as required. The
|
||||
*prepare-windows-symbols-for-backtrace.py* file is in the Vircadia repository's *tools\qt-builder* folder.
|
||||
`<path>python <path>prepare-windows-symbols-for-backtrace.py qt5-install`
|
||||
|
||||
This scans the qt5-install directory for dlls and pdbs, and copies them to a *backtrace* directory.
|
||||
Check that all dlls and pdbs are in the root of the directory.
|
||||
|
||||
Zip up this directory and upload it to Backtrace or other crash log handlng tool.
|
||||
|
||||
|
||||
### Linux
|
||||
#### Preparing source files
|
||||
`git clone --recursive git://code.qt.io/qt/qt5.git -b 5.12.3 --single-branch`
|
||||
|
||||
* Copy the **patches** folder to qt5
|
||||
* Apply patches to Qt
|
||||
`cd qt5`
|
||||
`git apply --ignore-space-change --ignore-whitespace patches/aec.patch`
|
||||
`git apply --ignore-space-change --ignore-whitespace patches/qtscript-crash-fix.patch`
|
||||
`cd ..`
|
||||
```bash
|
||||
git clone --recursive git://code.qt.io/qt/qt5.git -b 5.15.2 --single-branch
|
||||
```
|
||||
|
||||
#### Configuring
|
||||
`mkdir qt5-install`
|
||||
`mkdir qt5-build`
|
||||
`cd qt5-build`
|
||||
```bash
|
||||
mkdir qt5-install
|
||||
mkdir qt5-build
|
||||
cd qt5-build
|
||||
```
|
||||
|
||||
*Ubuntu 16.04*
|
||||
`../qt5/configure -opensource -confirm-license -platform linux-g++-64 -qt-zlib -qt-libjpeg -qt-libpng -qt-xcb -qt-freetype -qt-pcre -qt-harfbuzz -nomake examples -nomake tests -skip qttranslations -skip qtserialport -skip qt3d -skip qtlocation -skip qtwayland -skip qtsensors -skip qtgamepad -skip qtspeech -skip qtcharts -skip qtmacextras -skip qtvirtualkeyboard -skip qtpurchasing -skip qtdatavis3d -no-warnings-are-errors -no-pch -no-egl -no-icu -prefix ../qt5-install`
|
||||
amd64:
|
||||
```bash
|
||||
../qt5/configure -force-debug-info -release -opensource -confirm-license -platform linux-g++-64 -recheck-all -nomake tests -nomake examples -skip qttranslations -skip qtserialport -skip qt3d -skip qtlocation -skip qtwayland -skip qtsensors -skip qtgamepad -skip qtcharts -skip qtx11extras -skip qtmacextras -skip qtvirtualkeyboard -skip qtpurchasing -skip qtdatavis3d -skip qtlottie -skip qtquick3d -skip qtpim -skip qtdocgallery -no-warnings-are-errors -no-pch -no-egl -no-icu -prefix ../qt5-install
|
||||
```
|
||||
If libX11 or libGL aren't found, you will need to manually provide those locations. Search for `libX11.so` and `libGL.so` respectively and provide paths to their folders inside `qt5/qtbase/mkdspecs/linux-g++-64/qmake.conf`.
|
||||
On Ubuntu 18.04 both are in `/usr/lib/x86_64-linux-gnu`
|
||||
|
||||
*Ubuntu 18.04*
|
||||
`../qt5/configure -force-debug-info -release -opensource -confirm-license -gdb-index -recheck-all -nomake tests -nomake examples -skip qttranslations -skip qtserialport -skip qt3d -skip qtlocation -skip qtwayland -skip qtsensors -skip qtgamepad -skip qtspeech -skip qtcharts -skip qtx11extras -skip qtmacextras -skip qtvirtualkeyboard -skip qtpurchasing -skip qtdatavis3d -no-warnings-are-errors -no-pch -c++std c++14 -prefix ../qt5-install`
|
||||
aarch64:
|
||||
```bash
|
||||
../qt5/configure -force-debug-info -release -opensource -confirm-license -platform linux-g++ -recheck-all -nomake tests -nomake examples -skip qttranslations -skip qtserialport -skip qt3d -skip qtlocation -skip qtwayland -skip qtsensors -skip qtgamepad -skip qtcharts -skip qtx11extras -skip qtmacextras -skip qtvirtualkeyboard -skip qtpurchasing -skip qtdatavis3d -skip qtlottie -skip qtquick3d -skip qtpim -skip qtdocgallery -no-warnings-are-errors -no-pch -no-icu -prefix ../qt5-install
|
||||
```
|
||||
You can accelerate the build process by installing some of the optional system dependencies.
|
||||
|
||||
|
||||
???`../qt5/configure -opensource -confirm-license -gdb-index -nomake examples -nomake tests -skip qttranslations -skip qtserialport -skip qt3d -skip qtlocation -skip qtwayland -skip qtsensors -skip qtgamepad -skip qtspeech -skip qtcharts -skip qtmacextras -skip qtvirtualkeyboard -skip qtpurchasing -skip qtdatavis3d -no-warnings-are-errors -no-pch -prefix ../qt5-install`
|
||||
#### Make
|
||||
`make`
|
||||
|
||||
????*Ubuntu 18.04 only*
|
||||
????`make module-qtwebengine`
|
||||
????`make module-qtscript`
|
||||
|
||||
*Both*
|
||||
`make install`
|
||||
#### Fixing
|
||||
1. The *.prl* files have an absolute path that needs to be removed (see http://www.linuxfromscratch.org/blfs/view/stable-systemd/x/qtwebengine.html)
|
||||
`cd ../qt5-install`
|
||||
`find . -name \*.prl -exec sed -i -e '/^QMAKE_PRL_BUILD_DIR/d' {} \;`
|
||||
1. Copy *qt.conf* to *qt5-install\bin*
|
||||
#### Uploading
|
||||
*Ubuntu 16.04*
|
||||
1. Return to the home folder
|
||||
`cd ..`
|
||||
1. Open a python 3 shell
|
||||
`python3`
|
||||
1. Run the following snippet:
|
||||
`import os`
|
||||
`import tarfile`
|
||||
`filename=tarfile.open("qt5-install.tar.gz", "w:gz")`
|
||||
`filename.add("qt5-install", os.path.basename("qt5-install"))`
|
||||
`exit()`
|
||||
1. Upload qt5-install.tar.gz to https://hifi-qa.s3.amazonaws.com/qt5/Ubuntu/16.04
|
||||
|
||||
*Ubuntu 18.04*
|
||||
``tar -zcvf qt5-install.tar.gz qt5-install`
|
||||
1. Upload qt5-install.tar.gz to https://hifi-qa.s3.amazonaws.com/qt5/Ubuntu/18.04
|
||||
|
||||
### Mac
|
||||
#### Preparing source files
|
||||
git clone --recursive git://code.qt.io/qt/qt5.git -b 5.12.3 --single-branch
|
||||
|
||||
* Copy the **patches** folder to qt5
|
||||
* Apply the patches to Qt
|
||||
`cd qt5`
|
||||
`git apply --ignore-space-change --ignore-whitespace patches/aec.patch`
|
||||
`git apply --ignore-space-change --ignore-whitespace patches/qtscript-crash-fix.patch`
|
||||
`git apply --ignore-space-change --ignore-whitespace patches/mac-web-video.patch`
|
||||
`cd ..`
|
||||
#### Configuring
|
||||
`mkdir qt5-install`
|
||||
`mkdir qt5-build`
|
||||
`cd ../qt5-build`
|
||||
|
||||
`../qt5/configure -force-debug-info -opensource -confirm-license -qt-zlib -qt-libjpeg -qt-libpng -qt-freetype -qt-pcre -qt-harfbuzz -nomake examples -nomake tests -skip qttranslations -skip qtserialport -skip qt3d -skip qtlocation -skip qtwayland -skip qtsensors -skip qtgamepad -skip qtspeech -skip qtcharts -skip qtx11extras -skip qtmacextras -skip qtvirtualkeyboard -skip qtpurchasing -skip qtdatavis3d -no-warnings-are-errors -no-pch -prefix ../qt5-install`
|
||||
#### Make
|
||||
`make`
|
||||
`make install`
|
||||
Replace `4` with the number of threads you want to use. Keep in mind that the Qt build process uses a lot of memory. It is recommended to have at least 1.2 GiB per thread.
|
||||
```bash
|
||||
NINJAFLAGS='-j4' make -j4
|
||||
```
|
||||
|
||||
On some systems qtscript, qtwebengine, qtwebchannel and qtspeech will be build by `make` without you manually specifying it, while others require you to build modules individually.
|
||||
Check the folders of each needed module for binary files, to make sure that they have actually been built.
|
||||
If a module has not been built, make the module "manually":
|
||||
```bash
|
||||
make -j4 module-qtscript
|
||||
NINJAFLAGS='-j4' make -j4 module-qtwebengine
|
||||
make -j4 module-qtspeech
|
||||
make -j4 module-qtwebchannel
|
||||
```
|
||||
|
||||
Now Qt can be installed to qt5-install:
|
||||
```bash
|
||||
make -j4 install
|
||||
```
|
||||
|
||||
If some modules were missing in previous steps, it is needed to install them individually as well:
|
||||
```bash
|
||||
cd qtwebengine
|
||||
make -j4 install
|
||||
cd ../qtscript
|
||||
make -j4 install
|
||||
cd ../qtspeech
|
||||
make -j4 install
|
||||
cd ../qtwebchannel
|
||||
make -j4 install
|
||||
```
|
||||
If one of the make commands fails, running it a second time sometimes clears the issue.
|
||||
|
||||
#### Fixing
|
||||
1. The *.prl* files have an absolute path that needs to be removed (see http://www.linuxfromscratch.org/blfs/view/stable-systemd/x/qtwebengine.html)
|
||||
`cd ../qt5-install`
|
||||
`find . -name \*.prl -exec sed -i -e '/^QMAKE_PRL_BUILD_DIR/d' {} \;`
|
||||
`cd ..`
|
||||
1. Copy *qt.conf* to *qt5-install\bin*
|
||||
1. The *.prl* files have an absolute path that needs to be removed (see http://www.linuxfromscratch.org/blfs/view/stable-systemd/x/qtwebengine.html)
|
||||
```bash
|
||||
cd ../qt5-install
|
||||
find . -name \*.prl -exec sed -i -e '/^QMAKE_PRL_BUILD_DIR/d' {} \;
|
||||
```
|
||||
2. Copy *qt.conf* to *qt5-install\bin*
|
||||
|
||||
#### Uploading
|
||||
`tar -zcvf qt5-install-5.13.2-macos.tar.gz qt5-install`
|
||||
Upload qt5-install-5.13.2-macos.tar.gz to our Amazon S3 vircadia-public bucket, under the dependencies/vckpg directory
|
||||
#### Creating symbols
|
||||
Run `python3 prepare-mac-symbols-for-backtrace.py qt5-install` to scan the qt5-build directory for any dylibs and execute dsymutil to create dSYM bundles. After running this command the backtrace directory will be created. Zip this directory up, but make sure that all dylibs and dSYM fiels are in the root of the zip file, not under a sub-directory. This file can then be uploaded to backtrace here: https://highfidelity.sp.backtrace.io/p/Interface/settings/symbol/upload
|
||||
1. Tar and xz qt5-install to create the package. Replace `ubuntu-18.04` with the relevant system and `amd64` with the relevant architecture.
|
||||
```bash
|
||||
tar -Jcvf qt5-install-5.15.2-ubuntu-18.04-amd64.tar.xz qt5-install
|
||||
```
|
||||
2. Upload qt5-install-5.15.2-ubuntu-18.04-amd64.tar.xz to https://athena-public.s3.amazonaws.com/dependencies/vcpkg/
|
||||
|
||||
|
||||
|
||||
### Mac
|
||||
|
||||
#### Preparing source files
|
||||
git clone --recursive git://code.qt.io/qt/qt5.git -b 5.15.2 --single-branch
|
||||
|
||||
* If you are compiling with MacOSX11.1.SDK or greater, edit qt5/qtwebengine/src/3rdparty/chromium/build/mac/find_sdk.py line 91 and replace "MacOSX(10" with "MacOSX(11".
|
||||
|
||||
#### Configuring
|
||||
`mkdir qt5-install`
|
||||
`mkdir qt5-build`
|
||||
`cd ../qt5-build`
|
||||
|
||||
`../configure -force-debug-info -opensource -confirm-license -qt-zlib -qt-libjpeg -qt-libpng -qt-freetype -qt-pcre -qt-harfbuzz -nomake examples -nomake tests -skip qttranslations -skip qtserialport -skip qt3d -skip qtlocation -skip qtwayland -skip qtsensors -skip qtgamepad -skip qtcharts -skip qtx11extras -skip qtmacextras -skip qtvirtualkeyboard -skip qtpurchasing -skip qtdatavis3d -no-warnings-are-errors -no-pch -prefix ../qt5-install`
|
||||
|
||||
#### Make
|
||||
`make`
|
||||
`make install`
|
||||
|
||||
#### Fixing
|
||||
1. The *.prl* files have an absolute path that needs to be removed (see http://www.linuxfromscratch.org/blfs/view/stable-systemd/x/qtwebengine.html)
|
||||
`cd` to the `qt5-install directory`
|
||||
`find . -name \*.prl -exec sed -i -e '/^QMAKE_PRL_BUILD_DIR/d' {} \;`
|
||||
`cd ..`
|
||||
1. Note: you may have additional files in qt5-install/lib and qt5-install/lib/pkg/pkgconfig that have your local build absolute path included. Optionally you can fix these as well, but it will not effect the build if left alone.
|
||||
|
||||
Add a *qt.conf* file.
|
||||
1. Copy the file *qt5-build\qtbase\bin\qt.conf* to *qt5-install\bin*
|
||||
1. Edit the *qt.conf* file: replace all absolute URLs with relative URLs (beginning with .. or .)
|
||||
|
||||
#### Uploading
|
||||
`tar -zcvf qt5-install-5.15.2-macos.tar.gz qt5-install`
|
||||
Upload qt5-install-5.15.2-macos.tar.gz to our Amazon S3 vircadia-public bucket, under the dependencies/vckpg directory
|
||||
|
||||
#### Creating symbols (optional)
|
||||
Run `python3 prepare-mac-symbols-for-backtrace.py qt5-install` to scan the qt5-build directory for any dylibs and execute dsymutil to create dSYM bundles. After running this command the backtrace directory will be created. Zip this directory up, but make sure that all dylibs and dSYM fiels are in the root of the zip file, not under a sub-directory. This file can then be uploaded to backtrace or other crash log handling tool.
|
||||
|
||||
## Problems
|
||||
*configure* errors, if any, may be viewed in **config.log** and **config.summary**
|
||||
|
|
|
@ -1,40 +0,0 @@
|
|||
diff --git a/qtmultimedia/src/plugins/opensles/qopenslesaudioinput.cpp b/qtmultimedia/src/plugins/opensles/qopenslesaudioinput.cpp
|
||||
index ad87cb0..54ed18a 100644
|
||||
--- a/qtmultimedia/src/plugins/opensles/qopenslesaudioinput.cpp
|
||||
+++ b/qtmultimedia/src/plugins/opensles/qopenslesaudioinput.cpp
|
||||
@@ -117,6 +117,8 @@ QOpenSLESAudioInput::QOpenSLESAudioInput(const QByteArray &device)
|
||||
m_recorderPreset = SL_ANDROID_RECORDING_PRESET_CAMCORDER;
|
||||
else if (qstrcmp(device, QT_ANDROID_PRESET_VOICE_RECOGNITION) == 0)
|
||||
m_recorderPreset = SL_ANDROID_RECORDING_PRESET_VOICE_RECOGNITION;
|
||||
+ else if (qstrcmp(device, QT_ANDROID_PRESET_VOICE_COMMUNICATION) == 0)
|
||||
+ m_recorderPreset = SL_ANDROID_RECORDING_PRESET_VOICE_COMMUNICATION;
|
||||
else
|
||||
m_recorderPreset = SL_ANDROID_RECORDING_PRESET_GENERIC;
|
||||
#endif
|
||||
diff --git a/qtmultimedia/src/plugins/opensles/qopenslesaudioinput.h b/qtmultimedia/src/plugins/opensles/qopenslesaudioinput.h
|
||||
index ad84db0..35cc379 100644
|
||||
--- a/qtmultimedia/src/plugins/opensles/qopenslesaudioinput.h
|
||||
+++ b/qtmultimedia/src/plugins/opensles/qopenslesaudioinput.h
|
||||
@@ -50,6 +50,7 @@
|
||||
#define QT_ANDROID_PRESET_MIC "mic"
|
||||
#define QT_ANDROID_PRESET_CAMCORDER "camcorder"
|
||||
#define QT_ANDROID_PRESET_VOICE_RECOGNITION "voicerecognition"
|
||||
+#define QT_ANDROID_PRESET_VOICE_COMMUNICATION "voicecommunication"
|
||||
|
||||
#endif
|
||||
|
||||
diff --git a/qtmultimedia/src/plugins/opensles/qopenslesengine.cpp b/qtmultimedia/src/plugins/opensles/qopenslesengine.cpp
|
||||
index 1a16cc2..2577fb3 100644
|
||||
--- a/qtmultimedia/src/plugins/opensles/qopenslesengine.cpp
|
||||
+++ b/qtmultimedia/src/plugins/opensles/qopenslesengine.cpp
|
||||
@@ -114,7 +114,8 @@ QList<QByteArray> QOpenSLESEngine::availableDevices(QAudio::Mode mode) const
|
||||
#ifdef ANDROID
|
||||
devices << QT_ANDROID_PRESET_MIC
|
||||
<< QT_ANDROID_PRESET_CAMCORDER
|
||||
- << QT_ANDROID_PRESET_VOICE_RECOGNITION;
|
||||
+ << QT_ANDROID_PRESET_VOICE_RECOGNITION
|
||||
+ << QT_ANDROID_PRESET_VOICE_COMMUNICATION;
|
||||
#else
|
||||
devices << "default";
|
||||
#endif
|
||||
|
|
@ -1,247 +0,0 @@
|
|||
Submodule qtwebengine contains modified content
|
||||
diff --git a/qtwebengine/src/core/stream_video_node.cpp b/qtwebengine/src/core/stream_video_node.cpp
|
||||
index 29922f86..baa39d3b 100644
|
||||
--- a/qtwebengine/src/core/stream_video_node.cpp
|
||||
+++ b/qtwebengine/src/core/stream_video_node.cpp
|
||||
@@ -62,38 +62,45 @@ protected:
|
||||
const char *vertexShader() const override {
|
||||
// Keep in sync with cc::VertexShaderVideoTransform
|
||||
static const char *shader =
|
||||
- "attribute highp vec4 a_position;\n"
|
||||
- "attribute mediump vec2 a_texCoord;\n"
|
||||
- "uniform highp mat4 matrix;\n"
|
||||
- "uniform highp mat4 texMatrix;\n"
|
||||
- "varying mediump vec2 v_texCoord;\n"
|
||||
- "void main() {\n"
|
||||
- " gl_Position = matrix * a_position;\n"
|
||||
- " v_texCoord = vec4(texMatrix * vec4(a_texCoord.x, 1.0 - a_texCoord.y, 0.0, 1.0)).xy;\n"
|
||||
- "}";
|
||||
+ R"SHADER(#version 150 core
|
||||
+in vec4 a_position;
|
||||
+in vec2 a_texCoord;
|
||||
+uniform mat4 matrix;
|
||||
+uniform mat4 texMatrix;
|
||||
+out vec2 v_texCoord;
|
||||
+void main() {
|
||||
+ gl_Position = matrix * a_position;
|
||||
+ v_texCoord = vec4(texMatrix * vec4(a_texCoord.x, 1.0 - a_texCoord.y, 0.0, 1.0)).xy;
|
||||
+}
|
||||
+ )SHADER";
|
||||
return shader;
|
||||
}
|
||||
|
||||
const char *fragmentShader() const override {
|
||||
// Keep in sync with cc::FragmentShaderRGBATexAlpha
|
||||
static const char *shaderExternal =
|
||||
- "#extension GL_OES_EGL_image_external : require\n"
|
||||
- "varying mediump vec2 v_texCoord;\n"
|
||||
- "uniform samplerExternalOES s_texture;\n"
|
||||
- "uniform lowp float alpha;\n"
|
||||
- "void main() {\n"
|
||||
- " lowp vec4 texColor = texture2D(s_texture, v_texCoord);\n"
|
||||
- " gl_FragColor = texColor * alpha;\n"
|
||||
- "}";
|
||||
+ R"SHADER(#version 150 core
|
||||
+#extension GL_OES_EGL_image_external : require
|
||||
+in vec2 v_texCoord;
|
||||
+uniform samplerExternalOES s_texture;
|
||||
+uniform float alpha;
|
||||
+out vec4 fragColor;
|
||||
+void main() {
|
||||
+ vec4 texColor = texture(s_texture, v_texCoord);
|
||||
+ fragColor = texColor * alpha;
|
||||
+}
|
||||
+ )SHADER";
|
||||
static const char *shader2DRect =
|
||||
- "#extension GL_ARB_texture_rectangle : require\n"
|
||||
- "varying mediump vec2 v_texCoord;\n"
|
||||
- "uniform sampler2DRect s_texture;\n"
|
||||
- "uniform lowp float alpha;\n"
|
||||
- "void main() {\n"
|
||||
- " lowp vec4 texColor = texture2DRect(s_texture, v_texCoord);\n"
|
||||
- " gl_FragColor = texColor * alpha;\n"
|
||||
- "}";
|
||||
+ R"SHADER(#version 150 core
|
||||
+in vec2 v_texCoord;
|
||||
+uniform sampler2D s_texture;
|
||||
+uniform float alpha;
|
||||
+out vec4 fragColor;
|
||||
+void main() {
|
||||
+ vec4 texColor = texture(s_texture, v_texCoord);
|
||||
+ fragColor = texColor * alpha;
|
||||
+}
|
||||
+ )SHADER";
|
||||
if (m_target == ExternalTarget)
|
||||
return shaderExternal;
|
||||
else
|
||||
diff --git a/qtwebengine/src/core/yuv_video_node.cpp b/qtwebengine/src/core/yuv_video_node.cpp
|
||||
index 4a436d95..dc4b6ff9 100644
|
||||
--- a/qtwebengine/src/core/yuv_video_node.cpp
|
||||
+++ b/qtwebengine/src/core/yuv_video_node.cpp
|
||||
@@ -59,39 +59,41 @@ public:
|
||||
YUVVideoMaterialShader(const gfx::ColorSpace &colorSpace)
|
||||
{
|
||||
static const char *shaderHead =
|
||||
- "varying mediump vec2 v_yaTexCoord;\n"
|
||||
- "varying mediump vec2 v_uvTexCoord;\n"
|
||||
- "uniform sampler2D y_texture;\n"
|
||||
- "uniform sampler2D u_texture;\n"
|
||||
- "uniform sampler2D v_texture;\n"
|
||||
- "uniform mediump float alpha;\n"
|
||||
- "uniform mediump vec4 ya_clamp_rect;\n"
|
||||
- "uniform mediump vec4 uv_clamp_rect;\n";
|
||||
- static const char *shader =
|
||||
- "void main() {\n"
|
||||
- " mediump vec2 ya_clamped =\n"
|
||||
- " max(ya_clamp_rect.xy, min(ya_clamp_rect.zw, v_yaTexCoord));\n"
|
||||
- " mediump float y_raw = texture2D(y_texture, ya_clamped).x;\n"
|
||||
- " mediump vec2 uv_clamped =\n"
|
||||
- " max(uv_clamp_rect.xy, min(uv_clamp_rect.zw, v_uvTexCoord));\n"
|
||||
- " mediump float u_unsigned = texture2D(u_texture, uv_clamped).x;\n"
|
||||
- " mediump float v_unsigned = texture2D(v_texture, uv_clamped).x;\n"
|
||||
- " mediump vec3 yuv = vec3(y_raw, u_unsigned, v_unsigned);\n"
|
||||
- " mediump vec3 rgb = DoColorConversion(yuv);\n"
|
||||
- " gl_FragColor = vec4(rgb, 1.0) * alpha;\n"
|
||||
- "}";
|
||||
+ R"SHADER(#version 150 core
|
||||
+in vec2 v_yaTexCoord;
|
||||
+in vec2 v_uvTexCoord;
|
||||
+uniform sampler2D y_texture;
|
||||
+uniform sampler2D u_texture;
|
||||
+uniform sampler2D v_texture;
|
||||
+uniform float alpha;
|
||||
+uniform vec4 ya_clamp_rect;
|
||||
+uniform vec4 uv_clamp_rect;
|
||||
+out vec4 fragColor;
|
||||
+ )SHADER";
|
||||
+
|
||||
+ static const char *shader = R"SHADER(
|
||||
+void main() {
|
||||
+ vec2 ya_clamped =
|
||||
+ max(ya_clamp_rect.xy, min(ya_clamp_rect.zw, v_yaTexCoord));
|
||||
+ float y_raw = texture(y_texture, ya_clamped).x;
|
||||
+ vec2 uv_clamped =
|
||||
+ max(uv_clamp_rect.xy, min(uv_clamp_rect.zw, v_uvTexCoord));
|
||||
+ float u_unsigned = texture(u_texture, uv_clamped).x;
|
||||
+ float v_unsigned = texture(v_texture, uv_clamped).x;
|
||||
+ vec3 yuv = vec3(y_raw, u_unsigned, v_unsigned);
|
||||
+ vec3 rgb = DoColorConversion(yuv);
|
||||
+ fragColor = vec4(rgb, 1.0) * alpha;
|
||||
+}
|
||||
+ )SHADER";
|
||||
+
|
||||
// Invalid or unspecified color spaces should be treated as REC709.
|
||||
gfx::ColorSpace src = colorSpace.IsValid() ? colorSpace : gfx::ColorSpace::CreateREC709();
|
||||
gfx::ColorSpace dst = gfx::ColorSpace::CreateSRGB();
|
||||
std::unique_ptr<gfx::ColorTransform> transform =
|
||||
gfx::ColorTransform::NewColorTransform(src, dst, gfx::ColorTransform::Intent::INTENT_PERCEPTUAL);
|
||||
|
||||
- QByteArray header(shaderHead);
|
||||
- if (QOpenGLContext::currentContext()->isOpenGLES())
|
||||
- header = QByteArray("precision mediump float;\n") + header;
|
||||
-
|
||||
m_csShader = QByteArray::fromStdString(transform->GetShaderSource());
|
||||
- m_fragmentShader = header + m_csShader + QByteArray(shader);
|
||||
+ m_fragmentShader = QByteArray(shaderHead) + m_csShader + QByteArray(shader);
|
||||
}
|
||||
void updateState(const RenderState &state, QSGMaterial *newMaterial, QSGMaterial *oldMaterial) override;
|
||||
|
||||
@@ -108,20 +110,22 @@ protected:
|
||||
const char *vertexShader() const override {
|
||||
// Keep in sync with logic in VertexShader in components/viz/service/display/shader.cc
|
||||
const char *shader =
|
||||
- "attribute highp vec4 a_position;\n"
|
||||
- "attribute mediump vec2 a_texCoord;\n"
|
||||
- "uniform highp mat4 matrix;\n"
|
||||
- "varying mediump vec2 v_yaTexCoord;\n"
|
||||
- "varying mediump vec2 v_uvTexCoord;\n"
|
||||
- "uniform mediump vec2 yaTexScale;\n"
|
||||
- "uniform mediump vec2 yaTexOffset;\n"
|
||||
- "uniform mediump vec2 uvTexScale;\n"
|
||||
- "uniform mediump vec2 uvTexOffset;\n"
|
||||
- "void main() {\n"
|
||||
- " gl_Position = matrix * a_position;\n"
|
||||
- " v_yaTexCoord = a_texCoord * yaTexScale + yaTexOffset;\n"
|
||||
- " v_uvTexCoord = a_texCoord * uvTexScale + uvTexOffset;\n"
|
||||
- "}";
|
||||
+ R"SHADER(#version 150 core
|
||||
+in vec4 a_position;
|
||||
+in vec2 a_texCoord;
|
||||
+uniform mat4 matrix;
|
||||
+out vec2 v_yaTexCoord;
|
||||
+out vec2 v_uvTexCoord;
|
||||
+uniform vec2 yaTexScale;
|
||||
+uniform vec2 yaTexOffset;
|
||||
+uniform vec2 uvTexScale;
|
||||
+uniform vec2 uvTexOffset;
|
||||
+void main() {
|
||||
+ gl_Position = matrix * a_position;
|
||||
+ v_yaTexCoord = a_texCoord * yaTexScale + yaTexOffset;
|
||||
+ v_uvTexCoord = a_texCoord * uvTexScale + uvTexOffset;
|
||||
+}
|
||||
+ )SHADER";
|
||||
return shader;
|
||||
}
|
||||
|
||||
@@ -168,33 +172,35 @@ public:
|
||||
YUVAVideoMaterialShader(const gfx::ColorSpace &colorSpace) : YUVVideoMaterialShader(colorSpace)
|
||||
{
|
||||
static const char *shaderHead =
|
||||
- "varying mediump vec2 v_yaTexCoord;\n"
|
||||
- "varying mediump vec2 v_uvTexCoord;\n"
|
||||
- "uniform sampler2D y_texture;\n"
|
||||
- "uniform sampler2D u_texture;\n"
|
||||
- "uniform sampler2D v_texture;\n"
|
||||
- "uniform sampler2D a_texture;\n"
|
||||
- "uniform mediump float alpha;\n"
|
||||
- "uniform mediump vec4 ya_clamp_rect;\n"
|
||||
- "uniform mediump vec4 uv_clamp_rect;\n";
|
||||
+ R"SHADER(#version 150 core
|
||||
+in vec2 v_yaTexCoord;
|
||||
+in vec2 v_uvTexCoord;
|
||||
+uniform sampler2D y_texture;
|
||||
+uniform sampler2D u_texture;
|
||||
+uniform sampler2D v_texture;
|
||||
+uniform sampler2D a_texture;
|
||||
+uniform float alpha;
|
||||
+uniform vec4 ya_clamp_rect;
|
||||
+uniform vec4 uv_clamp_rect;
|
||||
+out vec4 fragColor;
|
||||
+ )SHADER";
|
||||
static const char *shader =
|
||||
- "void main() {\n"
|
||||
- " mediump vec2 ya_clamped =\n"
|
||||
- " max(ya_clamp_rect.xy, min(ya_clamp_rect.zw, v_yaTexCoord));\n"
|
||||
- " mediump float y_raw = texture2D(y_texture, ya_clamped).x;\n"
|
||||
- " mediump vec2 uv_clamped =\n"
|
||||
- " max(uv_clamp_rect.xy, min(uv_clamp_rect.zw, v_uvTexCoord));\n"
|
||||
- " mediump float u_unsigned = texture2D(u_texture, uv_clamped).x;\n"
|
||||
- " mediump float v_unsigned = texture2D(v_texture, uv_clamped).x;\n"
|
||||
- " mediump float a_raw = texture2D(a_texture, ya_clamped).x;\n"
|
||||
- " mediump vec3 yuv = vec3(y_raw, u_unsigned, v_unsigned);\n"
|
||||
- " mediump vec3 rgb = DoColorConversion(yuv);\n"
|
||||
- " gl_FragColor = vec4(rgb, 1.0) * (alpha * a_raw);\n"
|
||||
- "}";
|
||||
- QByteArray header(shaderHead);
|
||||
- if (QOpenGLContext::currentContext()->isOpenGLES())
|
||||
- header = QByteArray("precision mediump float;\n") + header;
|
||||
- m_fragmentShader = header + m_csShader + QByteArray(shader);
|
||||
+ R"SHADER(
|
||||
+void main() {
|
||||
+ vec2 ya_clamped =
|
||||
+ max(ya_clamp_rect.xy, min(ya_clamp_rect.zw, v_yaTexCoord));
|
||||
+ float y_raw = texture(y_texture, ya_clamped).x;
|
||||
+ vec2 uv_clamped =
|
||||
+ max(uv_clamp_rect.xy, min(uv_clamp_rect.zw, v_uvTexCoord));
|
||||
+ float u_unsigned = texture(u_texture, uv_clamped).x;
|
||||
+ float v_unsigned = texture(v_texture, uv_clamped).x;
|
||||
+ float a_raw = texture(a_texture, ya_clamped).x;
|
||||
+ vec3 yuv = vec3(y_raw, u_unsigned, v_unsigned);
|
||||
+ vec3 rgb = DoColorConversion(yuv);
|
||||
+ fragColor = vec4(rgb, 1.0) * (alpha * a_raw);
|
||||
+}
|
||||
+ )SHADER";
|
||||
+ m_fragmentShader = QByteArray(shaderHead) + m_csShader + QByteArray(shader);
|
||||
}
|
||||
void updateState(const RenderState &state, QSGMaterial *newMaterial, QSGMaterial *oldMaterial) override;
|
||||
|
|
@ -1,44 +0,0 @@
|
|||
diff --git a/qtbase/src/corelib/global/qfloat16.h b/qtbase/src/corelib/global/qfloat16.h
|
||||
index 3e50ad8467..2453ff8847 100644
|
||||
--- a/qtbase/src/corelib/global/qfloat16.h
|
||||
+++ b/qtbase/src/corelib/global/qfloat16.h
|
||||
@@ -83,7 +83,9 @@ private:
|
||||
Q_CORE_EXPORT static const quint32 shifttable[];
|
||||
|
||||
friend bool qIsNull(qfloat16 f) Q_DECL_NOTHROW;
|
||||
+#if ! defined(QT_NO_FLOAT16_OPERATORS)
|
||||
friend qfloat16 operator-(qfloat16 a) Q_DECL_NOTHROW;
|
||||
+#endif
|
||||
};
|
||||
|
||||
Q_DECLARE_TYPEINFO(qfloat16, Q_PRIMITIVE_TYPE);
|
||||
@@ -165,6 +167,7 @@ inline qfloat16::operator float() const Q_DECL_NOTHROW
|
||||
}
|
||||
#endif
|
||||
|
||||
+#if ! defined(QT_NO_FLOAT16_OPERATORS)
|
||||
inline qfloat16 operator-(qfloat16 a) Q_DECL_NOTHROW
|
||||
{
|
||||
qfloat16 f;
|
||||
@@ -206,11 +209,12 @@ QF16_MAKE_ARITH_OP_INT(-)
|
||||
QF16_MAKE_ARITH_OP_INT(*)
|
||||
QF16_MAKE_ARITH_OP_INT(/)
|
||||
#undef QF16_MAKE_ARITH_OP_INT
|
||||
-
|
||||
+#endif
|
||||
QT_WARNING_PUSH
|
||||
QT_WARNING_DISABLE_CLANG("-Wfloat-equal")
|
||||
QT_WARNING_DISABLE_GCC("-Wfloat-equal")
|
||||
|
||||
+#if ! defined(QT_NO_FLOAT16_OPERATORS)
|
||||
inline bool operator>(qfloat16 a, qfloat16 b) Q_DECL_NOTHROW { return static_cast<float>(a) > static_cast<float>(b); }
|
||||
inline bool operator<(qfloat16 a, qfloat16 b) Q_DECL_NOTHROW { return static_cast<float>(a) < static_cast<float>(b); }
|
||||
inline bool operator>=(qfloat16 a, qfloat16 b) Q_DECL_NOTHROW { return static_cast<float>(a) >= static_cast<float>(b); }
|
||||
@@ -244,6 +248,7 @@ QF16_MAKE_BOOL_OP_INT(<=)
|
||||
QF16_MAKE_BOOL_OP_INT(==)
|
||||
QF16_MAKE_BOOL_OP_INT(!=)
|
||||
#undef QF16_MAKE_BOOL_OP_INT
|
||||
+#endif
|
||||
|
||||
QT_WARNING_POP
|
||||
|
|
@ -1,16 +0,0 @@
|
|||
diff --git a/qtscript/src/script/api/qscriptengine.cpp b/qtscript/src/script/api/qscriptengine.cpp
|
||||
index c5f437b..942833e 100644
|
||||
--- a/qtscript/src/script/api/qscriptengine.cpp
|
||||
+++ b/qtscript/src/script/api/qscriptengine.cpp
|
||||
@@ -1332,8 +1332,10 @@ void QScriptEnginePrivate::collectGarbage()
|
||||
|
||||
void QScriptEnginePrivate::reportAdditionalMemoryCost(int size)
|
||||
{
|
||||
- if (size > 0)
|
||||
+ if (size > 0) {
|
||||
+ QScript::APIShim shim(this);
|
||||
globalData->heap.reportExtraMemoryCost(size);
|
||||
+ }
|
||||
}
|
||||
|
||||
QScript::TimeoutCheckerProxy *QScriptEnginePrivate::timeoutChecker() const
|
67
tools/qt-builder/patches/win-qtwebengine.diff
Normal file
67
tools/qt-builder/patches/win-qtwebengine.diff
Normal file
|
@ -0,0 +1,67 @@
|
|||
From 138a7203f16cf356e9d4dac697920a22437014b0 Mon Sep 17 00:00:00 2001
|
||||
From: Peter Varga <pvarga@inf.u-szeged.hu>
|
||||
Date: Fri, 13 Nov 2020 11:09:23 +0100
|
||||
Subject: [PATCH] Fix build with msvc2019 16.8.0
|
||||
|
||||
Fixes: QTBUG-88708
|
||||
Change-Id: I3554ceec0437801b4861f68edd504d01fc01cf93
|
||||
Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
|
||||
---
|
||||
|
||||
diff --git a/qtwebengine/src/3rdparty/chromium/third_party/angle/src/common/mathutil.cpp b/qtwebengine/src/3rdparty/chromium/third_party/angle/src/common/mathutil.cpp
|
||||
index 306cde1..d4f1034 100644
|
||||
--- a/qtwebengine/src/3rdparty/chromium/third_party/angle/src/common/mathutil.cpp
|
||||
+++ b/qtwebengine/src/3rdparty/chromium/third_party/angle/src/common/mathutil.cpp
|
||||
@@ -72,11 +72,11 @@
|
||||
const RGB9E5Data *inputData = reinterpret_cast<const RGB9E5Data *>(&input);
|
||||
|
||||
*red =
|
||||
- inputData->R * pow(2.0f, (int)inputData->E - g_sharedexp_bias - g_sharedexp_mantissabits);
|
||||
+ inputData->R * (float)pow(2.0f, (int)inputData->E - g_sharedexp_bias - g_sharedexp_mantissabits);
|
||||
*green =
|
||||
- inputData->G * pow(2.0f, (int)inputData->E - g_sharedexp_bias - g_sharedexp_mantissabits);
|
||||
+ inputData->G * (float)pow(2.0f, (int)inputData->E - g_sharedexp_bias - g_sharedexp_mantissabits);
|
||||
*blue =
|
||||
- inputData->B * pow(2.0f, (int)inputData->E - g_sharedexp_bias - g_sharedexp_mantissabits);
|
||||
+ inputData->B * (float)pow(2.0f, (int)inputData->E - g_sharedexp_bias - g_sharedexp_mantissabits);
|
||||
}
|
||||
|
||||
} // namespace gl
|
||||
diff --git a/qtwebengine/src/3rdparty/chromium/third_party/blink/renderer/platform/graphics/lab_color_space.h b/qtwebengine/src/3rdparty/chromium/third_party/blink/renderer/platform/graphics/lab_color_space.h
|
||||
index 78c316e..136c796 100644
|
||||
--- a/qtwebengine/src/3rdparty/chromium/third_party/blink/renderer/platform/graphics/lab_color_space.h
|
||||
+++ b/qtwebengine/src/3rdparty/chromium/third_party/blink/renderer/platform/graphics/lab_color_space.h
|
||||
@@ -130,7 +130,7 @@
|
||||
// https://en.wikipedia.org/wiki/CIELAB_color_space#Forward_transformation.
|
||||
FloatPoint3D toXYZ(const FloatPoint3D& lab) const {
|
||||
auto invf = [](float x) {
|
||||
- return x > kSigma ? pow(x, 3) : 3 * kSigma2 * (x - 4.0f / 29.0f);
|
||||
+ return x > kSigma ? (float)pow(x, 3) : 3 * kSigma2 * (x - 4.0f / 29.0f);
|
||||
};
|
||||
|
||||
FloatPoint3D v = {clamp(lab.X(), 0.0f, 100.0f),
|
||||
diff --git a/qtwebengine/src/3rdparty/chromium/third_party/perfetto/src/trace_processor/timestamped_trace_piece.h b/qtwebengine/src/3rdparty/chromium/third_party/perfetto/src/trace_processor/timestamped_trace_piece.h
|
||||
index 02363d0..8860287 100644
|
||||
--- a/qtwebengine/src/3rdparty/chromium/third_party/perfetto/src/trace_processor/timestamped_trace_piece.h
|
||||
+++ b/qtwebengine/src/3rdparty/chromium/third_party/perfetto/src/trace_processor/timestamped_trace_piece.h
|
||||
@@ -198,6 +198,20 @@
|
||||
return *this;
|
||||
}
|
||||
|
||||
+#if PERFETTO_BUILDFLAG(PERFETTO_COMPILER_MSVC)
|
||||
+ TimestampedTracePiece& operator=(TimestampedTracePiece&& ttp) const
|
||||
+ {
|
||||
+ if (this != &ttp) {
|
||||
+ // First invoke the destructor and then invoke the move constructor
|
||||
+ // inline via placement-new to implement move-assignment.
|
||||
+ this->~TimestampedTracePiece();
|
||||
+ new (const_cast<TimestampedTracePiece*>(this)) TimestampedTracePiece(std::move(ttp));
|
||||
+ }
|
||||
+
|
||||
+ return const_cast<TimestampedTracePiece&>(*this);
|
||||
+ }
|
||||
+#endif // PERFETTO_BUILDFLAG(PERFETTO_COMPILER_MSVC)
|
||||
+
|
||||
~TimestampedTracePiece() {
|
||||
switch (type) {
|
||||
case Type::kInvalid:
|
|
@ -1,9 +1,9 @@
|
|||
@echo off
|
||||
|
||||
REM Set up \Microsoft Visual Studio 2017, where <arch> is \c amd64, \c x86, etc.
|
||||
CALL "C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Auxiliary\Build\vcvarsall.bat" x64
|
||||
REM Set up \Microsoft Visual Studio 2019, where <arch> is \c amd64, \c x86, etc.
|
||||
CALL "C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Auxiliary\Build\vcvarsall.bat" x64
|
||||
|
||||
REM Edit this location to point to the source code of Qt
|
||||
REM Edit the following line to point to the drive and path of the Qt source code
|
||||
SET _ROOT=..\qt5
|
||||
|
||||
SET PATH=%_ROOT%\qtbase\bin;%_ROOT%\gnuwin32\bin;%PATH%
|
||||
|
|
Loading…
Reference in a new issue