Merge remote-tracking branch 'origin/5.12' into 5.12.1
Conflicts: src/widgets/kernel/qtooltip.cpp Change-Id: Ic2f9a425359050eb56b3a4e5162cf5e3447058c8bb10
commit
0e96b5fe48
|
|
@ -4,4 +4,4 @@ CONFIG += warning_clean
|
|||
QT_SOURCE_TREE = $$PWD
|
||||
QT_BUILD_TREE = $$shadowed($$PWD)
|
||||
|
||||
MODULE_VERSION = 5.12.0
|
||||
MODULE_VERSION = 5.12.1
|
||||
|
|
|
|||
|
|
@ -1 +0,0 @@
|
|||
#define HEADER_H
|
||||
|
|
@ -1,4 +0,0 @@
|
|||
CONFIG += precompile_header
|
||||
PRECOMPILED_DIR = .pch
|
||||
PRECOMPILED_HEADER = header.h
|
||||
SOURCES = source.cpp
|
||||
|
|
@ -1,44 +0,0 @@
|
|||
/****************************************************************************
|
||||
**
|
||||
** Copyright (C) 2016 The Qt Company.
|
||||
** Contact: https://www.qt.io/licensing/
|
||||
**
|
||||
** This file is part of the configuration of the Qt Toolkit.
|
||||
**
|
||||
** $QT_BEGIN_LICENSE:LGPL$
|
||||
** Commercial License Usage
|
||||
** Licensees holding valid commercial Qt licenses may use this file in
|
||||
** accordance with the commercial license agreement provided with the
|
||||
** Software or, alternatively, in accordance with the terms contained in
|
||||
** a written agreement between you and The Qt Company. For licensing terms
|
||||
** and conditions see https://www.qt.io/terms-conditions. For further
|
||||
** information use the contact form at https://www.qt.io/contact-us.
|
||||
**
|
||||
** GNU Lesser General Public License Usage
|
||||
** Alternatively, this file may be used under the terms of the GNU Lesser
|
||||
** General Public License version 3 as published by the Free Software
|
||||
** Foundation and appearing in the file LICENSE.LGPL3 included in the
|
||||
** packaging of this file. Please review the following information to
|
||||
** ensure the GNU Lesser General Public License version 3 requirements
|
||||
** will be met: https://www.gnu.org/licenses/lgpl-3.0.html.
|
||||
**
|
||||
** GNU General Public License Usage
|
||||
** Alternatively, this file may be used under the terms of the GNU
|
||||
** General Public License version 2.0 or (at your option) the GNU General
|
||||
** Public license version 3 or any later version approved by the KDE Free
|
||||
** Qt Foundation. The licenses are as published by the Free Software
|
||||
** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3
|
||||
** included in the packaging of this file. Please review the following
|
||||
** information to ensure the GNU General Public License requirements will
|
||||
** be met: https://www.gnu.org/licenses/gpl-2.0.html and
|
||||
** https://www.gnu.org/licenses/gpl-3.0.html.
|
||||
**
|
||||
** $QT_END_LICENSE$
|
||||
**
|
||||
****************************************************************************/
|
||||
|
||||
#ifndef HEADER_H
|
||||
#error no go
|
||||
#endif
|
||||
|
||||
int main() { return 0; }
|
||||
|
|
@ -1 +0,0 @@
|
|||
OBJECTIVE_SOURCES = corewlantest.mm
|
||||
|
|
@ -1,47 +0,0 @@
|
|||
/****************************************************************************
|
||||
**
|
||||
** Copyright (C) 2016 The Qt Company Ltd.
|
||||
** Contact: https://www.qt.io/licensing/
|
||||
**
|
||||
** This file is part of the config.tests of the Qt Toolkit.
|
||||
**
|
||||
** $QT_BEGIN_LICENSE:LGPL$
|
||||
** Commercial License Usage
|
||||
** Licensees holding valid commercial Qt licenses may use this file in
|
||||
** accordance with the commercial license agreement provided with the
|
||||
** Software or, alternatively, in accordance with the terms contained in
|
||||
** a written agreement between you and The Qt Company. For licensing terms
|
||||
** and conditions see https://www.qt.io/terms-conditions. For further
|
||||
** information use the contact form at https://www.qt.io/contact-us.
|
||||
**
|
||||
** GNU Lesser General Public License Usage
|
||||
** Alternatively, this file may be used under the terms of the GNU Lesser
|
||||
** General Public License version 3 as published by the Free Software
|
||||
** Foundation and appearing in the file LICENSE.LGPL3 included in the
|
||||
** packaging of this file. Please review the following information to
|
||||
** ensure the GNU Lesser General Public License version 3 requirements
|
||||
** will be met: https://www.gnu.org/licenses/lgpl-3.0.html.
|
||||
**
|
||||
** GNU General Public License Usage
|
||||
** Alternatively, this file may be used under the terms of the GNU
|
||||
** General Public License version 2.0 or (at your option) the GNU General
|
||||
** Public license version 3 or any later version approved by the KDE Free
|
||||
** Qt Foundation. The licenses are as published by the Free Software
|
||||
** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3
|
||||
** included in the packaging of this file. Please review the following
|
||||
** information to ensure the GNU General Public License requirements will
|
||||
** be met: https://www.gnu.org/licenses/gpl-2.0.html and
|
||||
** https://www.gnu.org/licenses/gpl-3.0.html.
|
||||
**
|
||||
** $QT_END_LICENSE$
|
||||
**
|
||||
****************************************************************************/
|
||||
|
||||
#include <CoreWLAN/CoreWLAN.h>
|
||||
#include <CoreWLAN/CWInterface.h>
|
||||
|
||||
int main()
|
||||
{
|
||||
[CWInterface interfaceWithName:@"en2"];
|
||||
return 0;
|
||||
}
|
||||
|
|
@ -1,54 +0,0 @@
|
|||
/****************************************************************************
|
||||
**
|
||||
** Copyright (C) 2016 The Qt Company Ltd.
|
||||
** Contact: https://www.qt.io/licensing/
|
||||
**
|
||||
** This file is part of the config.tests of the Qt Toolkit.
|
||||
**
|
||||
** $QT_BEGIN_LICENSE:LGPL$
|
||||
** Commercial License Usage
|
||||
** Licensees holding valid commercial Qt licenses may use this file in
|
||||
** accordance with the commercial license agreement provided with the
|
||||
** Software or, alternatively, in accordance with the terms contained in
|
||||
** a written agreement between you and The Qt Company. For licensing terms
|
||||
** and conditions see https://www.qt.io/terms-conditions. For further
|
||||
** information use the contact form at https://www.qt.io/contact-us.
|
||||
**
|
||||
** GNU Lesser General Public License Usage
|
||||
** Alternatively, this file may be used under the terms of the GNU Lesser
|
||||
** General Public License version 3 as published by the Free Software
|
||||
** Foundation and appearing in the file LICENSE.LGPL3 included in the
|
||||
** packaging of this file. Please review the following information to
|
||||
** ensure the GNU Lesser General Public License version 3 requirements
|
||||
** will be met: https://www.gnu.org/licenses/lgpl-3.0.html.
|
||||
**
|
||||
** GNU General Public License Usage
|
||||
** Alternatively, this file may be used under the terms of the GNU
|
||||
** General Public License version 2.0 or (at your option) the GNU General
|
||||
** Public license version 3 or any later version approved by the KDE Free
|
||||
** Qt Foundation. The licenses are as published by the Free Software
|
||||
** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3
|
||||
** included in the packaging of this file. Please review the following
|
||||
** information to ensure the GNU General Public License requirements will
|
||||
** be met: https://www.gnu.org/licenses/gpl-2.0.html and
|
||||
** https://www.gnu.org/licenses/gpl-3.0.html.
|
||||
**
|
||||
** $QT_END_LICENSE$
|
||||
**
|
||||
****************************************************************************/
|
||||
|
||||
#include <iconv.h>
|
||||
|
||||
int main(int, char **)
|
||||
{
|
||||
iconv_t x = iconv_open("", "");
|
||||
|
||||
const char *inp;
|
||||
char *outp;
|
||||
size_t inbytes, outbytes;
|
||||
iconv(x, &inp, &inbytes, &outp, &outbytes);
|
||||
|
||||
iconv_close(x);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
|
@ -1 +0,0 @@
|
|||
SOURCES = gnu-libiconv.cpp
|
||||
|
|
@ -1,54 +0,0 @@
|
|||
/****************************************************************************
|
||||
**
|
||||
** Copyright (C) 2016 The Qt Company Ltd.
|
||||
** Contact: https://www.qt.io/licensing/
|
||||
**
|
||||
** This file is part of the config.tests of the Qt Toolkit.
|
||||
**
|
||||
** $QT_BEGIN_LICENSE:LGPL$
|
||||
** Commercial License Usage
|
||||
** Licensees holding valid commercial Qt licenses may use this file in
|
||||
** accordance with the commercial license agreement provided with the
|
||||
** Software or, alternatively, in accordance with the terms contained in
|
||||
** a written agreement between you and The Qt Company. For licensing terms
|
||||
** and conditions see https://www.qt.io/terms-conditions. For further
|
||||
** information use the contact form at https://www.qt.io/contact-us.
|
||||
**
|
||||
** GNU Lesser General Public License Usage
|
||||
** Alternatively, this file may be used under the terms of the GNU Lesser
|
||||
** General Public License version 3 as published by the Free Software
|
||||
** Foundation and appearing in the file LICENSE.LGPL3 included in the
|
||||
** packaging of this file. Please review the following information to
|
||||
** ensure the GNU Lesser General Public License version 3 requirements
|
||||
** will be met: https://www.gnu.org/licenses/lgpl-3.0.html.
|
||||
**
|
||||
** GNU General Public License Usage
|
||||
** Alternatively, this file may be used under the terms of the GNU
|
||||
** General Public License version 2.0 or (at your option) the GNU General
|
||||
** Public license version 3 or any later version approved by the KDE Free
|
||||
** Qt Foundation. The licenses are as published by the Free Software
|
||||
** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3
|
||||
** included in the packaging of this file. Please review the following
|
||||
** information to ensure the GNU General Public License requirements will
|
||||
** be met: https://www.gnu.org/licenses/gpl-2.0.html and
|
||||
** https://www.gnu.org/licenses/gpl-3.0.html.
|
||||
**
|
||||
** $QT_END_LICENSE$
|
||||
**
|
||||
****************************************************************************/
|
||||
|
||||
#include <iconv.h>
|
||||
|
||||
int main(int, char **)
|
||||
{
|
||||
iconv_t x = iconv_open("", "");
|
||||
|
||||
char *inp;
|
||||
char *outp;
|
||||
size_t inbytes, outbytes;
|
||||
iconv(x, &inp, &inbytes, &outp, &outbytes);
|
||||
|
||||
iconv_close(x);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
|
@ -1,2 +0,0 @@
|
|||
SOURCES = iconv.cpp
|
||||
mac|mingw|openbsd|qnx|haiku:LIBS += -liconv
|
||||
|
|
@ -1,54 +0,0 @@
|
|||
/****************************************************************************
|
||||
**
|
||||
** Copyright (C) 2016 The Qt Company Ltd.
|
||||
** Contact: https://www.qt.io/licensing/
|
||||
**
|
||||
** This file is part of the config.tests of the Qt Toolkit.
|
||||
**
|
||||
** $QT_BEGIN_LICENSE:LGPL$
|
||||
** Commercial License Usage
|
||||
** Licensees holding valid commercial Qt licenses may use this file in
|
||||
** accordance with the commercial license agreement provided with the
|
||||
** Software or, alternatively, in accordance with the terms contained in
|
||||
** a written agreement between you and The Qt Company. For licensing terms
|
||||
** and conditions see https://www.qt.io/terms-conditions. For further
|
||||
** information use the contact form at https://www.qt.io/contact-us.
|
||||
**
|
||||
** GNU Lesser General Public License Usage
|
||||
** Alternatively, this file may be used under the terms of the GNU Lesser
|
||||
** General Public License version 3 as published by the Free Software
|
||||
** Foundation and appearing in the file LICENSE.LGPL3 included in the
|
||||
** packaging of this file. Please review the following information to
|
||||
** ensure the GNU Lesser General Public License version 3 requirements
|
||||
** will be met: https://www.gnu.org/licenses/lgpl-3.0.html.
|
||||
**
|
||||
** GNU General Public License Usage
|
||||
** Alternatively, this file may be used under the terms of the GNU
|
||||
** General Public License version 2.0 or (at your option) the GNU General
|
||||
** Public license version 3 or any later version approved by the KDE Free
|
||||
** Qt Foundation. The licenses are as published by the Free Software
|
||||
** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3
|
||||
** included in the packaging of this file. Please review the following
|
||||
** information to ensure the GNU General Public License requirements will
|
||||
** be met: https://www.gnu.org/licenses/gpl-2.0.html and
|
||||
** https://www.gnu.org/licenses/gpl-3.0.html.
|
||||
**
|
||||
** $QT_END_LICENSE$
|
||||
**
|
||||
****************************************************************************/
|
||||
|
||||
#include <openssl/opensslv.h>
|
||||
|
||||
#if !defined(OPENSSL_VERSION_NUMBER) || OPENSSL_VERSION_NUMBER-0 < 0x10000000L
|
||||
# error "OpenSSL >= 1.0.0 is required"
|
||||
#endif
|
||||
|
||||
#include <openssl/ssl.h>
|
||||
|
||||
#if OPENSSL_VERSION_NUMBER-0 >= 0x10002000L && !defined(OPENSSL_NO_EC) && !defined(SSL_CTRL_SET_CURVES)
|
||||
# error "OpenSSL was reported as >= 1.0.2 but is missing required features, possibly it's libressl which is unsupported"
|
||||
#endif
|
||||
|
||||
int main()
|
||||
{
|
||||
}
|
||||
|
|
@ -1 +0,0 @@
|
|||
SOURCES = openssl.cpp
|
||||
|
|
@ -1,58 +0,0 @@
|
|||
/****************************************************************************
|
||||
**
|
||||
** Copyright (C) 2017 The Qt Company Ltd.
|
||||
** Contact: https://www.qt.io/licensing/
|
||||
**
|
||||
** This file is part of the config.tests of the Qt Toolkit.
|
||||
**
|
||||
** $QT_BEGIN_LICENSE:LGPL$
|
||||
** Commercial License Usage
|
||||
** Licensees holding valid commercial Qt licenses may use this file in
|
||||
** accordance with the commercial license agreement provided with the
|
||||
** Software or, alternatively, in accordance with the terms contained in
|
||||
** a written agreement between you and The Qt Company. For licensing terms
|
||||
** and conditions see https://www.qt.io/terms-conditions. For further
|
||||
** information use the contact form at https://www.qt.io/contact-us.
|
||||
**
|
||||
** GNU Lesser General Public License Usage
|
||||
** Alternatively, this file may be used under the terms of the GNU Lesser
|
||||
** General Public License version 3 as published by the Free Software
|
||||
** Foundation and appearing in the file LICENSE.LGPL3 included in the
|
||||
** packaging of this file. Please review the following information to
|
||||
** ensure the GNU Lesser General Public License version 3 requirements
|
||||
** will be met: https://www.gnu.org/licenses/lgpl-3.0.html.
|
||||
**
|
||||
** GNU General Public License Usage
|
||||
** Alternatively, this file may be used under the terms of the GNU
|
||||
** General Public License version 2.0 or (at your option) the GNU General
|
||||
** Public license version 3 or any later version approved by the KDE Free
|
||||
** Qt Foundation. The licenses are as published by the Free Software
|
||||
** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3
|
||||
** included in the packaging of this file. Please review the following
|
||||
** information to ensure the GNU General Public License requirements will
|
||||
** be met: https://www.gnu.org/licenses/gpl-2.0.html and
|
||||
** https://www.gnu.org/licenses/gpl-3.0.html.
|
||||
**
|
||||
** $QT_END_LICENSE$
|
||||
**
|
||||
****************************************************************************/
|
||||
|
||||
// This is a header-only test. Qt does not rely on linking to a Vulkan library directly.
|
||||
|
||||
#include <vulkan/vulkan.h>
|
||||
|
||||
// The pData parameter has changed from uint32_t* to void* at some point.
|
||||
// Ensure the headers have the updated one to prevent compile errors later on.
|
||||
PFN_vkCmdUpdateBuffer cmdUpdBuf;
|
||||
void testUpdateBuffer(VkCommandBuffer commandBuffer, VkBuffer dstBuffer, VkDeviceSize dstOffset, VkDeviceSize dataSize, const void* pData)
|
||||
{
|
||||
cmdUpdBuf(commandBuffer, dstBuffer, dstOffset, dataSize, pData);
|
||||
}
|
||||
|
||||
int main(int, char **)
|
||||
{
|
||||
VkInstanceCreateInfo info;
|
||||
testUpdateBuffer(0, 0, 0, 0, 0);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
|
@ -1 +0,0 @@
|
|||
SOURCES = vulkan.cpp
|
||||
|
|
@ -1 +0,0 @@
|
|||
SOURCES = ../gnu-libiconv/gnu-libiconv.cpp
|
||||
|
|
@ -1,35 +0,0 @@
|
|||
/****************************************************************************
|
||||
**
|
||||
** Copyright (C) 2017 Intel Corporation.
|
||||
** Contact: https://www.qt.io/licensing/
|
||||
**
|
||||
** This file is part of the test suite of the Qt Toolkit.
|
||||
**
|
||||
** $QT_BEGIN_LICENSE:GPL-EXCEPT$
|
||||
** Commercial License Usage
|
||||
** Licensees holding valid commercial Qt licenses may use this file in
|
||||
** accordance with the commercial license agreement provided with the
|
||||
** Software or, alternatively, in accordance with the terms contained in
|
||||
** a written agreement between you and The Qt Company. For licensing terms
|
||||
** and conditions see https://www.qt.io/terms-conditions. For further
|
||||
** information use the contact form at https://www.qt.io/contact-us.
|
||||
**
|
||||
** GNU General Public License Usage
|
||||
** Alternatively, this file may be used under the terms of the GNU
|
||||
** General Public License version 3 as published by the Free Software
|
||||
** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
|
||||
** included in the packaging of this file. Please review the following
|
||||
** information to ensure the GNU General Public License requirements will
|
||||
** be met: https://www.gnu.org/licenses/gpl-3.0.html.
|
||||
**
|
||||
** $QT_END_LICENSE$
|
||||
**
|
||||
****************************************************************************/
|
||||
|
||||
#include <random>
|
||||
|
||||
int main()
|
||||
{
|
||||
std::mt19937 mt(0);
|
||||
return 0;
|
||||
}
|
||||
|
|
@ -1 +0,0 @@
|
|||
SOURCES = cxx11_random.cpp
|
||||
|
|
@ -1,47 +0,0 @@
|
|||
/****************************************************************************
|
||||
**
|
||||
** Copyright (C) 2015 Raphael Gozzo <raphael.rg91@gmail.com>
|
||||
** Contact: http://www.qt.io/licensing/
|
||||
**
|
||||
** This file is part of the config.tests of the Qt Toolkit.
|
||||
**
|
||||
** $QT_BEGIN_LICENSE:LGPL$
|
||||
** Commercial License Usage
|
||||
** Licensees holding valid commercial Qt licenses may use this file in
|
||||
** accordance with the commercial license agreement provided with the
|
||||
** Software or, alternatively, in accordance with the terms contained in
|
||||
** a written agreement between you and The Qt Company. For licensing terms
|
||||
** and conditions see https://www.qt.io/terms-conditions. For further
|
||||
** information use the contact form at https://www.qt.io/contact-us.
|
||||
**
|
||||
** GNU Lesser General Public License Usage
|
||||
** Alternatively, this file may be used under the terms of the GNU Lesser
|
||||
** General Public License version 3 as published by the Free Software
|
||||
** Foundation and appearing in the file LICENSE.LGPL3 included in the
|
||||
** packaging of this file. Please review the following information to
|
||||
** ensure the GNU Lesser General Public License version 3 requirements
|
||||
** will be met: https://www.gnu.org/licenses/lgpl-3.0.html.
|
||||
**
|
||||
** GNU General Public License Usage
|
||||
** Alternatively, this file may be used under the terms of the GNU
|
||||
** General Public License version 2.0 or (at your option) the GNU General
|
||||
** Public license version 3 or any later version approved by the KDE Free
|
||||
** Qt Foundation. The licenses are as published by the Free Software
|
||||
** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3
|
||||
** included in the packaging of this file. Please review the following
|
||||
** information to ensure the GNU General Public License requirements will
|
||||
** be met: https://www.gnu.org/licenses/gpl-2.0.html and
|
||||
** https://www.gnu.org/licenses/gpl-3.0.html.
|
||||
**
|
||||
** $QT_END_LICENSE$
|
||||
**
|
||||
****************************************************************************/
|
||||
|
||||
#include <sys/stat.h>
|
||||
|
||||
int main(int, char **)
|
||||
{
|
||||
futimens(-1,0);
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
|
@ -1,6 +0,0 @@
|
|||
SOURCES += futimens.cpp
|
||||
|
||||
# Block futimens() on Apple platforms unless it's available on ALL deployment
|
||||
# targets. This simplifies the logic at the call site dramatically, as it isn't
|
||||
# strictly needed compared to futimes().
|
||||
darwin: QMAKE_CXXFLAGS += -Werror=unguarded-availability
|
||||
|
|
@ -1,47 +0,0 @@
|
|||
/****************************************************************************
|
||||
**
|
||||
** Copyright (C) 2015 Raphael Gozzo <raphael.rg91@gmail.com>
|
||||
** Contact: http://www.qt.io/licensing/
|
||||
**
|
||||
** This file is part of the config.tests of the Qt Toolkit.
|
||||
**
|
||||
** $QT_BEGIN_LICENSE:LGPL$
|
||||
** Commercial License Usage
|
||||
** Licensees holding valid commercial Qt licenses may use this file in
|
||||
** accordance with the commercial license agreement provided with the
|
||||
** Software or, alternatively, in accordance with the terms contained in
|
||||
** a written agreement between you and The Qt Company. For licensing terms
|
||||
** and conditions see https://www.qt.io/terms-conditions. For further
|
||||
** information use the contact form at https://www.qt.io/contact-us.
|
||||
**
|
||||
** GNU Lesser General Public License Usage
|
||||
** Alternatively, this file may be used under the terms of the GNU Lesser
|
||||
** General Public License version 3 as published by the Free Software
|
||||
** Foundation and appearing in the file LICENSE.LGPL3 included in the
|
||||
** packaging of this file. Please review the following information to
|
||||
** ensure the GNU Lesser General Public License version 3 requirements
|
||||
** will be met: https://www.gnu.org/licenses/lgpl-3.0.html.
|
||||
**
|
||||
** GNU General Public License Usage
|
||||
** Alternatively, this file may be used under the terms of the GNU
|
||||
** General Public License version 2.0 or (at your option) the GNU General
|
||||
** Public license version 3 or any later version approved by the KDE Free
|
||||
** Qt Foundation. The licenses are as published by the Free Software
|
||||
** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3
|
||||
** included in the packaging of this file. Please review the following
|
||||
** information to ensure the GNU General Public License requirements will
|
||||
** be met: https://www.gnu.org/licenses/gpl-2.0.html and
|
||||
** https://www.gnu.org/licenses/gpl-3.0.html.
|
||||
**
|
||||
** $QT_END_LICENSE$
|
||||
**
|
||||
****************************************************************************/
|
||||
|
||||
#include <sys/time.h>
|
||||
|
||||
int main(int, char **)
|
||||
{
|
||||
futimes(-1,0);
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
|
@ -1 +0,0 @@
|
|||
SOURCES += futimes.cpp
|
||||
|
|
@ -1,34 +0,0 @@
|
|||
/****************************************************************************
|
||||
**
|
||||
** Copyright (C) 2017 Intel Corporation.
|
||||
** Contact: https://www.qt.io/licensing/
|
||||
**
|
||||
** This file is part of the test suite of the Qt Toolkit.
|
||||
**
|
||||
** $QT_BEGIN_LICENSE:GPL-EXCEPT$
|
||||
** Commercial License Usage
|
||||
** Licensees holding valid commercial Qt licenses may use this file in
|
||||
** accordance with the commercial license agreement provided with the
|
||||
** Software or, alternatively, in accordance with the terms contained in
|
||||
** a written agreement between you and The Qt Company. For licensing terms
|
||||
** and conditions see https://www.qt.io/terms-conditions. For further
|
||||
** information use the contact form at https://www.qt.io/contact-us.
|
||||
**
|
||||
** GNU General Public License Usage
|
||||
** Alternatively, this file may be used under the terms of the GNU
|
||||
** General Public License version 3 as published by the Free Software
|
||||
** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
|
||||
** included in the packaging of this file. Please review the following
|
||||
** information to ensure the GNU General Public License requirements will
|
||||
** be met: https://www.gnu.org/licenses/gpl-3.0.html.
|
||||
**
|
||||
** $QT_END_LICENSE$
|
||||
**
|
||||
****************************************************************************/
|
||||
|
||||
#include <sys/auxv.h>
|
||||
|
||||
int main()
|
||||
{
|
||||
return getauxval(AT_NULL);
|
||||
}
|
||||
|
|
@ -1 +0,0 @@
|
|||
SOURCES = getauxval.cpp
|
||||
|
|
@ -1,35 +0,0 @@
|
|||
/****************************************************************************
|
||||
**
|
||||
** Copyright (C) 2017 Intel Corporation.
|
||||
** Contact: https://www.qt.io/licensing/
|
||||
**
|
||||
** This file is part of the test suite of the Qt Toolkit.
|
||||
**
|
||||
** $QT_BEGIN_LICENSE:GPL-EXCEPT$
|
||||
** Commercial License Usage
|
||||
** Licensees holding valid commercial Qt licenses may use this file in
|
||||
** accordance with the commercial license agreement provided with the
|
||||
** Software or, alternatively, in accordance with the terms contained in
|
||||
** a written agreement between you and The Qt Company. For licensing terms
|
||||
** and conditions see https://www.qt.io/terms-conditions. For further
|
||||
** information use the contact form at https://www.qt.io/contact-us.
|
||||
**
|
||||
** GNU General Public License Usage
|
||||
** Alternatively, this file may be used under the terms of the GNU
|
||||
** General Public License version 3 as published by the Free Software
|
||||
** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
|
||||
** included in the packaging of this file. Please review the following
|
||||
** information to ensure the GNU General Public License requirements will
|
||||
** be met: https://www.gnu.org/licenses/gpl-3.0.html.
|
||||
**
|
||||
** $QT_END_LICENSE$
|
||||
**
|
||||
****************************************************************************/
|
||||
|
||||
#include <unistd.h>
|
||||
|
||||
int main()
|
||||
{
|
||||
char buf[32];
|
||||
return getentropy(buf, sizeof(buf));
|
||||
}
|
||||
|
|
@ -1 +0,0 @@
|
|||
SOURCES = getentropy.cpp
|
||||
|
|
@ -1,47 +0,0 @@
|
|||
/****************************************************************************
|
||||
**
|
||||
** Copyright (C) 2017 The Qt Company Ltd.
|
||||
** Contact: https://www.qt.io/licensing/
|
||||
**
|
||||
** This file is part of the config.tests of the Qt Toolkit.
|
||||
**
|
||||
** $QT_BEGIN_LICENSE:LGPL$
|
||||
** Commercial License Usage
|
||||
** Licensees holding valid commercial Qt licenses may use this file in
|
||||
** accordance with the commercial license agreement provided with the
|
||||
** Software or, alternatively, in accordance with the terms contained in
|
||||
** a written agreement between you and The Qt Company. For licensing terms
|
||||
** and conditions see https://www.qt.io/terms-conditions. For further
|
||||
** information use the contact form at https://www.qt.io/contact-us.
|
||||
**
|
||||
** GNU Lesser General Public License Usage
|
||||
** Alternatively, this file may be used under the terms of the GNU Lesser
|
||||
** General Public License version 3 as published by the Free Software
|
||||
** Foundation and appearing in the file LICENSE.LGPL3 included in the
|
||||
** packaging of this file. Please review the following information to
|
||||
** ensure the GNU Lesser General Public License version 3 requirements
|
||||
** will be met: https://www.gnu.org/licenses/lgpl-3.0.html.
|
||||
**
|
||||
** GNU General Public License Usage
|
||||
** Alternatively, this file may be used under the terms of the GNU
|
||||
** General Public License version 2.0 or (at your option) the GNU General
|
||||
** Public license version 3 or any later version approved by the KDE Free
|
||||
** Qt Foundation. The licenses are as published by the Free Software
|
||||
** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3
|
||||
** included in the packaging of this file. Please review the following
|
||||
** information to ensure the GNU General Public License requirements will
|
||||
** be met: https://www.gnu.org/licenses/gpl-2.0.html and
|
||||
** https://www.gnu.org/licenses/gpl-3.0.html.
|
||||
**
|
||||
** $QT_END_LICENSE$
|
||||
**
|
||||
****************************************************************************/
|
||||
|
||||
#include <GLES3/gl32.h>
|
||||
|
||||
int main(int, char **)
|
||||
{
|
||||
glFramebufferTexture(GL_TEXTURE_2D, GL_DEPTH_STENCIL_ATTACHMENT, 1, 0);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
|
@ -1,7 +0,0 @@
|
|||
# The library is expected to be the same as in ES 2.0 (libGLESv2).
|
||||
# The difference is the header and the presence of the functions in
|
||||
# the library.
|
||||
|
||||
SOURCES = opengles32.cpp
|
||||
|
||||
CONFIG -= qt
|
||||
|
|
@ -1,48 +0,0 @@
|
|||
/****************************************************************************
|
||||
**
|
||||
** Copyright (C) 2017 The Qt Company Ltd.
|
||||
** Contact: https://www.qt.io/licensing/
|
||||
**
|
||||
** This file is part of the config.tests of the Qt Toolkit.
|
||||
**
|
||||
** $QT_BEGIN_LICENSE:LGPL$
|
||||
** Commercial License Usage
|
||||
** Licensees holding valid commercial Qt licenses may use this file in
|
||||
** accordance with the commercial license agreement provided with the
|
||||
** Software or, alternatively, in accordance with the terms contained in
|
||||
** a written agreement between you and The Qt Company. For licensing terms
|
||||
** and conditions see https://www.qt.io/terms-conditions. For further
|
||||
** information use the contact form at https://www.qt.io/contact-us.
|
||||
**
|
||||
** GNU Lesser General Public License Usage
|
||||
** Alternatively, this file may be used under the terms of the GNU Lesser
|
||||
** General Public License version 3 as published by the Free Software
|
||||
** Foundation and appearing in the file LICENSE.LGPL3 included in the
|
||||
** packaging of this file. Please review the following information to
|
||||
** ensure the GNU Lesser General Public License version 3 requirements
|
||||
** will be met: https://www.gnu.org/licenses/lgpl-3.0.html.
|
||||
**
|
||||
** GNU General Public License Usage
|
||||
** Alternatively, this file may be used under the terms of the GNU
|
||||
** General Public License version 2.0 or (at your option) the GNU General
|
||||
** Public license version 3 or any later version approved by the KDE Free
|
||||
** Qt Foundation. The licenses are as published by the Free Software
|
||||
** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3
|
||||
** included in the packaging of this file. Please review the following
|
||||
** information to ensure the GNU General Public License requirements will
|
||||
** be met: https://www.gnu.org/licenses/gpl-2.0.html and
|
||||
** https://www.gnu.org/licenses/gpl-3.0.html.
|
||||
**
|
||||
** $QT_END_LICENSE$
|
||||
**
|
||||
****************************************************************************/
|
||||
|
||||
#include <openssl/opensslv.h>
|
||||
|
||||
#if !defined(OPENSSL_VERSION_NUMBER) || OPENSSL_VERSION_NUMBER-0 < 0x10100000L
|
||||
# error "OpenSSL >= 1.1 is required"
|
||||
#endif
|
||||
|
||||
int main()
|
||||
{
|
||||
}
|
||||
|
|
@ -1,2 +0,0 @@
|
|||
SOURCES = openssl.cpp
|
||||
CONFIG -= x11 qt
|
||||
|
|
@ -1,52 +0,0 @@
|
|||
/****************************************************************************
|
||||
**
|
||||
** Copyright (C) 2017 The Qt Company Ltd.
|
||||
** Contact: https://www.qt.io/licensing/
|
||||
**
|
||||
** This file is part of the config.tests of the Qt Toolkit.
|
||||
**
|
||||
** $QT_BEGIN_LICENSE:LGPL$
|
||||
** Commercial License Usage
|
||||
** Licensees holding valid commercial Qt licenses may use this file in
|
||||
** accordance with the commercial license agreement provided with the
|
||||
** Software or, alternatively, in accordance with the terms contained in
|
||||
** a written agreement between you and The Qt Company. For licensing terms
|
||||
** and conditions see https://www.qt.io/terms-conditions. For further
|
||||
** information use the contact form at https://www.qt.io/contact-us.
|
||||
**
|
||||
** GNU Lesser General Public License Usage
|
||||
** Alternatively, this file may be used under the terms of the GNU Lesser
|
||||
** General Public License version 3 as published by the Free Software
|
||||
** Foundation and appearing in the file LICENSE.LGPL3 included in the
|
||||
** packaging of this file. Please review the following information to
|
||||
** ensure the GNU Lesser General Public License version 3 requirements
|
||||
** will be met: https://www.gnu.org/licenses/lgpl-3.0.html.
|
||||
**
|
||||
** GNU General Public License Usage
|
||||
** Alternatively, this file may be used under the terms of the GNU
|
||||
** General Public License version 2.0 or (at your option) the GNU General
|
||||
** Public license version 3 or any later version approved by the KDE Free
|
||||
** Qt Foundation. The licenses are as published by the Free Software
|
||||
** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3
|
||||
** included in the packaging of this file. Please review the following
|
||||
** information to ensure the GNU General Public License requirements will
|
||||
** be met: https://www.gnu.org/licenses/gpl-2.0.html and
|
||||
** https://www.gnu.org/licenses/gpl-3.0.html.
|
||||
**
|
||||
** $QT_END_LICENSE$
|
||||
**
|
||||
****************************************************************************/
|
||||
|
||||
#include <X11/Xlib.h>
|
||||
#include <X11/extensions/Xrender.h>
|
||||
|
||||
#if RENDER_MAJOR == 0 && RENDER_MINOR < 5
|
||||
# error "Required Xrender version 0.6 not found."
|
||||
#else
|
||||
int main(int, char **)
|
||||
{
|
||||
XRenderPictFormat *format;
|
||||
format = 0;
|
||||
return 0;
|
||||
}
|
||||
#endif
|
||||
|
|
@ -1,2 +0,0 @@
|
|||
SOURCES = xrender.cpp
|
||||
CONFIG -= qt
|
||||
|
|
@ -1,43 +0,0 @@
|
|||
/****************************************************************************
|
||||
**
|
||||
** Copyright (C) 2016 The Qt Company Ltd.
|
||||
** Contact: https://www.qt.io/licensing/
|
||||
**
|
||||
** This file is part of the config.tests of the Qt Toolkit.
|
||||
**
|
||||
** $QT_BEGIN_LICENSE:LGPL$
|
||||
** Commercial License Usage
|
||||
** Licensees holding valid commercial Qt licenses may use this file in
|
||||
** accordance with the commercial license agreement provided with the
|
||||
** Software or, alternatively, in accordance with the terms contained in
|
||||
** a written agreement between you and The Qt Company. For licensing terms
|
||||
** and conditions see https://www.qt.io/terms-conditions. For further
|
||||
** information use the contact form at https://www.qt.io/contact-us.
|
||||
**
|
||||
** GNU Lesser General Public License Usage
|
||||
** Alternatively, this file may be used under the terms of the GNU Lesser
|
||||
** General Public License version 3 as published by the Free Software
|
||||
** Foundation and appearing in the file LICENSE.LGPL3 included in the
|
||||
** packaging of this file. Please review the following information to
|
||||
** ensure the GNU Lesser General Public License version 3 requirements
|
||||
** will be met: https://www.gnu.org/licenses/lgpl-3.0.html.
|
||||
**
|
||||
** GNU General Public License Usage
|
||||
** Alternatively, this file may be used under the terms of the GNU
|
||||
** General Public License version 2.0 or (at your option) the GNU General
|
||||
** Public license version 3 or any later version approved by the KDE Free
|
||||
** Qt Foundation. The licenses are as published by the Free Software
|
||||
** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3
|
||||
** included in the packaging of this file. Please review the following
|
||||
** information to ensure the GNU General Public License requirements will
|
||||
** be met: https://www.gnu.org/licenses/gpl-2.0.html and
|
||||
** https://www.gnu.org/licenses/gpl-3.0.html.
|
||||
**
|
||||
** $QT_END_LICENSE$
|
||||
**
|
||||
****************************************************************************/
|
||||
|
||||
#ifndef QGLOBAL_H
|
||||
#define QGLOBAL_H
|
||||
|
||||
#endif
|
||||
|
|
@ -1,62 +0,0 @@
|
|||
/****************************************************************************
|
||||
**
|
||||
** Copyright (C) 2016 The Qt Company Ltd.
|
||||
** Contact: https://www.qt.io/licensing/
|
||||
**
|
||||
** This file is part of the config.tests of the Qt Toolkit.
|
||||
**
|
||||
** $QT_BEGIN_LICENSE:LGPL$
|
||||
** Commercial License Usage
|
||||
** Licensees holding valid commercial Qt licenses may use this file in
|
||||
** accordance with the commercial license agreement provided with the
|
||||
** Software or, alternatively, in accordance with the terms contained in
|
||||
** a written agreement between you and The Qt Company. For licensing terms
|
||||
** and conditions see https://www.qt.io/terms-conditions. For further
|
||||
** information use the contact form at https://www.qt.io/contact-us.
|
||||
**
|
||||
** GNU Lesser General Public License Usage
|
||||
** Alternatively, this file may be used under the terms of the GNU Lesser
|
||||
** General Public License version 3 as published by the Free Software
|
||||
** Foundation and appearing in the file LICENSE.LGPL3 included in the
|
||||
** packaging of this file. Please review the following information to
|
||||
** ensure the GNU Lesser General Public License version 3 requirements
|
||||
** will be met: https://www.gnu.org/licenses/lgpl-3.0.html.
|
||||
**
|
||||
** GNU General Public License Usage
|
||||
** Alternatively, this file may be used under the terms of the GNU
|
||||
** General Public License version 2.0 or (at your option) the GNU General
|
||||
** Public license version 3 or any later version approved by the KDE Free
|
||||
** Qt Foundation. The licenses are as published by the Free Software
|
||||
** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3
|
||||
** included in the packaging of this file. Please review the following
|
||||
** information to ensure the GNU General Public License requirements will
|
||||
** be met: https://www.gnu.org/licenses/gpl-2.0.html and
|
||||
** https://www.gnu.org/licenses/gpl-3.0.html.
|
||||
**
|
||||
** $QT_END_LICENSE$
|
||||
**
|
||||
****************************************************************************/
|
||||
|
||||
#define QT_BEGIN_NAMESPACE
|
||||
#define QT_END_NAMESPACE
|
||||
|
||||
#ifdef _MSVC_VER
|
||||
#define Q_CC_MSVC _MSVC_VER
|
||||
#endif
|
||||
|
||||
#define QT_NO_DOUBLECONVERSION
|
||||
|
||||
#include "../../../src/corelib/tools/qdoublescanprint_p.h"
|
||||
|
||||
int main(int argc, char **argv)
|
||||
{
|
||||
#ifdef _MSVC_VER
|
||||
_locale_t invalidLocale = NULL;
|
||||
#else
|
||||
locale_t invalidLocale = NULL;
|
||||
#endif
|
||||
double a = 3.4;
|
||||
qDoubleSnprintf(argv[0], 1, invalidLocale, "invalid format", a);
|
||||
qDoubleSscanf(argv[0], invalidLocale, "invalid format", &a, &argc);
|
||||
return 0;
|
||||
}
|
||||
|
|
@ -1 +0,0 @@
|
|||
SOURCES = xlocalescanprint.cpp
|
||||
|
|
@ -17,7 +17,8 @@ quoting and double quotes for the outer quoting.
|
|||
|
||||
Top-level installation directories:
|
||||
-prefix <dir> ...... The deployment directory, as seen on the target device.
|
||||
[/usr/local/Qt-$QT_VERSION, $PWD if -developer-build]
|
||||
[/usr/local/Qt-$QT_VERSION; qtbase build directory if
|
||||
-developer-build]
|
||||
-extprefix <dir> ... The installation directory, as seen on the host machine.
|
||||
[SYSROOT/PREFIX]
|
||||
-hostprefix [dir] .. The installation directory for build tools running on
|
||||
|
|
@ -292,7 +293,7 @@ Gui, printing, widget options:
|
|||
-kms ............... Enable backends for KMS [auto] (Linux only)
|
||||
-linuxfb ........... Enable Linux Framebuffer support [auto] (Linux only)
|
||||
-mirclient ......... Enable Mir client support [no] (Linux only)
|
||||
-xcb ............... Select used xcb-* libraries [system/qt/no]
|
||||
-xcb ............... Enable X11 support. Select used xcb-* libraries [system/qt/no]
|
||||
(-qt-xcb still uses system version of libxcb itself)
|
||||
|
||||
Input backends:
|
||||
|
|
|
|||
|
|
@ -152,13 +152,13 @@
|
|||
"zlib": {
|
||||
"label": "zlib",
|
||||
"test": {
|
||||
"include": "zlib.h",
|
||||
"main": [
|
||||
"z_streamp stream = 0;",
|
||||
"(void) zlibVersion();",
|
||||
"(void) compress2(0, 0, 0, 0, 1); // compress2 was added in zlib version 1.0.8"
|
||||
]
|
||||
},
|
||||
"headers": "zlib.h",
|
||||
"sources": [
|
||||
{ "libs": "-lzdll", "condition": "config.msvc" },
|
||||
{ "libs": "-lzlib", "condition": "config.msvc" },
|
||||
|
|
@ -169,9 +169,9 @@
|
|||
"dbus": {
|
||||
"label": "D-Bus >= 1.2",
|
||||
"test": {
|
||||
"include": "dbus/dbus.h",
|
||||
"main": "(void) dbus_bus_get_private(DBUS_BUS_SYSTEM, (DBusError *)NULL);"
|
||||
},
|
||||
"headers": "dbus/dbus.h",
|
||||
"sources": [
|
||||
{ "type": "pkgConfig", "args": "dbus-1 >= 1.2" },
|
||||
{
|
||||
|
|
@ -196,9 +196,9 @@
|
|||
"libudev": {
|
||||
"label": "udev",
|
||||
"test": {
|
||||
"include": "libudev.h",
|
||||
"main": "udev_unref(udev_new());"
|
||||
},
|
||||
"headers": "libudev.h",
|
||||
"sources": [
|
||||
{ "type": "pkgConfig", "args": "libudev" },
|
||||
"-ludev"
|
||||
|
|
@ -324,7 +324,21 @@
|
|||
"precompile_header": {
|
||||
"label": "precompiled header support",
|
||||
"type": "compile",
|
||||
"test": "common/pch"
|
||||
"test": {
|
||||
"files": {
|
||||
"header.h": "#define HEADER_H"
|
||||
},
|
||||
"tail": [
|
||||
"#ifndef HEADER_H",
|
||||
"#error no go",
|
||||
"#endif"
|
||||
],
|
||||
"qmake": [
|
||||
"CONFIG += precompile_header",
|
||||
"PRECOMPILED_DIR = .pch",
|
||||
"PRECOMPILED_HEADER = header.h"
|
||||
]
|
||||
}
|
||||
},
|
||||
"use_gold_linker": {
|
||||
"label": "gold linker",
|
||||
|
|
|
|||
|
|
@ -48,6 +48,7 @@ information about a particular change.
|
|||
- The minimal required version of libxcb is now 1.9. Bundled xcb sources
|
||||
were updated to libxcb 1.9.1 built with xcb-proto 1.8.
|
||||
- [QTBUG-67654] Updated CLDR to version 33.1
|
||||
- [QTBUG-71144] Updated CLDR to version 34
|
||||
- [QTBUG-66561][QTBUG-70008] double-conversion got updated to upstream
|
||||
version 3.1.1.
|
||||
- libjpeg-turbo was updated to version 2.0.0
|
||||
|
|
|
|||
|
|
@ -5,5 +5,6 @@ SUBDIRS = \
|
|||
ipc \
|
||||
mimetypes \
|
||||
serialization \
|
||||
threads \
|
||||
tools
|
||||
|
||||
qtConfig(thread): SUBDIRS += threads
|
||||
|
|
|
|||
|
|
@ -94,12 +94,6 @@ public:
|
|||
}
|
||||
fprintf(stderr, "\n");
|
||||
}
|
||||
|
||||
signals:
|
||||
void stringConsumed(const QString &text);
|
||||
|
||||
protected:
|
||||
bool finish;
|
||||
};
|
||||
//! [4]
|
||||
|
||||
|
|
|
|||
|
|
@ -0,0 +1,32 @@
|
|||
#
|
||||
# qmake configuration for Compilers based on the Microsoft Visual Studio
|
||||
# C/C++ Compilers like win32-clang-msvc
|
||||
|
||||
#
|
||||
# Version-specific changes
|
||||
#
|
||||
|
||||
isEmpty(QMAKE_MSC_VER): error("msvc-based-version.conf loaded but QMAKE_MSC_VER isn't set")
|
||||
|
||||
MSVC_VER = 14.0
|
||||
COMPAT_MKSPEC = win32-msvc2015
|
||||
|
||||
# -utf-8 compiler option for Visual Studio 2015 Update 2
|
||||
greaterThan(QMAKE_MSC_FULL_VER, 190023918):!intel_icl {
|
||||
isEmpty(QT_CLANG_MAJOR_VERSION)|!lessThan(QT_CLANG_MAJOR_VERSION, 4) {
|
||||
QMAKE_CFLAGS_UTF8_SOURCE = -utf-8
|
||||
}
|
||||
}
|
||||
|
||||
greaterThan(QMAKE_MSC_VER, 1909) {
|
||||
# Visual Studio 2017 (15.0) / Visual C++ 19.10 and up
|
||||
MSVC_VER = 15.0
|
||||
COMPAT_MKSPEC = win32-msvc2017
|
||||
}
|
||||
|
||||
greaterThan(QMAKE_MSC_VER, 1910) {
|
||||
# No compat spec past MSVC 2017
|
||||
COMPAT_MKSPEC =
|
||||
}
|
||||
|
||||
!isEmpty(COMPAT_MKSPEC):!$$COMPAT_MKSPEC: CONFIG += $$COMPAT_MKSPEC
|
||||
|
|
@ -1,7 +1,6 @@
|
|||
#
|
||||
# qmake configuration for Microsoft Visual Studio C/C++ Compiler
|
||||
# This file is used by win32-msvc, win32-clang-msvc, and all
|
||||
# winrt-XXX-msvcXXX specs
|
||||
# This file is used by win32-msvc and all winrt-XXX-msvcXXX specs
|
||||
#
|
||||
|
||||
#
|
||||
|
|
@ -70,11 +69,8 @@ greaterThan(QMAKE_MSC_VER, 1899) {
|
|||
QMAKE_CXXFLAGS += -Zc:strictStrings -Zc:throwingNew
|
||||
QMAKE_CXXFLAGS_WARN_ON += -w44456 -w44457 -w44458 -wd4577 -wd4467
|
||||
|
||||
greaterThan(QMAKE_MSC_FULL_VER, 190023918):!intel_icl {
|
||||
isEmpty(QT_CLANG_MAJOR_VERSION)|!lessThan(QT_CLANG_MAJOR_VERSION, 4) {
|
||||
QMAKE_CFLAGS_UTF8_SOURCE = -utf-8
|
||||
}
|
||||
}
|
||||
# -utf-8 compiler option for Visual Studio 2015 Update 2
|
||||
greaterThan(QMAKE_MSC_FULL_VER, 190023918): QMAKE_CFLAGS_UTF8_SOURCE = -utf-8
|
||||
}
|
||||
|
||||
greaterThan(QMAKE_MSC_VER, 1909) {
|
||||
|
|
|
|||
|
|
@ -0,0 +1,44 @@
|
|||
:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
|
||||
::
|
||||
:: Copyright (C) 2018 The Qt Company Ltd.
|
||||
:: Contact: https://www.qt.io/licensing/
|
||||
::
|
||||
:: This file is part of the tools applications of the Qt Toolkit.
|
||||
::
|
||||
:: $QT_BEGIN_LICENSE:GPL-EXCEPT$
|
||||
:: Commercial License Usage
|
||||
:: Licensees holding valid commercial Qt licenses may use this file in
|
||||
:: accordance with the commercial license agreement provided with the
|
||||
:: Software or, alternatively, in accordance with the terms contained in
|
||||
:: a written agreement between you and The Qt Company. For licensing terms
|
||||
:: and conditions see https://www.qt.io/terms-conditions. For further
|
||||
:: information use the contact form at https://www.qt.io/contact-us.
|
||||
::
|
||||
:: GNU General Public License Usage
|
||||
:: Alternatively, this file may be used under the terms of the GNU
|
||||
:: General Public License version 3 as published by the Free Software
|
||||
:: Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
|
||||
:: included in the packaging of this file. Please review the following
|
||||
:: information to ensure the GNU General Public License requirements will
|
||||
:: be met: https://www.gnu.org/licenses/gpl-3.0.html.
|
||||
::
|
||||
:: $QT_END_LICENSE$
|
||||
::
|
||||
:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
|
||||
|
||||
@echo off
|
||||
|
||||
REM We clear INCLUDE and LIB, because we want to obtain pristine values.
|
||||
REM PATH cannot be cleared, because then the script does not even run,
|
||||
REM and it would be counterproductive anyway (see toolchain.prf).
|
||||
set INCLUDE=
|
||||
set LIB=
|
||||
|
||||
call %* || exit 1
|
||||
REM VS2015 does not set errorlevel in case of failure.
|
||||
if "%INCLUDE%" == "" exit 1
|
||||
|
||||
echo =+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=
|
||||
echo %INCLUDE%
|
||||
echo %LIB%
|
||||
echo %PATH%
|
||||
|
|
@ -2,6 +2,7 @@ INCLUDEPATH += $$QMAKE_INCDIR_EGL
|
|||
LIBS_PRIVATE += $$QMAKE_LIBS_EGL
|
||||
QMAKE_CFLAGS += $$QMAKE_CFLAGS_EGL
|
||||
QMAKE_CXXFLAGS += $$QMAKE_CFLAGS_EGL
|
||||
DEFINES += $$QMAKE_DEFINES_EGL
|
||||
LIBS += $$QMAKE_LFLAGS_EGL
|
||||
for(p, QMAKE_LIBDIR_EGL) {
|
||||
LIBS_PRIVATE += -L$$p
|
||||
|
|
|
|||
|
|
@ -110,7 +110,7 @@
|
|||
# Backwards compatibility
|
||||
for (bundle_data, QMAKE_BUNDLE_DATA) {
|
||||
for (bundle_file, $${bundle_data}.files) {
|
||||
!contains(bundle_file, .*\.xcassets$): next()
|
||||
!contains(bundle_file, .*\\.xcassets$): next()
|
||||
warning("*.xcassets in QMAKE_BUNDLE_DATA is deprecated. Use QMAKE_ASSET_CATALOGS instead.")
|
||||
!exists($$absolute_path($$bundle_file/AppIcon.appiconset, $$_PRO_FILE_PWD_)): next()
|
||||
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
load(default_post)
|
||||
|
||||
contains(TEMPLATE, .*app) {
|
||||
!macx-xcode {
|
||||
!macx-xcode:if(isEmpty(BUILDS)|build_pass) {
|
||||
# Detect changes to the platform SDK
|
||||
QMAKE_EXTRA_VARIABLES += QMAKE_MAC_SDK QMAKE_MAC_SDK_VERSION QMAKE_XCODE_DEVELOPER_PATH
|
||||
QMAKE_EXTRA_INCLUDES += $$shell_quote($$PWD/sdk.mk)
|
||||
|
|
@ -21,7 +21,7 @@ contains(TEMPLATE, .*app) {
|
|||
!isEmpty($$list($$(QT_MAC_SDK_NO_VERSION_CHECK))): \
|
||||
CONFIG += sdk_no_version_check
|
||||
|
||||
QMAKE_MAC_SDK_MAJOR_MINOR_VERSION = $$replace(QMAKE_MAC_SDK_VERSION, "(\d+)(\.\d+)(\.\d+)?", \1\2)
|
||||
QMAKE_MAC_SDK_MAJOR_MINOR_VERSION = $$replace(QMAKE_MAC_SDK_VERSION, "(\\d+)(\\.\\d+)(\\.\\d+)?", \\1\\2)
|
||||
|
||||
!sdk_no_version_check:!versionAtMost(QMAKE_MAC_SDK_MAJOR_MINOR_VERSION, $$QT_MAC_SDK_VERSION_MAX) {
|
||||
warning("Qt has only been tested with version $$QT_MAC_SDK_VERSION_MAX"\
|
||||
|
|
|
|||
|
|
@ -38,7 +38,7 @@ if(gcc|intel_icl|msvc):!rim_qcc:!uikit:!no_moc_predefs:if(!macos|count(QMAKE_APP
|
|||
} else: error("Oops, I messed up")
|
||||
moc_predefs.output = $$MOC_DIR/moc_predefs.h
|
||||
moc_predefs.input = MOC_PREDEF_FILE
|
||||
silent: moc_predefs.commands = @echo generating $$moc_predefs.output$$escape_expand(\n\t)@$$moc_predefs.commands
|
||||
silent: moc_predefs.commands = @echo generating $$moc_predefs.output$$escape_expand(\\n\\t)@$$moc_predefs.commands
|
||||
QMAKE_EXTRA_COMPILERS += moc_predefs
|
||||
MOC_PREDEF_FILE = $$[QT_HOST_DATA/src]/mkspecs/features/data/dummy.cpp
|
||||
}
|
||||
|
|
|
|||
|
|
@ -5,14 +5,14 @@ for(ever) {
|
|||
for (use, QMAKE_USE$${suffix}) {
|
||||
use = $$split(use, /)
|
||||
name = $$take_first(use)
|
||||
nu = $$upper($$name)
|
||||
nu = $$upper($$replace(name, -, _))
|
||||
!contains(use, linkonly): CC_USES += $$nu
|
||||
!contains(use, nolink): LD_USES += $$nu
|
||||
}
|
||||
CC_USES = $$resolve_depends(CC_USES, QMAKE_DEPENDS_, _CC)
|
||||
for (nu, CC_USES) {
|
||||
!defined(QMAKE_LIBS_$$nu, var): \
|
||||
error("Library '$$lower($$nu)' is not defined.")
|
||||
error("Library '$$lower($$replace(nu, _, -))' is not defined.")
|
||||
|
||||
DEFINES += $$eval(QMAKE_DEFINES_$${nu})
|
||||
INCLUDEPATH += $$eval(QMAKE_INCDIR_$${nu})
|
||||
|
|
@ -20,7 +20,7 @@ for(ever) {
|
|||
LD_USES = $$resolve_depends(LD_USES, QMAKE_DEPENDS_, _LD)
|
||||
for (nu, LD_USES) {
|
||||
!defined(QMAKE_LIBS_$$nu, var): \
|
||||
error("Library '$$lower($$nu)' is not defined.")
|
||||
error("Library '$$lower($$replace(nu, _, -))' is not defined.")
|
||||
|
||||
debug: \
|
||||
LIBS$${suffix} += $$eval(QMAKE_LIBS_$${nu}_DEBUG) $$eval(QMAKE_LIBS_$$nu)
|
||||
|
|
|
|||
|
|
@ -198,28 +198,6 @@ for(ever) {
|
|||
MODULE_LIBS_ADD = $$MODULE_LIBS
|
||||
MODULE_LIBS_ADD -= $$QMAKE_DEFAULT_LIBDIRS
|
||||
|
||||
!contains(MODULE_CONFIG, v2) {
|
||||
# Backwards compatibility with pre-5.6 module .pri files
|
||||
|
||||
contains(MODULE_CONFIG, lib_bundle) {
|
||||
MODULE_FRAMEWORKS = $$MODULE_LIBS
|
||||
inc = $$MODULE_LIBS/$${MODULE_NAME}.framework/Headers
|
||||
MODULE_INCLUDES = $$inc
|
||||
contains(MODULE_CONFIG, internal_module): \
|
||||
MODULE_INCLUDES += \
|
||||
$$inc/$$eval(QT.$${QTLIB}.VERSION) \
|
||||
$$inc/$$eval(QT.$${QTLIB}.VERSION)/$$MODULE_NAME
|
||||
} else {
|
||||
# Re-insert the major version in the library name (cf qt5LibraryTarget above)
|
||||
MODULE_NAME ~= s,^Qt,Qt$$QT_MAJOR_VERSION,
|
||||
}
|
||||
|
||||
# Only link to this module if a libs directory is set, else this is just a module
|
||||
# to give access to sources or include files, and not for linking.
|
||||
!isEmpty(MODULE_LIBS):!contains(MODULE_CONFIG, no_link): \
|
||||
MODULE_MODULE = $${MODULE_NAME}$${QT_LIBINFIX}
|
||||
}
|
||||
|
||||
# Frameworks shouldn't need include paths, but much code does not use
|
||||
# module-qualified #includes, so by default we add paths which point
|
||||
# directly into the frameworks. Private modules have somewhat convoluted
|
||||
|
|
|
|||
|
|
@ -89,6 +89,14 @@ clang {
|
|||
greaterThan(QT_GCC_MAJOR_VERSION, 5): QMAKE_CXXFLAGS_WARN_ON += -Wshift-overflow=2 -Wduplicated-cond
|
||||
# GCC 7 has a lot of false positives relating to this, so disable completely
|
||||
greaterThan(QT_GCC_MAJOR_VERSION, 6): QMAKE_CXXFLAGS_WARN_ON += -Wno-stringop-overflow
|
||||
# GCC 9 has a lot of false positives relating to this, so disable completely
|
||||
greaterThan(QT_GCC_MAJOR_VERSION, 8): QMAKE_CXXFLAGS_WARN_ON += -Wno-deprecated-copy
|
||||
# GCC 9 introduced this
|
||||
greaterThan(QT_GCC_MAJOR_VERSION, 8): QMAKE_CXXFLAGS_WARN_ON += -Wno-redundant-move
|
||||
# GCC 9 introduced this
|
||||
greaterThan(QT_GCC_MAJOR_VERSION, 8): QMAKE_CXXFLAGS_WARN_ON += -Wno-format-overflow
|
||||
# GCC 9 introduced this
|
||||
greaterThan(QT_GCC_MAJOR_VERSION, 8): QMAKE_CXXFLAGS_WARN_ON += -Wno-init-list-lifetime
|
||||
}
|
||||
|
||||
warnings_are_errors:warning_clean {
|
||||
|
|
@ -104,16 +112,17 @@ warnings_are_errors:warning_clean {
|
|||
QMAKE_CXXFLAGS_WARN_ON += -Werror -Wno-error=\\$${LITERAL_HASH}warnings -Wno-error=deprecated-declarations $$WERROR
|
||||
}
|
||||
} else:intel_icc:linux {
|
||||
# Intel CC 13.0 - 17.0, on Linux only
|
||||
# Intel CC 13.0 - 18.0, on Linux only
|
||||
ver = $${QT_ICC_MAJOR_VERSION}.$${QT_ICC_MINOR_VERSION}
|
||||
linux:contains(ver, "(1[3456]\\.|17\\.0)") {
|
||||
linux:contains(ver, "(1[345678]\\.|19\\.0)") {
|
||||
# 177: function "entity" was declared but never referenced
|
||||
# (too aggressive; ICC reports even for functions created due to template instantiation)
|
||||
# 1224: #warning directive
|
||||
# 1478: function "entity" (declared at line N) was declared deprecated
|
||||
# 1786: function "entity" (declared at line N of "file") was declared deprecated ("message")
|
||||
# 1881: argument must be a constant null pointer value
|
||||
# (NULL in C++ is usually a literal 0)
|
||||
QMAKE_CXXFLAGS_WARN_ON += -Werror -ww177,1224,1478,1881 $$WERROR
|
||||
QMAKE_CXXFLAGS_WARN_ON += -Werror -ww177,1224,1478,1786,1881 $$WERROR
|
||||
}
|
||||
} else:gcc:!clang:!intel_icc:!rim_qcc {
|
||||
# GCC 4.6-4.9, 5.x, ...
|
||||
|
|
@ -127,7 +136,14 @@ warnings_are_errors:warning_clean {
|
|||
|
||||
# GCC 7 includes -Wimplicit-fallthrough in -Wextra, but Qt is not yet free of implicit fallthroughs.
|
||||
greaterThan(QT_GCC_MAJOR_VERSION, 6): QMAKE_CXXFLAGS_WARN_ON += -Wno-error=implicit-fallthrough
|
||||
|
||||
# GCC 9 has a lot of false positives relating to this, so disable completely
|
||||
greaterThan(QT_GCC_MAJOR_VERSION, 8): QMAKE_CXXFLAGS_WARN_ON += -Wno-deprecated-copy
|
||||
# GCC 9 introduced this
|
||||
greaterThan(QT_GCC_MAJOR_VERSION, 8): QMAKE_CXXFLAGS_WARN_ON += -Wno-redundant-move
|
||||
# GCC 9 introduced this
|
||||
greaterThan(QT_GCC_MAJOR_VERSION, 8): QMAKE_CXXFLAGS_WARN_ON += -Wno-format-overflow
|
||||
# GCC 9 introduced this
|
||||
greaterThan(QT_GCC_MAJOR_VERSION, 8): QMAKE_CXXFLAGS_WARN_ON += -Wno-init-list-lifetime
|
||||
# Work-around for bug https://code.google.com/p/android/issues/detail?id=58135
|
||||
android: QMAKE_CXXFLAGS_WARN_ON += -Wno-error=literal-suffix
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,3 +1,13 @@
|
|||
#
|
||||
# W A R N I N G
|
||||
# -------------
|
||||
#
|
||||
# This file is not part of the Qt API. It exists purely as an
|
||||
# implementation detail. It may change from version to version
|
||||
# without notice, or even be removed.
|
||||
#
|
||||
# We mean it.
|
||||
#
|
||||
|
||||
QT_CONFIGURE_REPORT =
|
||||
QT_CONFIGURE_NOTES =
|
||||
|
|
@ -378,6 +388,7 @@ defineReplace(qtConfFindInPathList) {
|
|||
|
||||
defineReplace(qtConfFindInPath) {
|
||||
ensurePathEnv()
|
||||
equals(QMAKE_HOST.os, Windows):!contains(1, .*\\.exe): 1 = $${1}.exe
|
||||
return($$qtConfFindInPathList($$1, $$2 $$QMAKE_PATH_ENV))
|
||||
}
|
||||
|
||||
|
|
@ -428,12 +439,12 @@ defineTest(qtConfSetupLibraries) {
|
|||
lpfx = $${currentConfig}.libraries.$${l}
|
||||
# 'export' may be omitted, in which case it falls back to the library's name
|
||||
!defined($${lpfx}.export, var) {
|
||||
$${lpfx}.export = $$l
|
||||
$${lpfx}.export = $$replace(l, -, _)
|
||||
export($${lpfx}.export)
|
||||
}
|
||||
# 'export' may also be empty, but we need a derived identifier
|
||||
alias = $$eval($${lpfx}.export)
|
||||
isEmpty(alias): alias = $$l
|
||||
isEmpty(alias): alias = $$replace(l, -, _)
|
||||
$${lpfx}.alias = $$alias
|
||||
export($${lpfx}.alias)
|
||||
# make it easy to refer to the library by its export name.
|
||||
|
|
@ -581,7 +592,43 @@ defineTest(qtConfResolvePathLibs) {
|
|||
return($$ret)
|
||||
}
|
||||
|
||||
# includes-var, includes
|
||||
defineReplace(qtConfGetTestSourceList) {
|
||||
result =
|
||||
!isEmpty($${1}.test.inherit) {
|
||||
base = $$section(1, ., 0, -2)
|
||||
for (i, $${1}.test.inherit): \
|
||||
result += $$qtConfGetTestSourceList($${base}.$$i)
|
||||
}
|
||||
return($$result $$1)
|
||||
}
|
||||
|
||||
defineReplace(qtConfGetTestIncludes) {
|
||||
defined($${1}._KEYS_, var) {
|
||||
1st = $$first($${1}._KEYS_)
|
||||
equals(1st, 0) {
|
||||
# array; recurse for every element
|
||||
ret =
|
||||
for (k, $${1}._KEYS_): \
|
||||
ret += $$qtConfGetTestIncludes($${1}.$$k)
|
||||
return($$ret)
|
||||
}
|
||||
# object; try condition and recurse
|
||||
!defined($${1}.headers, var):!defined($${1}.headers._KEYS_, var): \ # just plain broken without it
|
||||
error("headers object '$$1' has no nested headers entry")
|
||||
cond = $$eval($${1}.condition)
|
||||
isEmpty(cond): \ # would be pointless otherwise
|
||||
error("headers object '$$1' has no condition")
|
||||
!$$qtConfEvaluate($$cond) {
|
||||
qtLog("header entry '$$1' failed condition '$$cond'.")
|
||||
return()
|
||||
}
|
||||
qtLog("header entry '$$1' passed condition.")
|
||||
return($$qtConfGetTestIncludes($${1}.headers))
|
||||
}
|
||||
return($$eval($$1)) # plain string - or nothing (can happen for top-level call only)
|
||||
}
|
||||
|
||||
# includes-var, in-paths, test-object-var
|
||||
defineTest(qtConfResolvePathIncs) {
|
||||
ret = true
|
||||
for (incdir, 2) {
|
||||
|
|
@ -593,6 +640,24 @@ defineTest(qtConfResolvePathIncs) {
|
|||
2 -= $$QMAKE_DEFAULT_INCDIRS
|
||||
$$1 = $$2
|
||||
export($$1)
|
||||
wasm {
|
||||
# FIXME: emcc downloads pre-built libraries and adds their include
|
||||
# path to the clang call dynamically. it would be possible to parse
|
||||
# the emcc -s USE_xyz=1 --cflags output to populate xzy_INCDIR and
|
||||
# thus make the code below work.
|
||||
return($$ret)
|
||||
}
|
||||
tests = $$qtConfGetTestSourceList($$3)
|
||||
hdrs =
|
||||
for (test, tests): \
|
||||
hdrs += $$qtConfGetTestIncludes($${test}.headers)
|
||||
for (hdr, hdrs) {
|
||||
h = $$qtConfFindInPathList($$hdr, $$2 $$EXTRA_INCLUDEPATH $$QMAKE_DEFAULT_INCDIRS)
|
||||
isEmpty(h) {
|
||||
qtLog("$$hdr not found in [$$val_escape(2)] and global paths.")
|
||||
ret = false
|
||||
}
|
||||
}
|
||||
return($$ret)
|
||||
}
|
||||
|
||||
|
|
@ -655,13 +720,17 @@ defineTest(qtConfLibrary_inline) {
|
|||
}
|
||||
|
||||
libdir = $$eval(config.input.$${input}.libdir)
|
||||
!isEmpty(libdir): \
|
||||
$${1}.libs = -L$$libdir $$eval($${1}.libs)
|
||||
!isEmpty(libdir) {
|
||||
libs =
|
||||
for (ld, libdir): \
|
||||
libs += -L$$ld
|
||||
$${1}.libs = $$libs $$eval($${1}.libs)
|
||||
}
|
||||
|
||||
!qtConfResolveAllLibs($$1): \
|
||||
return(false)
|
||||
|
||||
!qtConfResolvePathIncs($${1}.includedir, $$includes): \
|
||||
!qtConfResolvePathIncs($${1}.includedir, $$includes, $$2): \
|
||||
return(false)
|
||||
|
||||
return(true)
|
||||
|
|
@ -677,7 +746,7 @@ defineTest(qtConfLibrary_makeSpec) {
|
|||
!qtConfResolvePathLibs($${1}.libs, $$eval(QMAKE_LIBDIR_$$spec), $$eval(QMAKE_LIBS_$$spec)): \
|
||||
return(false)
|
||||
|
||||
!qtConfResolvePathIncs($${1}.includedir, $$eval(QMAKE_INCDIR_$$spec)): \
|
||||
!qtConfResolvePathIncs($${1}.includedir, $$eval(QMAKE_INCDIR_$$spec), $$2): \
|
||||
return(false)
|
||||
|
||||
# note that the object is re-exported, because we resolve the libraries.
|
||||
|
|
@ -740,7 +809,7 @@ defineTest(qtConfLibrary_pkgConfig) {
|
|||
}
|
||||
!isEmpty(ignored): \
|
||||
qtLog("Note: Dropped compiler flags '$$ignored'.")
|
||||
!qtConfResolvePathIncs($${1}.includedir, $$includes): \
|
||||
!qtConfResolvePathIncs($${1}.includedir, $$includes, $$2): \
|
||||
return(false)
|
||||
$${1}.defines = $$defines
|
||||
|
||||
|
|
@ -748,7 +817,7 @@ defineTest(qtConfLibrary_pkgConfig) {
|
|||
largs = $$qtConfAllLibraryArgs($$eval($${2}.dependencies))
|
||||
for (la, largs): \
|
||||
eval("$$la")
|
||||
USES = $$eval($$list($$upper($$QMAKE_USE)))
|
||||
USES = $$eval($$list($$upper($$replace(QMAKE_USE, -, _))))
|
||||
# _CC == _LD for configure's library sources, so pick first arbitrarily.
|
||||
DEPS = $$resolve_depends(USES, QMAKE_DEPENDS_, _CC)
|
||||
for (DEP, DEPS) {
|
||||
|
|
@ -781,7 +850,7 @@ defineTest(qtConfTest_getPkgConfigVariable) {
|
|||
}
|
||||
|
||||
defineReplace(qtConfLibraryArgs) {
|
||||
NAME = $$upper($$eval($${1}.library))
|
||||
NAME = $$upper($$replace($${1}.library, -, _))
|
||||
qmake_args = "QMAKE_LIBS_$${NAME} = $$val_escape($${1}.libs)"
|
||||
for (b, $${1}.builds._KEYS_): \
|
||||
qmake_args += "QMAKE_LIBS_$${NAME}_$$upper($$b) = $$val_escape($${1}.builds.$${b})"
|
||||
|
|
@ -797,8 +866,8 @@ defineReplace(qtConfLibraryArgs) {
|
|||
for (use, depends): \
|
||||
dep_uses += $$section(use, :, 1, 1)
|
||||
qmake_args += \
|
||||
"QMAKE_DEPENDS_$${NAME}_CC = $$upper($$dep_uses)" \
|
||||
"QMAKE_DEPENDS_$${NAME}_LD = $$upper($$dep_uses)"
|
||||
"QMAKE_DEPENDS_$${NAME}_CC = $$upper($$replace(dep_uses, -, _))" \
|
||||
"QMAKE_DEPENDS_$${NAME}_LD = $$upper($$replace(dep_uses, -, _))"
|
||||
}
|
||||
return($$qmake_args)
|
||||
}
|
||||
|
|
@ -861,7 +930,7 @@ defineTest(qtConfExportLibrary) {
|
|||
!isEmpty(use_cfg): \
|
||||
depends += $$upper($$eval($${use_cfg}.libraries.$${use_lib}.export))
|
||||
else: \
|
||||
depends += $$upper($$use_lib)
|
||||
depends += $$upper($$replace(use_lib, -, _))
|
||||
}
|
||||
# we use suffixes instead of infixes, because $$resolve_depends() demands it.
|
||||
qtConfOutputVar(assign, $$output, QMAKE_DEPENDS_$${NAME}_CC, $$depends)
|
||||
|
|
@ -930,7 +999,7 @@ defineTest(qtConfHandleLibrary) {
|
|||
export($${lpfx}.source)
|
||||
|
||||
# if the library defines a test, use it to verify the source.
|
||||
!isEmpty($${lpfx}.test)|!isEmpty($${lpfx}.test._KEYS_) {
|
||||
defined($${lpfx}.test, var)|defined($${lpfx}.test._KEYS_, var) {
|
||||
$${lpfx}.resolved_uses = $$currentConfig:$$1
|
||||
$${lpfx}.host = $$eval($${spfx}.host)
|
||||
!qtConfTest_compile($$lpfx) {
|
||||
|
|
@ -1036,7 +1105,7 @@ defineTest(qtConfTestPrepare_compile) {
|
|||
}
|
||||
}
|
||||
isEmpty(libConfig) {
|
||||
nu = $$upper($$u)
|
||||
nu = $$upper($$replace(u, -, _))
|
||||
!defined(QMAKE_LIBS_$$nu, var): \
|
||||
error("Test $$1 tries to use undeclared library '$$u'")
|
||||
# using an external library by exported name.
|
||||
|
|
@ -1055,8 +1124,12 @@ defineTest(qtConfTestPrepare_compile) {
|
|||
defineTest(qtConfPrepareCompileTestSource) {
|
||||
test_dir = $$2
|
||||
|
||||
test_lang = $$eval($${1}.lang)
|
||||
isEmpty(test_lang): test_lang = "c++"
|
||||
tests = $$qtConfGetTestSourceList($$1)
|
||||
|
||||
test_lang = "c++"
|
||||
for (test, tests): \
|
||||
test_lang += $$eval($${test}.test.lang)
|
||||
test_lang = $$last(test_lang) # Last non-empty, that is.
|
||||
|
||||
equals(test_lang, "c++"): suffix = "cpp"
|
||||
else: equals(test_lang, "c"): suffix = "c"
|
||||
|
|
@ -1067,33 +1140,48 @@ defineTest(qtConfPrepareCompileTestSource) {
|
|||
# Create source code
|
||||
contents = "/* Generated by configure */"
|
||||
# Custom code before includes
|
||||
for (ent, $$qtConfScalarOrList($${1}.head)): \
|
||||
contents += $$ent
|
||||
for (test, tests): \
|
||||
for (ent, $$qtConfScalarOrList($${test}.test.head)): \
|
||||
contents += $$ent
|
||||
# Includes
|
||||
for (ent, $$qtConfScalarOrList($${1}.include)): \
|
||||
contents += "$${LITERAL_HASH}include <$$ent>"
|
||||
for (test, tests) {
|
||||
hdrs = $$qtConfGetTestIncludes($${test}.test.include)
|
||||
isEmpty(hdrs): \
|
||||
hdrs = $$qtConfGetTestIncludes($${test}.headers)
|
||||
for (ent, hdrs): \
|
||||
contents += "$${LITERAL_HASH}include <$$ent>"
|
||||
}
|
||||
# Custom code after includes
|
||||
for (ent, $$qtConfScalarOrList($${1}.tail)): \
|
||||
contents += $$ent
|
||||
for (test, tests): \
|
||||
for (ent, $$qtConfScalarOrList($${test}.test.tail)): \
|
||||
contents += $$ent
|
||||
# And finally the custom code inside main()
|
||||
contents += \
|
||||
"int main(int argc, char **argv)" \
|
||||
"{" \
|
||||
" (void)argc; (void)argv;" \
|
||||
" /* BEGIN TEST: */"
|
||||
for (ent, $$qtConfScalarOrList($${1}.main)): \
|
||||
contents += " $$ent"
|
||||
for (test, tests): \
|
||||
for (ent, $$qtConfScalarOrList($${test}.test.main)): \
|
||||
contents += " $$ent"
|
||||
contents += \
|
||||
" /* END TEST */" \
|
||||
" return 0;" \
|
||||
"}"
|
||||
write_file($$test_dir/main.$$suffix, contents)|error()
|
||||
|
||||
for (test, tests) {
|
||||
for (file, $$qtConfScalarOrList($${test}.test.files._KEYS_)): \
|
||||
write_file($$test_dir/$$file, $$qtConfScalarOrList($${test}.test.files.$${file}))|error()
|
||||
}
|
||||
|
||||
# Create stub .pro file
|
||||
contents = "SOURCES = main.$$suffix"
|
||||
# Custom project code
|
||||
for (ent, $$qtConfScalarOrList($${1}.qmake)): \
|
||||
contents += $$ent
|
||||
pwd = $$val_escape($${currentConfig}.dir)
|
||||
for (test, tests): \
|
||||
for (ent, $$qtConfScalarOrList($${test}.test.qmake)): \
|
||||
contents += $$replace(ent, "@PWD@", $$pwd)
|
||||
write_file($$test_dir/$$basename(test_dir).pro, contents)|error()
|
||||
}
|
||||
|
||||
|
|
@ -1106,7 +1194,7 @@ defineTest(qtConfTest_compile) {
|
|||
isEmpty(test) {
|
||||
test_dir = $$test_base_out_dir/$$section(1, ".", -1)
|
||||
test_out_dir = $$test_dir
|
||||
qtConfPrepareCompileTestSource($${1}.test, $$test_dir)
|
||||
qtConfPrepareCompileTestSource($$1, $$test_dir)
|
||||
} else {
|
||||
test_dir = $$QMAKE_CONFIG_TESTS_DIR/$$test
|
||||
test_out_dir = $$test_base_out_dir/$$test
|
||||
|
|
@ -1196,9 +1284,9 @@ defineTest(qtConfTest_files) {
|
|||
for(i, $${1}.files._KEYS_) {
|
||||
f = $$eval($${1}.files.$${i})
|
||||
qtLog("Searching for file $${f}.")
|
||||
contains(f, ".*\.h") {
|
||||
contains(f, ".*\\.h") {
|
||||
file = $$qtConfFindInPathList($$f, $$EXTRA_INCLUDEPATH $$QMAKE_DEFAULT_INCDIRS)
|
||||
} else: contains(f, ".*\.(lib|so|a)") {
|
||||
} else: contains(f, ".*\\.(lib|so|a)") {
|
||||
file = $$qtConfFindInPathList($$f, $$EXTRA_LIBDIR $$QMAKE_DEFAULT_LIBDIRS)
|
||||
} else {
|
||||
# assume we're looking for an executable
|
||||
|
|
@ -1399,7 +1487,7 @@ defineReplace(qtConfEvaluate) {
|
|||
1 ~= s/$$escape_expand(\\n) */ /g
|
||||
expr = $${1}
|
||||
expr ~= s/&&/ && /g
|
||||
expr ~= s/\|\|/ || /g
|
||||
expr ~= s/\\|\\|/ || /g
|
||||
expr ~= s/!/ ! /g
|
||||
expr ~= s/\\(/ ( /g
|
||||
expr ~= s/\\)/ ) /g
|
||||
|
|
@ -1422,7 +1510,7 @@ defineReplace(qtConfEvaluateSingleExpression) {
|
|||
} else: contains(e, "^'.*'$") {
|
||||
# quoted literals
|
||||
result = $$replace(e, "^'(.*)'$", "\\1")
|
||||
} else: contains(e, "^tests\..*") {
|
||||
} else: contains(e, "^tests\\..*") {
|
||||
!qt_conf_tests_allowed: \
|
||||
error("Expression '$${1}' refers to a test, which is not allowed at this stage of configuring.")
|
||||
test = $$section(e, ".", 1, 1)
|
||||
|
|
@ -1433,7 +1521,7 @@ defineReplace(qtConfEvaluateSingleExpression) {
|
|||
error("Unknown test object $${test} in expression '$${1}'.")
|
||||
qtRunSingleTest($$test)
|
||||
result = $$eval($${currentConfig}.tests.$${test}.$${var})
|
||||
} else: contains(e, "^libs\..*") {
|
||||
} else: contains(e, "^libs\\..*") {
|
||||
!qt_conf_tests_allowed: \
|
||||
error("Expression '$${1}' refers to a library, which is not allowed at this stage of configuring.")
|
||||
lib = $$section(e, ".", 1, 1)
|
||||
|
|
@ -1446,7 +1534,7 @@ defineReplace(qtConfEvaluateSingleExpression) {
|
|||
!defined($${currentConfig}.libraries.$${lib}.$${var}, var): \
|
||||
var = sources.$$eval($${currentConfig}.libraries.$${lib}.source).$$var
|
||||
result = $$eval($${currentConfig}.libraries.$${lib}.$${var})
|
||||
} else: contains(e, "^features\..*") {
|
||||
} else: contains(e, "^features\\..*") {
|
||||
feature = $$section(e, ".", 1, 1)
|
||||
var = $$section(e, ".", 2, -1)
|
||||
isEmpty(var): \
|
||||
|
|
@ -1470,33 +1558,33 @@ defineReplace(qtConfEvaluateSingleExpression) {
|
|||
!qtConfCheckFeature($$feature): \
|
||||
error("Expression '$$1' is accessing non-emitted feature $${feature}.")
|
||||
result = $$eval($${currentConfig}.features.$${feature}.$${var})
|
||||
} else: contains(e, "^config\..*") {
|
||||
var = $$replace(e, "^config\.", "")
|
||||
} else: contains(e, "^config\\..*") {
|
||||
var = $$replace(e, "^config\\.", "")
|
||||
result = false
|
||||
contains(CONFIG, $$var): result = true
|
||||
} else: contains(e, "^module\..*") {
|
||||
var = $$replace(e, "^module\.", "")
|
||||
} else: contains(e, "^module\\..*") {
|
||||
var = $$replace(e, "^module\\.", "")
|
||||
result = false
|
||||
qtConfHaveModule($$var): result = true
|
||||
} else: contains(e, "^arch\..*") {
|
||||
var = $$replace(e, "^arch\.", "")
|
||||
} else: contains(e, "^arch\\..*") {
|
||||
var = $$replace(e, "^arch\\.", "")
|
||||
result = false
|
||||
isEmpty(QT_ARCH): \
|
||||
qtConfCheckFeature(architecture)
|
||||
contains(QT_ARCH, $$var): result = true
|
||||
} else: contains(e, "^subarch\..*") {
|
||||
var = $$replace(e, "^subarch\.", "")
|
||||
} else: contains(e, "^subarch\\..*") {
|
||||
var = $$replace(e, "^subarch\\.", "")
|
||||
result = false
|
||||
isEmpty(QT_ARCH): \
|
||||
qtConfCheckFeature(architecture)
|
||||
contains(QT_CPU_FEATURES.$$QT_ARCH, $$var): result = true
|
||||
} else: contains(e, "^input\..*") {
|
||||
} else: contains(e, "^input\\..*") {
|
||||
result = $$eval(config.$$e)
|
||||
} else: contains(e, "^var\..*") {
|
||||
var = $$replace(e, "^var\.", "")
|
||||
} else: contains(e, "^var\\..*") {
|
||||
var = $$replace(e, "^var\\.", "")
|
||||
result = $$eval($$var)
|
||||
} else: contains(e, "^call\..*") {
|
||||
call = $$replace(e, "^call\.", "qtConfFunc_")
|
||||
} else: contains(e, "^call\\..*") {
|
||||
call = $$replace(e, "^call\\.", "qtConfFunc_")
|
||||
!defined($$call, replace): \
|
||||
error("Call $$call referenced in expression '$${1}' does not exist")
|
||||
eval(result = \$\$"$$call"())
|
||||
|
|
|
|||
|
|
@ -18,7 +18,7 @@ isEmpty(qtver.value): error("No version for documentation specified.")
|
|||
qtmver.name = QT_VER
|
||||
qtmver.value = $$replace(qtver.value, ^(\\d+\\.\\d+).*$, \\1)
|
||||
qtvertag.name = QT_VERSION_TAG
|
||||
qtvertag.value = $$replace(qtver.value, \.,)
|
||||
qtvertag.value = $$replace(qtver.value, \\.,)
|
||||
qtdocs.name = QT_INSTALL_DOCS
|
||||
qtdocs.value = $$[QT_INSTALL_DOCS/src]
|
||||
builddir.name = BUILDDIR
|
||||
|
|
|
|||
|
|
@ -31,6 +31,7 @@ THE_TARGET = $$qt5LibraryTarget($$TARGET)
|
|||
|
||||
!build_pass {
|
||||
MODULE = $$replace(TARGET, ^qt, )
|
||||
MODULE ~= s,-,_,
|
||||
MODULE_PRI = $$MODULE_QMAKE_OUTDIR/mkspecs/modules/qt_ext_$${MODULE}.pri
|
||||
ucmodule = $$upper($$MODULE)
|
||||
|
||||
|
|
@ -46,7 +47,7 @@ THE_TARGET = $$qt5LibraryTarget($$TARGET)
|
|||
for (use, QMAKE_USE) {
|
||||
use = $$split(use, /)
|
||||
name = $$take_first(use)
|
||||
nu = $$upper($$name)
|
||||
nu = $$upper($$replace(name, -, _))
|
||||
!contains(use, linkonly): CC_USES += $$nu
|
||||
!contains(use, nolink): LD_USES += $$nu
|
||||
}
|
||||
|
|
|
|||
|
|
@ -239,6 +239,14 @@ headersclean:!internal_module {
|
|||
gcc_ver = $${QT_GCC_MAJOR_VERSION}.$${QT_GCC_MINOR_VERSION}
|
||||
versionAtLeast(gcc_ver, 4.5): hcleanFLAGS += -Wdouble-promotion
|
||||
versionAtLeast(gcc_ver, 4.9): hcleanFLAGS += -Wfloat-conversion
|
||||
# GCC 9 has a lot of false positives relating to this, so disable completely
|
||||
greaterThan(QT_GCC_MAJOR_VERSION, 8): hcleanFLAGS += -Wno-deprecated-copy
|
||||
# GCC 9 introduced this
|
||||
greaterThan(QT_GCC_MAJOR_VERSION, 8): hcleanFLAGS += -Wno-redundant-move
|
||||
# GCC 9 introduced this
|
||||
greaterThan(QT_GCC_MAJOR_VERSION, 8): hcleanFLAGS += -Wno-format-overflow
|
||||
# GCC 9 introduced this
|
||||
greaterThan(QT_GCC_MAJOR_VERSION, 8): hcleanFLAGS += -Wno-init-list-lifetime
|
||||
|
||||
c++11 {
|
||||
# only enabled for actual c++11 builds due to
|
||||
|
|
|
|||
|
|
@ -73,17 +73,14 @@ for(resource, RESOURCES) {
|
|||
}
|
||||
|
||||
!isEmpty(RESOURCES):contains(TEMPLATE, .*lib):plugin:static {
|
||||
pluginName = $$lower($$replace(_PRO_FILE_, .*/([^/.]+)\\.[^/.]+, \\1))
|
||||
|
||||
resource_init_function = $${pluginName}_plugin_resource_init
|
||||
resource_init_function = $$lower($$basename(TARGET))_plugin_resource_init
|
||||
DEFINES += "QT_PLUGIN_RESOURCE_INIT_FUNCTION=$$resource_init_function"
|
||||
|
||||
RESOURCE_INIT_CPP = $$OUT_PWD/$${pluginName}_plugin_resources.cpp
|
||||
RESOURCE_INIT_CPP = $$OUT_PWD/$$lower($$basename(TARGET))_plugin_resources.cpp
|
||||
|
||||
GENERATED_SOURCES += $$RESOURCE_INIT_CPP
|
||||
QMAKE_DISTCLEAN += $$RESOURCE_INIT_CPP
|
||||
|
||||
!build_pass {
|
||||
isEmpty(BUILDS)|build_pass {
|
||||
RESOURCE_INIT_CONT = \
|
||||
"// This file is autogenerated by qmake. It contains a function that" \
|
||||
"// references all resources the plugin includes and the function is" \
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
msvc {
|
||||
# -MD becomes -MT, -MDd becomes -MTd
|
||||
QMAKE_CFLAGS ~= s,^-MD(d?)$,-MT\1,g
|
||||
QMAKE_CXXFLAGS ~= s,^-MD(d?)$,-MT\1,g
|
||||
QMAKE_CFLAGS ~= s,^-MD(d?)$,-MT\\1,g
|
||||
QMAKE_CXXFLAGS ~= s,^-MD(d?)$,-MT\\1,g
|
||||
} else: mingw {
|
||||
QMAKE_LFLAGS += -static
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,3 +1,124 @@
|
|||
defineTest(qtToolchainError) {
|
||||
msg = \
|
||||
$$1 \
|
||||
"===================" \
|
||||
$$2 \
|
||||
"===================" \
|
||||
$$3
|
||||
error($$join(msg, $$escape_expand(\\n)))
|
||||
}
|
||||
|
||||
defineTest(qtCompilerError) {
|
||||
!cross_compile: \
|
||||
what =
|
||||
else: host_build: \
|
||||
what = " host"
|
||||
else: \
|
||||
what = " target"
|
||||
qtToolchainError("Cannot run$$what compiler '$$1'. Output:", $$2, \
|
||||
"Maybe you forgot to setup the environment?")
|
||||
}
|
||||
|
||||
cross_compile:host_build: \
|
||||
target_prefix = QMAKE_HOST_CXX
|
||||
else: \
|
||||
target_prefix = QMAKE_CXX
|
||||
|
||||
#
|
||||
# Determine and cache the compiler version
|
||||
#
|
||||
|
||||
defineReplace(qtVariablesFromMSVC) {
|
||||
ret = $$system("$$1 -nologo -E $$2 $$system_quote($$PWD/data/macros.cpp) 2>NUL", lines, ec)
|
||||
!equals(ec, 0): qtCompilerError($$1, $$ret)
|
||||
return($$ret)
|
||||
}
|
||||
|
||||
defineReplace(qtVariablesFromGCC) {
|
||||
ret = $$system("$$1 -E $$system_quote($$PWD/data/macros.cpp) \
|
||||
2>$$QMAKE_SYSTEM_NULL_DEVICE", lines, ec)
|
||||
!equals(ec, 0): qtCompilerError($$1, $$ret)
|
||||
return($$ret)
|
||||
}
|
||||
|
||||
isEmpty($${target_prefix}.COMPILER_MACROS) {
|
||||
msvc {
|
||||
clang_cl {
|
||||
# We need to obtain the cl.exe version first
|
||||
vars = $$qtVariablesFromMSVC(cl)
|
||||
for (v, vars) {
|
||||
isEmpty(v)|contains(v, $${LITERAL_HASH}.*): next()
|
||||
eval($$v)
|
||||
}
|
||||
isEmpty(QMAKE_MSC_FULL_VER): error("Could not determine the Visual Studio version")
|
||||
|
||||
QMAKE_CFLAGS_MSVC_COMPAT = $$replace(QMAKE_MSC_FULL_VER, "(..)(..)(.*)", \
|
||||
"-fms-compatibility-version=\\1.\\2.\\3")
|
||||
cache($${target_prefix}.QMAKE_CFLAGS_MSVC_COMPAT, set stash, QMAKE_CFLAGS_MSVC_COMPAT)
|
||||
$${target_prefix}.COMPILER_MACROS += QMAKE_CFLAGS_MSVC_COMPAT
|
||||
vars = $$qtVariablesFromMSVC($$QMAKE_CXX, $$QMAKE_CFLAGS_MSVC_COMPAT)
|
||||
} else {
|
||||
vars = $$qtVariablesFromMSVC($$QMAKE_CXX)
|
||||
}
|
||||
} else: gcc|ghs {
|
||||
vars = $$qtVariablesFromGCC($$QMAKE_CXX)
|
||||
}
|
||||
for (v, vars) {
|
||||
!contains(v, "[A-Z_]+ = .*"): next()
|
||||
# Set both <varname> for the outer scope ...
|
||||
eval($$v)
|
||||
v ~= s/ .*//
|
||||
isEmpty($$v): error("Compiler produced empty value for $${v}.")
|
||||
# ... and save QMAKE_(HOST_)?CXX.<varname> in the cache.
|
||||
cache($${target_prefix}.$$v, set stash, $$v)
|
||||
$${target_prefix}.COMPILER_MACROS += $$v
|
||||
}
|
||||
cache($${target_prefix}.COMPILER_MACROS, set stash)
|
||||
} else {
|
||||
# load from the cache
|
||||
for (i, $${target_prefix}.COMPILER_MACROS): \
|
||||
$$i = $$eval($${target_prefix}.$$i)
|
||||
}
|
||||
|
||||
# Populate QMAKE_COMPILER_DEFINES and some compatibility variables.
|
||||
# The $$format_number() calls strip leading zeros to avoid misinterpretation as octal.
|
||||
QMAKE_COMPILER_DEFINES += __cplusplus=$$QT_COMPILER_STDCXX
|
||||
!isEmpty(QMAKE_MSC_VER): \
|
||||
QMAKE_COMPILER_DEFINES += _MSC_VER=$$QMAKE_MSC_VER _MSC_FULL_VER=$$QMAKE_MSC_FULL_VER
|
||||
!isEmpty(QMAKE_ICC_VER): \
|
||||
QMAKE_COMPILER_DEFINES += __INTEL_COMPILER=$$QMAKE_ICC_VER __INTEL_COMPILER_UPDATE=$$QMAKE_ICC_UPDATE_VER
|
||||
!isEmpty(QMAKE_APPLE_CC): \
|
||||
QMAKE_COMPILER_DEFINES += __APPLE_CC__=$$QMAKE_APPLE_CC
|
||||
!isEmpty(QMAKE_APPLE_CLANG_MAJOR_VERSION): \
|
||||
QMAKE_COMPILER_DEFINES += __clang__ \
|
||||
__clang_major__=$$QMAKE_APPLE_CLANG_MAJOR_VERSION \
|
||||
__clang_minor__=$$QMAKE_APPLE_CLANG_MINOR_VERSION \
|
||||
__clang_patchlevel__=$$QMAKE_APPLE_CLANG_PATCH_VERSION
|
||||
!isEmpty(QMAKE_CLANG_MAJOR_VERSION): \
|
||||
QMAKE_COMPILER_DEFINES += __clang__ \
|
||||
__clang_major__=$$QMAKE_CLANG_MAJOR_VERSION \
|
||||
__clang_minor__=$$QMAKE_CLANG_MINOR_VERSION \
|
||||
__clang_patchlevel__=$$QMAKE_CLANG_PATCH_VERSION
|
||||
!isEmpty(QMAKE_GCC_MAJOR_VERSION): \
|
||||
QMAKE_COMPILER_DEFINES += \
|
||||
__GNUC__=$$QMAKE_GCC_MAJOR_VERSION \
|
||||
__GNUC_MINOR__=$$QMAKE_GCC_MINOR_VERSION \
|
||||
__GNUC_PATCHLEVEL__=$$QMAKE_GCC_PATCH_VERSION
|
||||
!isEmpty(QMAKE_GHS_VERSION): \
|
||||
QMAKE_COMPILER_DEFINES += __ghs__ __GHS_VERSION_NUMBER=$$QMAKE_GHS_VERSION
|
||||
|
||||
QMAKE_CFLAGS += $$QMAKE_CFLAGS_MSVC_COMPAT
|
||||
QMAKE_CXXFLAGS += $$QMAKE_CFLAGS_MSVC_COMPAT
|
||||
|
||||
clang_cl|intel_icl {
|
||||
include(../common/msvc-based-version.conf)
|
||||
} else: msvc {
|
||||
include(../common/msvc-version.conf)
|
||||
}
|
||||
|
||||
#
|
||||
# Determine and cache the default search paths
|
||||
#
|
||||
|
||||
defineReplace(qtMakeExpand) {
|
||||
out = "$$1"
|
||||
|
|
@ -9,26 +130,35 @@ defineReplace(qtMakeExpand) {
|
|||
}
|
||||
}
|
||||
|
||||
defineTest(qtCompilerErrror) {
|
||||
!cross_compile: \
|
||||
what =
|
||||
else: host_build: \
|
||||
what = " host"
|
||||
else: \
|
||||
what = " target"
|
||||
msg = \
|
||||
"Cannot run$$what compiler '$$1'. Output:" \
|
||||
"===================" \
|
||||
$$2 \
|
||||
"===================" \
|
||||
"Maybe you forgot to setup the environment?"
|
||||
error($$join(msg, $$escape_expand(\\n)))
|
||||
defineReplace(qtSplitPathList) {
|
||||
paths = $$split(1, $$QMAKE_DIRLIST_SEP)
|
||||
ret =
|
||||
for (p, paths): \
|
||||
ret += $$clean_path($$p)
|
||||
return($$ret)
|
||||
}
|
||||
|
||||
cross_compile:host_build: \
|
||||
target_prefix = QMAKE_HOST_CXX
|
||||
else: \
|
||||
target_prefix = QMAKE_CXX
|
||||
defineReplace(qtNmakePathList) {
|
||||
paths =
|
||||
for (p, 1): \
|
||||
paths += $$shell_path($$p)
|
||||
paths ~= s,$${LITERAL_HASH},^$${LITERAL_HASH},g
|
||||
paths ~= s,\\$,\$\$,g
|
||||
return($$join(paths, $$QMAKE_DIRLIST_SEP))
|
||||
}
|
||||
|
||||
msvc {
|
||||
arch = $$lower($$VCPROJ_ARCH)
|
||||
equals(arch, x64): \ # may be "win32" or undefined
|
||||
arch = amd64
|
||||
else: !equals(arch, arm):!equals(arch, arm64): \ # may be "win32" or undefined
|
||||
arch = x86
|
||||
# Consider only WinRT and ARM64 desktop builds to be cross-builds -
|
||||
# the host is assumed to be Intel and capable of running the target
|
||||
# executables (so building for x64 on x86 will break).
|
||||
winrt|equals(arch, arm64): \
|
||||
CONFIG += msvc_cross
|
||||
}
|
||||
|
||||
isEmpty($${target_prefix}.INCDIRS) {
|
||||
#
|
||||
|
|
@ -69,7 +199,7 @@ isEmpty($${target_prefix}.INCDIRS) {
|
|||
cxx_flags += -E -v
|
||||
|
||||
output = $$system("$$cmd_prefix $$QMAKE_CXX $$qtMakeExpand($$cxx_flags) -xc++ - 2>&1 $$cmd_suffix", lines, ec)
|
||||
!equals(ec, 0): qtCompilerErrror($$QMAKE_CXX, $$output)
|
||||
!equals(ec, 0): qtCompilerError($$QMAKE_CXX, $$output)
|
||||
|
||||
rim_qcc {
|
||||
for (line, output) {
|
||||
|
|
@ -129,7 +259,7 @@ isEmpty($${target_prefix}.INCDIRS) {
|
|||
# What's more, -print-search-dirs can't be used on clang on Apple because it
|
||||
# won't print all the library paths (only the clang-internal ones).
|
||||
output = $$system("$$cmd_prefix $$QMAKE_LINK $$QMAKE_LFLAGS -print-search-dirs", lines, ec)
|
||||
!equals(ec, 0): qtCompilerErrror($$QMAKE_LINK, $$output)
|
||||
!equals(ec, 0): qtCompilerError($$QMAKE_LINK, $$output)
|
||||
|
||||
for (line, output) {
|
||||
contains(line, "^libraries: .*") {
|
||||
|
|
@ -149,7 +279,7 @@ isEmpty($${target_prefix}.INCDIRS) {
|
|||
} else: ghs {
|
||||
cmd = $$QMAKE_CXX $$QMAKE_CXXFLAGS -$${LITERAL_HASH} -o /tmp/fake_output /tmp/fake_input.cpp
|
||||
output = $$system("$$cmd", blob, ec)
|
||||
!equals(ec, 0): qtCompilerErrror($$QMAKE_CXX, $$output)
|
||||
!equals(ec, 0): qtCompilerError($$QMAKE_CXX, $$output)
|
||||
output ~= s/\\\\\\n {8}//g
|
||||
output = $$split(output, $$escape_expand(\\n))
|
||||
for (line, output) {
|
||||
|
|
@ -169,113 +299,121 @@ isEmpty($${target_prefix}.INCDIRS) {
|
|||
}
|
||||
}
|
||||
}
|
||||
} else: msvc_cross {
|
||||
# Use a batch file, because %VAR% in the system() call expands to
|
||||
# the pre-script-call value, and !VAR! cannot be enabled outside
|
||||
# a batch file without invoking another shell instance.
|
||||
cmd = $$system_quote($$system_path($$PWD/data/dumpvcvars.bat))
|
||||
|
||||
hostArch = $$QMAKE_HOST.arch
|
||||
equals(hostArch, x86_64): \
|
||||
hostArch = amd64
|
||||
!equals(arch, $$hostArch): \
|
||||
arch = $${hostArch}_$$arch
|
||||
|
||||
isEmpty(MSVC_VER): \
|
||||
error("Mkspec does not specify MSVC_VER. Cannot continue.")
|
||||
versionAtLeast(MSVC_VER, 15.0) {
|
||||
dir = $$(VSINSTALLDIR)
|
||||
isEmpty(dir): \
|
||||
dir = $$read_registry(HKLM, \
|
||||
"Software\\Microsoft\\VisualStudio\\SxS\\VS7\\$$MSVC_VER", 32)
|
||||
isEmpty(dir): \
|
||||
error("Failed to find the Visual Studio installation directory.")
|
||||
cmd += $$system_quote($$dir\\VC\\Auxiliary\\Build\\vcvarsall.bat) $$arch
|
||||
} else {
|
||||
dir = $$(VCINSTALLDIR)
|
||||
isEmpty(dir): \
|
||||
dir = $$read_registry(HKLM, \
|
||||
"Software\\Microsoft\\VisualStudio\\$$MSVC_VER\\Setup\\VC\\ProductDir", 32)
|
||||
isEmpty(dir): \
|
||||
error("Failed to find the Visual C installation directory.")
|
||||
cmd += $$system_quote($$dir\\vcvarsall.bat) $$arch
|
||||
}
|
||||
winrt: cmd += store
|
||||
|
||||
isEmpty(WINSDK_VER): \
|
||||
error("Mkspec does not specify WINSDK_VER. Cannot continue.")
|
||||
# We prefer the environment variable, because that may work around
|
||||
# a broken registry entry after uninstalling a newer SDK.
|
||||
# However, we do that only if the major+minor SDK version matches
|
||||
# the one requested by the mkspec, as we might be building for a
|
||||
# newer target than the host.
|
||||
winsdk_ver = $$(WindowsSDKVersion)
|
||||
!isEmpty(winsdk_ver) {
|
||||
winsdk_ver ~= s,\\\\$,, # Work around SDK breakage.
|
||||
!equals(WINSDK_VER, $$replace(winsdk_ver, ^(\\d+\\.\\d+).*$, \\1)): \
|
||||
winsdk_ver =
|
||||
}
|
||||
!isEmpty(winsdk_ver) {
|
||||
cmd += $$winsdk_ver
|
||||
} else {
|
||||
winsdk_ver = $$read_registry(HKLM, \
|
||||
"Software\\Microsoft\\Microsoft SDKs\\Windows\\v$$WINSDK_VER\\ProductVersion", 32)
|
||||
isEmpty(winsdk_ver): \
|
||||
error("Windows SDK $$WINSDK_VER requested by mkspec is not installed. Cannot continue.")
|
||||
cmd += $${winsdk_ver}.0
|
||||
}
|
||||
|
||||
output = $$system("$$cmd 2>&1", lines, ec)
|
||||
!equals(ec, 0): \
|
||||
qtToolchainError("SDK setup script failed. Output:", $$output, \
|
||||
"Command was: $$cmd")
|
||||
lines = $$output
|
||||
for(ever) {
|
||||
isEmpty(lines): \
|
||||
break()
|
||||
line = $$take_first(lines)
|
||||
equals(line, "=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+="): \
|
||||
break()
|
||||
}
|
||||
!count(lines, 3): \
|
||||
qtToolchainError("SDK setup script returned unexpected output:", $$output, \
|
||||
"Command was: $$cmd")
|
||||
|
||||
# These contain only paths for the target.
|
||||
QMAKE_DEFAULT_INCDIRS = $$qtSplitPathList($$member(lines, 0))
|
||||
QMAKE_DEFAULT_LIBDIRS = $$qtSplitPathList($$member(lines, 1))
|
||||
# PATH is inherently for the host, and paths that are not shadowed
|
||||
# by vcvarsall.bat are assumed to contain only tools that work for
|
||||
# both host and target builds.
|
||||
QMAKE_DEFAULT_PATH = $$qtSplitPathList($$member(lines, 2))
|
||||
# We de-duplicate, because the script just prepends to the paths for
|
||||
# the host, some of which are identical to the ones for the target.
|
||||
QMAKE_DEFAULT_PATH = $$unique(QMAKE_DEFAULT_PATH)
|
||||
} else: msvc {
|
||||
# This doesn't differentiate between host and target,
|
||||
# but neither do the compilers.
|
||||
LIB = $$getenv("LIB")
|
||||
QMAKE_DEFAULT_LIBDIRS = $$split(LIB, $$QMAKE_DIRLIST_SEP)
|
||||
INCLUDE = $$getenv("INCLUDE")
|
||||
QMAKE_DEFAULT_INCDIRS = $$split(INCLUDE, $$QMAKE_DIRLIST_SEP)
|
||||
}
|
||||
|
||||
unix {
|
||||
unix:if(!cross_compile|host_build) {
|
||||
isEmpty(QMAKE_DEFAULT_INCDIRS): QMAKE_DEFAULT_INCDIRS = /usr/include /usr/local/include
|
||||
isEmpty(QMAKE_DEFAULT_LIBDIRS): QMAKE_DEFAULT_LIBDIRS = /lib /usr/lib
|
||||
}
|
||||
|
||||
cache($${target_prefix}.INCDIRS, set stash, QMAKE_DEFAULT_INCDIRS)
|
||||
cache($${target_prefix}.LIBDIRS, set stash, QMAKE_DEFAULT_LIBDIRS)
|
||||
# cache() complains about undefined variables and doesn't persist empty ones.
|
||||
!isEmpty(QMAKE_DEFAULT_INCDIRS): \
|
||||
cache($${target_prefix}.INCDIRS, set stash, QMAKE_DEFAULT_INCDIRS)
|
||||
!isEmpty(QMAKE_DEFAULT_LIBDIRS): \
|
||||
cache($${target_prefix}.LIBDIRS, set stash, QMAKE_DEFAULT_LIBDIRS)
|
||||
!isEmpty(QMAKE_DEFAULT_PATH): \
|
||||
cache($${target_prefix}.PATH, set stash, QMAKE_DEFAULT_PATH)
|
||||
} else {
|
||||
QMAKE_DEFAULT_INCDIRS = $$eval($${target_prefix}.INCDIRS)
|
||||
QMAKE_DEFAULT_LIBDIRS = $$eval($${target_prefix}.LIBDIRS)
|
||||
QMAKE_DEFAULT_PATH = $$eval($${target_prefix}.PATH)
|
||||
}
|
||||
|
||||
#
|
||||
# Determine and cache the compiler version
|
||||
#
|
||||
|
||||
defineReplace(qtVariablesFromMSVC) {
|
||||
ret = $$system("$$1 -nologo -E $$2 $$system_quote($$PWD/data/macros.cpp) 2>NUL", lines, ec)
|
||||
!equals(ec, 0): qtCompilerErrror($$1, $$ret)
|
||||
return($$ret)
|
||||
}
|
||||
|
||||
defineReplace(qtVariablesFromGCC) {
|
||||
ret = $$system("$$1 -E $$system_quote($$PWD/data/macros.cpp) \
|
||||
2>$$QMAKE_SYSTEM_NULL_DEVICE", lines, ec)
|
||||
!equals(ec, 0): qtCompilerErrror($$1, $$ret)
|
||||
return($$ret)
|
||||
}
|
||||
|
||||
isEmpty($${target_prefix}.COMPILER_MACROS) {
|
||||
msvc {
|
||||
clang_cl {
|
||||
# We need to obtain the cl.exe version first
|
||||
vars = $$qtVariablesFromMSVC(cl)
|
||||
for (v, vars) {
|
||||
isEmpty(v)|contains(v, $${LITERAL_HASH}.*): next()
|
||||
eval($$v)
|
||||
}
|
||||
isEmpty(QMAKE_MSC_FULL_VER): error("Could not determine the Visual Studio version")
|
||||
|
||||
QMAKE_CFLAGS_MSVC_COMPAT = $$replace(QMAKE_MSC_FULL_VER, "(..)(..)(.*)", \
|
||||
"-fms-compatibility-version=\\1.\\2.\\3")
|
||||
cache($${target_prefix}.QMAKE_CFLAGS_MSVC_COMPAT, set stash, QMAKE_CFLAGS_MSVC_COMPAT)
|
||||
$${target_prefix}.COMPILER_MACROS += QMAKE_CFLAGS_MSVC_COMPAT
|
||||
vars = $$qtVariablesFromMSVC($$QMAKE_CXX, $$QMAKE_CFLAGS_MSVC_COMPAT)
|
||||
} else {
|
||||
vars = $$qtVariablesFromMSVC($$QMAKE_CXX)
|
||||
}
|
||||
} else: gcc|ghs {
|
||||
vars = $$qtVariablesFromGCC($$QMAKE_CXX)
|
||||
}
|
||||
for (v, vars) {
|
||||
!contains(v, "[A-Z_]+ = .*"): next()
|
||||
# Set both <varname> for the outer scope ...
|
||||
eval($$v)
|
||||
v ~= s/ .*//
|
||||
isEmpty($$v): error("Compiler produced empty value for $${v}.")
|
||||
# ... and save QMAKE_(HOST_)?CXX.<varname> in the cache.
|
||||
cache($${target_prefix}.$$v, set stash, $$v)
|
||||
$${target_prefix}.COMPILER_MACROS += $$v
|
||||
}
|
||||
cache($${target_prefix}.COMPILER_MACROS, set stash)
|
||||
} else {
|
||||
# load from the cache
|
||||
for (i, $${target_prefix}.COMPILER_MACROS): \
|
||||
$$i = $$eval($${target_prefix}.$$i)
|
||||
msvc_cross {
|
||||
qmake_inc_exp.name = INCLUDE
|
||||
qmake_inc_exp.value = $$qtNmakePathList($$QMAKE_DEFAULT_INCDIRS)
|
||||
qmake_lib_exp.name = LIB
|
||||
qmake_lib_exp.value = $$qtNmakePathList($$QMAKE_DEFAULT_LIBDIRS)
|
||||
qmake_path_exp.name = PATH
|
||||
qmake_path_exp.value = $$qtNmakePathList($$QMAKE_DEFAULT_PATH)
|
||||
QMAKE_EXPORTED_VARIABLES += qmake_inc_exp qmake_lib_exp qmake_path_exp
|
||||
}
|
||||
|
||||
unset(target_prefix)
|
||||
|
||||
# Populate QMAKE_COMPILER_DEFINES and some compatibility variables.
|
||||
# The $$format_number() calls strip leading zeros to avoid misinterpretation as octal.
|
||||
QMAKE_COMPILER_DEFINES += __cplusplus=$$QT_COMPILER_STDCXX
|
||||
!isEmpty(QMAKE_MSC_VER): \
|
||||
QMAKE_COMPILER_DEFINES += _MSC_VER=$$QMAKE_MSC_VER _MSC_FULL_VER=$$QMAKE_MSC_FULL_VER
|
||||
!isEmpty(QMAKE_ICC_VER): \
|
||||
QMAKE_COMPILER_DEFINES += __INTEL_COMPILER=$$QMAKE_ICC_VER __INTEL_COMPILER_UPDATE=$$QMAKE_ICC_UPDATE_VER
|
||||
!isEmpty(QMAKE_APPLE_CC): \
|
||||
QMAKE_COMPILER_DEFINES += __APPLE_CC__=$$QMAKE_APPLE_CC
|
||||
!isEmpty(QMAKE_APPLE_CLANG_MAJOR_VERSION): \
|
||||
QMAKE_COMPILER_DEFINES += __clang__ \
|
||||
__clang_major__=$$QMAKE_APPLE_CLANG_MAJOR_VERSION \
|
||||
__clang_minor__=$$QMAKE_APPLE_CLANG_MINOR_VERSION \
|
||||
__clang_patchlevel__=$$QMAKE_APPLE_CLANG_PATCH_VERSION
|
||||
!isEmpty(QMAKE_CLANG_MAJOR_VERSION): \
|
||||
QMAKE_COMPILER_DEFINES += __clang__ \
|
||||
__clang_major__=$$QMAKE_CLANG_MAJOR_VERSION \
|
||||
__clang_minor__=$$QMAKE_CLANG_MINOR_VERSION \
|
||||
__clang_patchlevel__=$$QMAKE_CLANG_PATCH_VERSION
|
||||
!isEmpty(QMAKE_GCC_MAJOR_VERSION): \
|
||||
QMAKE_COMPILER_DEFINES += \
|
||||
__GNUC__=$$QMAKE_GCC_MAJOR_VERSION \
|
||||
__GNUC_MINOR__=$$QMAKE_GCC_MINOR_VERSION \
|
||||
__GNUC_PATCHLEVEL__=$$QMAKE_GCC_PATCH_VERSION
|
||||
!isEmpty(QMAKE_GHS_VERSION): \
|
||||
QMAKE_COMPILER_DEFINES += __ghs__ __GHS_VERSION_NUMBER=$$QMAKE_GHS_VERSION
|
||||
|
||||
QMAKE_CFLAGS += $$QMAKE_CFLAGS_MSVC_COMPAT
|
||||
QMAKE_CXXFLAGS += $$QMAKE_CFLAGS_MSVC_COMPAT
|
||||
|
||||
msvc:!intel_icl:!clang_cl: include(../common/msvc-version.conf)
|
||||
|
|
|
|||
|
|
@ -15,6 +15,14 @@ QMAKE_CFLAGS += -Wno-microsoft-enum-value
|
|||
|
||||
QMAKE_CXXFLAGS += -Wno-microsoft-enum-value
|
||||
|
||||
QMAKE_LINK = lld-link
|
||||
QMAKE_LIB = llvm-lib /NOLOGO
|
||||
|
||||
QMAKE_CFLAGS_LTCG = -flto
|
||||
QMAKE_CXXFLAGS_LTCG = $$QMAKE_CFLAGS_LTCG
|
||||
# Leave QMAKE_LFLAGS_LTCG empty because lld-link doesn't need any additional parameters
|
||||
QMAKE_LFLAGS_LTCG =
|
||||
|
||||
# Precompiled headers are not supported yet by clang
|
||||
CONFIG -= precompile_header
|
||||
|
||||
|
|
|
|||
|
|
@ -15,6 +15,5 @@ QMAKE_LIBS += windowscodecs.lib WindowsApp.lib runtimeobject.lib One
|
|||
|
||||
VCPROJ_ARCH = ARM
|
||||
WINSDK_VER = 10.0
|
||||
WINTARGET_VER = winv10.0
|
||||
WINRT_MANIFEST = $$PWD/../common/winrt_winphone/manifests/10.0/AppxManifest.xml.in
|
||||
WINRT_MANIFEST.architecture = arm
|
||||
|
|
|
|||
|
|
@ -15,6 +15,5 @@ QMAKE_LIBS += windowscodecs.lib WindowsApp.lib runtimeobject.lib One
|
|||
|
||||
VCPROJ_ARCH = ARM
|
||||
WINSDK_VER = 10.0
|
||||
WINTARGET_VER = winv10.0
|
||||
WINRT_MANIFEST = $$PWD/../common/winrt_winphone/manifests/10.0/AppxManifest.xml.in
|
||||
WINRT_MANIFEST.architecture = arm
|
||||
|
|
|
|||
|
|
@ -15,6 +15,5 @@ QMAKE_LIBS += windowscodecs.lib WindowsApp.lib runtimeobject.lib One
|
|||
|
||||
VCPROJ_ARCH = x64
|
||||
WINSDK_VER = 10.0
|
||||
WINTARGET_VER = winv10.0
|
||||
WINRT_MANIFEST = $$PWD/../common/winrt_winphone/manifests/10.0/AppxManifest.xml.in
|
||||
WINRT_MANIFEST.architecture = x64
|
||||
|
|
|
|||
|
|
@ -15,6 +15,5 @@ QMAKE_LIBS += windowscodecs.lib WindowsApp.lib runtimeobject.lib One
|
|||
|
||||
VCPROJ_ARCH = x64
|
||||
WINSDK_VER = 10.0
|
||||
WINTARGET_VER = winv10.0
|
||||
WINRT_MANIFEST = $$PWD/../common/winrt_winphone/manifests/10.0/AppxManifest.xml.in
|
||||
WINRT_MANIFEST.architecture = x64
|
||||
|
|
|
|||
|
|
@ -14,6 +14,5 @@ QMAKE_LFLAGS += /SAFESEH /MACHINE:X86 /NODEFAULTLIB:kernel32.lib
|
|||
QMAKE_LIBS += windowscodecs.lib WindowsApp.lib runtimeobject.lib OneCore.lib
|
||||
VCPROJ_ARCH = Win32
|
||||
WINSDK_VER = 10.0
|
||||
WINTARGET_VER = winv10.0
|
||||
WINRT_MANIFEST = $$PWD/../common/winrt_winphone/manifests/10.0/AppxManifest.xml.in
|
||||
WINRT_MANIFEST.architecture = x86
|
||||
|
|
|
|||
|
|
@ -14,6 +14,5 @@ QMAKE_LFLAGS += /SAFESEH /MACHINE:X86 /NODEFAULTLIB:kernel32.lib
|
|||
QMAKE_LIBS += windowscodecs.lib WindowsApp.lib runtimeobject.lib OneCore.lib
|
||||
VCPROJ_ARCH = Win32
|
||||
WINSDK_VER = 10.0
|
||||
WINTARGET_VER = winv10.0
|
||||
WINRT_MANIFEST = $$PWD/../common/winrt_winphone/manifests/10.0/AppxManifest.xml.in
|
||||
WINRT_MANIFEST.architecture = x86
|
||||
|
|
|
|||
|
|
@ -192,6 +192,9 @@ qmakeevaluator.o: $(QMKLIBSRC)/qmakeevaluator.cpp
|
|||
qmakebuiltins.o: $(QMKLIBSRC)/qmakebuiltins.cpp
|
||||
$(CXX) -c -o $@ $(CXXFLAGS) $<
|
||||
|
||||
registry.o: $(QMKLIBSRC)/registry.cpp
|
||||
$(CXX) -c -o $@ $(CXXFLAGS) $<
|
||||
|
||||
project.o: $(QMKSRC)/project.cpp
|
||||
$(CXX) -c -o $@ $(CXXFLAGS) $<
|
||||
|
||||
|
|
@ -225,9 +228,6 @@ unixmake.o: $(QMKSRC)/generators/unix/unixmake.cpp
|
|||
unixmake2.o: $(QMKSRC)/generators/unix/unixmake2.cpp
|
||||
$(CXX) -c -o $@ $(CXXFLAGS) $<
|
||||
|
||||
registry.o: $(QMKSRC)/generators/win32/registry.cpp
|
||||
$(CXX) -c -o $@ $(CXXFLAGS) $<
|
||||
|
||||
winmakefile.o: $(QMKSRC)/generators/win32/winmakefile.cpp
|
||||
$(CXX) -c -o $@ $(CXXFLAGS) $<
|
||||
|
||||
|
|
|
|||
|
|
@ -18,4 +18,4 @@ QTSRCS = \
|
|||
$(SOURCE_PATH)/src/corelib/io/qsettings_win.cpp \
|
||||
$(SOURCE_PATH)/src/corelib/tools/qlocale_win.cpp \
|
||||
$(SOURCE_PATH)/src/corelib/plugin/qsystemlibrary.cpp \
|
||||
$(SOURCE_PATH)/qmake/generators/win32/registry.cpp
|
||||
$(SOURCE_PATH)/qmake/library/registry.cpp
|
||||
|
|
|
|||
|
|
@ -3258,6 +3258,17 @@
|
|||
Returns the \c string with every special regular expression character
|
||||
escaped with a backslash. This function is a wrapper around QRegExp::escape.
|
||||
|
||||
\section2 read_registry(tree, key[, flag])
|
||||
|
||||
Returns the value of registry key \c key inside the tree \c tree.
|
||||
|
||||
Only the trees \c HKEY_CURRENT_USER (\c HKCU) and \c HKEY_LOCAL_MACHINE
|
||||
(\c HKLM) are supported.
|
||||
|
||||
The \c flag may be \c WOW64_32KEY (\c 32) or \c WOW64_64KEY (\c 64).
|
||||
|
||||
\note This function is available only on Windows hosts.
|
||||
|
||||
\section2 relative_path(filePath[, base])
|
||||
|
||||
Returns the path to \c filePath relative to \c base.
|
||||
|
|
@ -3406,7 +3417,7 @@
|
|||
\snippet code/doc_src_qmake-manual.pro 72
|
||||
|
||||
Like \l {qmake-cat}{$$cat()}, the \a mode argument takes \c blob, \c lines,
|
||||
\c true, and \false as value. However, the legacy word splitting rules
|
||||
\c true, and \c false as value. However, the legacy word splitting rules
|
||||
(i.e. empty or \c true, and \c false) differ subtly.
|
||||
|
||||
If you pass \c stsvar, the command's exit status will be stored in that
|
||||
|
|
|
|||
|
|
@ -1289,6 +1289,7 @@ MakefileGenerator::writeInstalls(QTextStream &t, bool noBuild)
|
|||
}
|
||||
}
|
||||
bool is_target = (wild == fileFixify(var("TARGET"), FileFixifyAbsolute));
|
||||
const bool noStrip = installConfigValues.contains("nostrip");
|
||||
if(is_target || exists(wild)) { //real file or target
|
||||
QFileInfo fi(fileInfo(wild));
|
||||
QString dst_file = filePrefixRoot(root, dst_dir);
|
||||
|
|
@ -1302,7 +1303,7 @@ MakefileGenerator::writeInstalls(QTextStream &t, bool noBuild)
|
|||
cmd = QLatin1String("-$(QINSTALL)");
|
||||
cmd += " " + escapeFilePath(wild) + " " + escapeFilePath(dst_file);
|
||||
inst << cmd;
|
||||
if (!project->isActiveConfig("debug_info") && !project->isActiveConfig("nostrip") &&
|
||||
if (!noStrip && !project->isActiveConfig("debug_info") && !project->isActiveConfig("nostrip") &&
|
||||
!fi.isDir() && fi.isExecutable() && !project->isEmpty("QMAKE_STRIP"))
|
||||
inst << QString("-") + var("QMAKE_STRIP") + " " +
|
||||
escapeFilePath(filePrefixRoot(root, fileFixify(dst_dir + filestr, FileFixifyAbsolute, false)));
|
||||
|
|
@ -1337,7 +1338,7 @@ MakefileGenerator::writeInstalls(QTextStream &t, bool noBuild)
|
|||
QString cmd = QLatin1String("-$(QINSTALL) ") +
|
||||
escapeFilePath(dirstr + file) + " " + escapeFilePath(dst_file);
|
||||
inst << cmd;
|
||||
if (!project->isActiveConfig("debug_info") && !project->isActiveConfig("nostrip") &&
|
||||
if (!noStrip && !project->isActiveConfig("debug_info") && !project->isActiveConfig("nostrip") &&
|
||||
!fi.isDir() && fi.isExecutable() && !project->isEmpty("QMAKE_STRIP"))
|
||||
inst << QString("-") + var("QMAKE_STRIP") + " " +
|
||||
escapeFilePath(filePrefixRoot(root, fileFixify(dst_dir + file, FileFixifyAbsolute, false)));
|
||||
|
|
@ -1875,12 +1876,14 @@ MakefileGenerator::writeExtraCompilerTargets(QTextStream &t)
|
|||
if (config.indexOf("combine") != -1) {
|
||||
// compilers with a combined input only have one output
|
||||
QString input = project->first(ProKey(*it + ".output")).toQString();
|
||||
t << ' ' << escapeDependencyPath(Option::fixPathToTargetOS(
|
||||
replaceExtraCompilerVariables(tmp_out, input, QString(), NoShell)));
|
||||
t << ' ' << escapeDependencyPath(fileFixify(
|
||||
replaceExtraCompilerVariables(tmp_out, input, QString(), NoShell),
|
||||
FileFixifyFromOutdir));
|
||||
} else {
|
||||
for (ProStringList::ConstIterator input = tmp_inputs.begin(); input != tmp_inputs.end(); ++input) {
|
||||
t << ' ' << escapeDependencyPath(Option::fixPathToTargetOS(
|
||||
replaceExtraCompilerVariables(tmp_out, (*input).toQString(), QString(), NoShell)));
|
||||
t << ' ' << escapeDependencyPath(fileFixify(
|
||||
replaceExtraCompilerVariables(tmp_out, (*input).toQString(), QString(), NoShell),
|
||||
FileFixifyFromOutdir));
|
||||
}
|
||||
}
|
||||
t << endl;
|
||||
|
|
@ -1916,8 +1919,9 @@ MakefileGenerator::writeExtraCompilerTargets(QTextStream &t)
|
|||
QString tinp = (*input).toQString();
|
||||
QString out = replaceExtraCompilerVariables(tmp_out, tinp, QString(), NoShell);
|
||||
for (const QString &rc : qAsConst(raw_clean)) {
|
||||
dels << ' ' + escapeFilePath(Option::fixPathToTargetOS(
|
||||
replaceExtraCompilerVariables(rc, tinp, out, NoShell), false));
|
||||
dels << ' ' + escapeFilePath(fileFixify(
|
||||
replaceExtraCompilerVariables(rc, tinp, out, NoShell),
|
||||
FileFixifyFromOutdir));
|
||||
}
|
||||
}
|
||||
if(project->isActiveConfig("no_delete_multiple_files")) {
|
||||
|
|
@ -2033,7 +2037,7 @@ MakefileGenerator::writeExtraCompilerTargets(QTextStream &t)
|
|||
|
||||
QString out = replaceExtraCompilerVariables(tmp_out, QString(), QString(), NoShell);
|
||||
QString cmd = replaceExtraCompilerVariables(tmp_cmd, inputs, QStringList() << out, TargetShell);
|
||||
t << escapeDependencyPath(Option::fixPathToTargetOS(out)) << ":";
|
||||
t << escapeDependencyPath(fileFixify(out, FileFixifyFromOutdir)) << ":";
|
||||
// compiler.CONFIG+=explicit_dependencies means that ONLY compiler.depends gets to cause Makefile dependencies
|
||||
if (config.indexOf("explicit_dependencies") != -1) {
|
||||
t << " " << valList(escapeDependencyPaths(fileFixify(tmp_dep, FileFixifyFromOutdir)));
|
||||
|
|
@ -2045,14 +2049,16 @@ MakefileGenerator::writeExtraCompilerTargets(QTextStream &t)
|
|||
}
|
||||
for (ProStringList::ConstIterator input = tmp_inputs.begin(); input != tmp_inputs.end(); ++input) {
|
||||
QString inpf = (*input).toQString();
|
||||
QString in = Option::fixPathToTargetOS(inpf, false);
|
||||
QStringList deps = findDependencies(inpf);
|
||||
deps << in;
|
||||
QString out = Option::fixPathToTargetOS(replaceExtraCompilerVariables(tmp_out, inpf, QString(), NoShell));
|
||||
QStringList deps;
|
||||
deps << fileFixify(inpf, FileFixifyFromOutdir);
|
||||
deps += findDependencies(inpf);
|
||||
QString out = fileFixify(replaceExtraCompilerVariables(tmp_out, inpf, QString(), NoShell),
|
||||
FileFixifyFromOutdir);
|
||||
if(!tmp_dep.isEmpty()) {
|
||||
QStringList pre_deps = fileFixify(tmp_dep, FileFixifyFromOutdir);
|
||||
for(int i = 0; i < pre_deps.size(); ++i)
|
||||
deps << replaceExtraCompilerVariables(pre_deps.at(i), inpf, out, NoShell);
|
||||
deps << fileFixify(replaceExtraCompilerVariables(pre_deps.at(i), inpf, out, NoShell),
|
||||
FileFixifyFromOutdir);
|
||||
}
|
||||
QString cmd = replaceExtraCompilerVariables(tmp_cmd, inpf, out, TargetShell);
|
||||
// NOTE: The var -> QMAKE_COMP_var replace feature is unsupported, do not use!
|
||||
|
|
@ -2112,7 +2118,7 @@ MakefileGenerator::writeExtraCompilerTargets(QTextStream &t)
|
|||
//use the depend system to find includes of these included files
|
||||
QStringList inc_deps;
|
||||
for(int i = 0; i < deps.size(); ++i) {
|
||||
const QString dep = deps.at(i);
|
||||
const QString dep = fileFixify(deps.at(i), FileFixifyFromOutdir | FileFixifyAbsolute);
|
||||
if(QFile::exists(dep)) {
|
||||
SourceFileType type = TYPE_UNKNOWN;
|
||||
if(type == TYPE_UNKNOWN) {
|
||||
|
|
@ -2149,11 +2155,10 @@ MakefileGenerator::writeExtraCompilerTargets(QTextStream &t)
|
|||
}
|
||||
}
|
||||
}
|
||||
deps += inc_deps;
|
||||
deps += fileFixify(inc_deps, FileFixifyFromOutdir);
|
||||
}
|
||||
for(int i = 0; i < deps.size(); ) {
|
||||
QString &dep = deps[i];
|
||||
dep = Option::fixPathToTargetOS(dep, false);
|
||||
if(out == dep)
|
||||
deps.removeAt(i);
|
||||
else
|
||||
|
|
@ -2207,6 +2212,25 @@ MakefileGenerator::writeExtraVariables(QTextStream &t)
|
|||
}
|
||||
}
|
||||
|
||||
// This is a more powerful alternative to the above function.
|
||||
// It's meant to be internal, as one can make quite a mess with it.
|
||||
void
|
||||
MakefileGenerator::writeExportedVariables(QTextStream &t)
|
||||
{
|
||||
const auto &vars = project->values("QMAKE_EXPORTED_VARIABLES");
|
||||
if (vars.isEmpty())
|
||||
return;
|
||||
for (const auto &exp : vars) {
|
||||
const ProString &name = project->first(ProKey(exp + ".name"));
|
||||
const ProString &value = project->first(ProKey(exp + ".value"));
|
||||
if (!value.isEmpty())
|
||||
t << name << " = " << value << endl;
|
||||
else
|
||||
t << name << " =\n";
|
||||
}
|
||||
t << endl;
|
||||
}
|
||||
|
||||
bool
|
||||
MakefileGenerator::writeDummyMakefile(QTextStream &t)
|
||||
{
|
||||
|
|
|
|||
|
|
@ -79,6 +79,7 @@ protected:
|
|||
void writeHeader(QTextStream &t);
|
||||
void writeSubDirs(QTextStream &t);
|
||||
void writeMakeQmake(QTextStream &t, bool noDummyQmakeAll = false);
|
||||
void writeExportedVariables(QTextStream &t);
|
||||
void writeExtraVariables(QTextStream &t);
|
||||
void writeExtraTargets(QTextStream &t);
|
||||
void writeExtraCompilerTargets(QTextStream &t);
|
||||
|
|
|
|||
|
|
@ -399,6 +399,8 @@ UnixMakefileGenerator::findLibraries(bool linkPrl, bool mergeLflags)
|
|||
libdirs.append(QMakeLocalFileName(dlib.toQString()));
|
||||
frameworkdirs.append(QMakeLocalFileName("/System/Library/Frameworks"));
|
||||
frameworkdirs.append(QMakeLocalFileName("/Library/Frameworks"));
|
||||
ProStringList extens;
|
||||
extens << project->first("QMAKE_EXTENSION_SHLIB") << "a";
|
||||
static const char * const lflags[] = { "LIBS", "LIBS_PRIVATE",
|
||||
"QMAKE_LIBS", "QMAKE_LIBS_PRIVATE", nullptr };
|
||||
for (int i = 0; lflags[i]; i++) {
|
||||
|
|
@ -417,8 +419,6 @@ UnixMakefileGenerator::findLibraries(bool linkPrl, bool mergeLflags)
|
|||
libdirs.insert(libidx++, f);
|
||||
} else if(opt.startsWith("-l")) {
|
||||
QString lib = opt.mid(2);
|
||||
ProStringList extens;
|
||||
extens << project->first("QMAKE_EXTENSION_SHLIB") << "a";
|
||||
for (QList<QMakeLocalFileName>::Iterator dep_it = libdirs.begin();
|
||||
dep_it != libdirs.end(); ++dep_it) {
|
||||
QString libBase = (*dep_it).local() + '/'
|
||||
|
|
@ -521,8 +521,18 @@ UnixMakefileGenerator::findLibraries(bool linkPrl, bool mergeLflags)
|
|||
lflags[arch].append(opt);
|
||||
}
|
||||
} else if(!opt.isNull()) {
|
||||
for (const ProString &ext : extens) {
|
||||
if (opt.size() > ext.size() && opt.endsWith(ext)
|
||||
&& opt.at(opt.size() - ext.size() - 1) == '.') {
|
||||
// Make sure we keep the dependency order of libraries
|
||||
lflags[arch].removeAll(opt);
|
||||
lflags[arch].append(opt);
|
||||
goto found2;
|
||||
}
|
||||
}
|
||||
if(!lflags[arch].contains(opt))
|
||||
lflags[arch].append(opt);
|
||||
found2: ;
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -180,6 +180,8 @@ UnixMakefileGenerator::writeMakeParts(QTextStream &t)
|
|||
|
||||
ProStringList &bundledFiles = project->values("QMAKE_BUNDLED_FILES");
|
||||
|
||||
writeExportedVariables(t);
|
||||
|
||||
t << "####### Compiler, tools and options\n\n";
|
||||
t << "CC = " << var("QMAKE_CC") << endl;
|
||||
t << "CXX = " << var("QMAKE_CXX") << endl;
|
||||
|
|
|
|||
|
|
@ -34,23 +34,10 @@
|
|||
#include <qdiriterator.h>
|
||||
#include <qset.h>
|
||||
|
||||
#include <registry_p.h>
|
||||
|
||||
#include <time.h>
|
||||
|
||||
QT_BEGIN_NAMESPACE
|
||||
|
||||
static QString nmakePathList(const QStringList &list)
|
||||
{
|
||||
QStringList pathList;
|
||||
pathList.reserve(list.size());
|
||||
for (const QString &path : list)
|
||||
pathList.append(QDir::cleanPath(path));
|
||||
|
||||
return QDir::toNativeSeparators(pathList.join(QLatin1Char(';')))
|
||||
.replace('#', QLatin1String("^#")).replace('$', QLatin1String("$$"));
|
||||
}
|
||||
|
||||
NmakeMakefileGenerator::NmakeMakefileGenerator() : usePCH(false), usePCHC(false)
|
||||
{
|
||||
|
||||
|
|
@ -70,202 +57,6 @@ NmakeMakefileGenerator::writeMakefile(QTextStream &t)
|
|||
if(Option::mkfile::do_stub_makefile)
|
||||
return MakefileGenerator::writeStubMakefile(t);
|
||||
#endif
|
||||
if (!project->isHostBuild()) {
|
||||
const QString msvcVer = project->first("MSVC_VER").toQString();
|
||||
if (msvcVer.isEmpty()) {
|
||||
fprintf(stderr, "Mkspec does not specify MSVC_VER. Cannot continue.\n");
|
||||
return false;
|
||||
}
|
||||
|
||||
bool winrtBuild = false;
|
||||
bool crossPlatformDesktopBuild = false;
|
||||
QString arch = project->first("VCPROJ_ARCH").toQString().toLower();
|
||||
if (project->isActiveConfig(QStringLiteral("winrt"))) {
|
||||
winrtBuild = true;
|
||||
|
||||
// Only add explicit support for arm64 cross-platform desktop builds.
|
||||
} else if ((arch == QLatin1String("arm64")) && (msvcVer == QStringLiteral("15.0"))) {
|
||||
crossPlatformDesktopBuild = true;
|
||||
}
|
||||
|
||||
if (winrtBuild || crossPlatformDesktopBuild) {
|
||||
QString compiler;
|
||||
QString compilerArch;
|
||||
const ProStringList hostArch = project->values("QMAKE_TARGET.arch");
|
||||
if (msvcVer == QStringLiteral("15.0")) {
|
||||
if (hostArch.contains("x86_64"))
|
||||
compiler = QStringLiteral("HostX64/");
|
||||
else
|
||||
compiler = QStringLiteral("HostX86/");
|
||||
if (arch == QLatin1String("arm")) {
|
||||
compiler += QStringLiteral("arm");
|
||||
compilerArch = QStringLiteral("arm");
|
||||
} else if (arch == QLatin1String("x64")) {
|
||||
compiler += QStringLiteral("x64");
|
||||
compilerArch = QStringLiteral("amd64");
|
||||
} else if (arch == QLatin1String("arm64")) {
|
||||
compiler += QStringLiteral("arm64");
|
||||
compilerArch = QStringLiteral("arm64");
|
||||
} else {
|
||||
arch = QStringLiteral("x86");
|
||||
compiler += QStringLiteral("x86");
|
||||
}
|
||||
} else {
|
||||
if (arch == QLatin1String("arm")) {
|
||||
compiler = QStringLiteral("x86_arm");
|
||||
compilerArch = QStringLiteral("arm");
|
||||
} else if (arch == QLatin1String("x64")) {
|
||||
const ProStringList hostArch = project->values("QMAKE_TARGET.arch");
|
||||
if (hostArch.contains("x86_64"))
|
||||
compiler = QStringLiteral("amd64");
|
||||
else
|
||||
compiler = QStringLiteral("x86_amd64");
|
||||
compilerArch = QStringLiteral("amd64");
|
||||
} else {
|
||||
arch = QStringLiteral("x86");
|
||||
}
|
||||
}
|
||||
|
||||
const QString winsdkVer = project->first("WINSDK_VER").toQString();
|
||||
if (winsdkVer.isEmpty()) {
|
||||
fprintf(stderr, "Mkspec does not specify WINSDK_VER. Cannot continue.\n");
|
||||
return false;
|
||||
}
|
||||
const QString targetVer = project->first("WINTARGET_VER").toQString();
|
||||
if (targetVer.isEmpty() && winrtBuild) {
|
||||
fprintf(stderr, "Mkspec does not specify WINTARGET_VER. Cannot continue.\n");
|
||||
return false;
|
||||
}
|
||||
|
||||
#ifdef Q_OS_WIN
|
||||
QString regKey;
|
||||
if (msvcVer == QStringLiteral("15.0"))
|
||||
regKey = QStringLiteral("Software\\Microsoft\\VisualStudio\\SxS\\VS7\\") + msvcVer;
|
||||
else
|
||||
regKey = QStringLiteral("Software\\Microsoft\\VisualStudio\\") + msvcVer + ("\\Setup\\VC\\ProductDir");
|
||||
const QString vcInstallDir = qt_readRegistryKey(HKEY_LOCAL_MACHINE, regKey, KEY_WOW64_32KEY);
|
||||
if (vcInstallDir.isEmpty()) {
|
||||
fprintf(stderr, "Failed to find the Visual Studio installation directory.\n");
|
||||
return false;
|
||||
}
|
||||
|
||||
const QString windowsPath = "Software\\Microsoft\\Microsoft SDKs\\Windows\\v";
|
||||
|
||||
regKey = windowsPath + winsdkVer + QStringLiteral("\\InstallationFolder");
|
||||
const QString kitDir = qt_readRegistryKey(HKEY_LOCAL_MACHINE, regKey, KEY_WOW64_32KEY);
|
||||
if (kitDir.isEmpty()) {
|
||||
fprintf(stderr, "Failed to find the Windows Kit installation directory.\n");
|
||||
return false;
|
||||
}
|
||||
#else
|
||||
const QString vcInstallDir = "/fake/vc_install_dir";
|
||||
const QString kitDir = "/fake/sdk_install_dir";
|
||||
#endif // Q_OS_WIN
|
||||
QStringList incDirs;
|
||||
QStringList libDirs;
|
||||
QStringList binDirs;
|
||||
if (msvcVer == QStringLiteral("15.0")) {
|
||||
const QString toolsInstallDir = qgetenv("VCToolsInstallDir");
|
||||
if (toolsInstallDir.isEmpty()) {
|
||||
fprintf(stderr, "Failed to access tools installation dir.\n");
|
||||
return false;
|
||||
}
|
||||
|
||||
binDirs << toolsInstallDir + QStringLiteral("bin/") + compiler;
|
||||
if (arch == QStringLiteral("x64"))
|
||||
binDirs << toolsInstallDir + QStringLiteral("bin/HostX86/X86");
|
||||
binDirs << kitDir + QStringLiteral("bin/x86");
|
||||
binDirs << vcInstallDir + QStringLiteral("Common7/Tools");
|
||||
binDirs << vcInstallDir + QStringLiteral("Common7/ide");
|
||||
binDirs << vcInstallDir + QStringLiteral("MSBuild/15.0/bin");
|
||||
|
||||
incDirs << toolsInstallDir + QStringLiteral("include");
|
||||
incDirs << vcInstallDir + QStringLiteral("VC/Auxiliary/VS/include");
|
||||
|
||||
const QString crtVersion = qgetenv("UCRTVersion");
|
||||
if (crtVersion.isEmpty()) {
|
||||
fprintf(stderr, "Failed to access CRT version.\n");
|
||||
return false;
|
||||
}
|
||||
const QString crtInclude = kitDir + QStringLiteral("Include/") + crtVersion;
|
||||
const QString crtLib = kitDir + QStringLiteral("Lib/") + crtVersion;
|
||||
incDirs << crtInclude + QStringLiteral("/ucrt");
|
||||
incDirs << crtInclude + QStringLiteral("/um");
|
||||
incDirs << crtInclude + QStringLiteral("/shared");
|
||||
incDirs << crtInclude + QStringLiteral("/winrt");
|
||||
|
||||
if (winrtBuild) {
|
||||
// Only use mobile-specific headers and link against store-specific libs for
|
||||
// winrt builds.
|
||||
incDirs << kitDir + QStringLiteral("Extension SDKs/WindowsMobile/")
|
||||
+ crtVersion + QStringLiteral("/Include/WinRT");
|
||||
|
||||
libDirs << toolsInstallDir + QStringLiteral("lib/") + arch + QStringLiteral("/store");
|
||||
} else {
|
||||
// Desktop projects may require the atl headers and libs.
|
||||
incDirs << toolsInstallDir + QStringLiteral("atlmfc/include");
|
||||
libDirs << toolsInstallDir + QStringLiteral("atlmfc/lib/") + compilerArch;
|
||||
libDirs << toolsInstallDir + QStringLiteral("lib/") + arch;
|
||||
}
|
||||
|
||||
libDirs << vcInstallDir + QStringLiteral("VC/Auxiliary/VS/lib/") + arch;
|
||||
|
||||
libDirs << crtLib + QStringLiteral("/ucrt/") + arch;
|
||||
libDirs << crtLib + QStringLiteral("/um/") + arch;
|
||||
} else if (msvcVer == QStringLiteral("14.0")) {
|
||||
binDirs << vcInstallDir + QStringLiteral("bin/") + compiler;
|
||||
binDirs << vcInstallDir + QStringLiteral("bin/"); // Maybe remove for x86 again?
|
||||
binDirs << kitDir + QStringLiteral("bin/") + (arch == QStringLiteral("arm") ? QStringLiteral("x86") : arch);
|
||||
binDirs << vcInstallDir + QStringLiteral("../Common7/Tools/bin");
|
||||
binDirs << vcInstallDir + QStringLiteral("../Common7/Tools");
|
||||
binDirs << vcInstallDir + QStringLiteral("../Common7/ide");
|
||||
binDirs << kitDir + QStringLiteral("Windows Performance Toolkit/");
|
||||
|
||||
incDirs << vcInstallDir + QStringLiteral("include");
|
||||
incDirs << vcInstallDir + QStringLiteral("atlmfc/include");
|
||||
|
||||
const QString crtVersion = qgetenv("UCRTVersion");
|
||||
if (crtVersion.isEmpty()) {
|
||||
fprintf(stderr, "Failed to access CRT version.\n");
|
||||
return false;
|
||||
}
|
||||
const QString crtInclude = kitDir + QStringLiteral("Include/") + crtVersion;
|
||||
const QString crtLib = kitDir + QStringLiteral("Lib/") + crtVersion;
|
||||
incDirs << crtInclude + QStringLiteral("/ucrt");
|
||||
incDirs << crtInclude + QStringLiteral("/um");
|
||||
incDirs << crtInclude + QStringLiteral("/shared");
|
||||
incDirs << crtInclude + QStringLiteral("/winrt");
|
||||
|
||||
incDirs << kitDir + QStringLiteral("Extension SDKs/WindowsMobile/")
|
||||
+ crtVersion + QStringLiteral("/Include/WinRT");
|
||||
|
||||
libDirs << vcInstallDir + QStringLiteral("lib/store/") + compilerArch;
|
||||
libDirs << vcInstallDir + QStringLiteral("atlmfc/lib") + compilerArch;
|
||||
|
||||
libDirs << crtLib + QStringLiteral("/ucrt/") + arch;
|
||||
libDirs << crtLib + QStringLiteral("/um/") + arch;
|
||||
} else {
|
||||
incDirs << vcInstallDir + QStringLiteral("/include");
|
||||
libDirs << vcInstallDir + QStringLiteral("/lib/store/") + compilerArch
|
||||
<< vcInstallDir + QStringLiteral("/lib/") + compilerArch;
|
||||
binDirs << vcInstallDir + QStringLiteral("/bin/") + compiler
|
||||
<< vcInstallDir + QStringLiteral("/../Common7/IDE");
|
||||
libDirs << kitDir + QStringLiteral("/Lib/") + targetVer + ("/um/") + arch;
|
||||
incDirs << kitDir + QStringLiteral("/include/um")
|
||||
<< kitDir + QStringLiteral("/include/shared")
|
||||
<< kitDir + QStringLiteral("/include/winrt");
|
||||
}
|
||||
|
||||
binDirs << vcInstallDir + QStringLiteral("/bin");
|
||||
|
||||
// Inherit PATH
|
||||
binDirs << QString::fromLocal8Bit(qgetenv("PATH")).split(QLatin1Char(';'));
|
||||
|
||||
t << "\nINCLUDE = " << nmakePathList(incDirs);
|
||||
t << "\nLIB = " << nmakePathList(libDirs);
|
||||
t << "\nPATH = " << nmakePathList(binDirs) << '\n';
|
||||
}
|
||||
}
|
||||
writeNmakeParts(t);
|
||||
return MakefileGenerator::writeMakefile(t);
|
||||
}
|
||||
|
|
@ -553,12 +344,13 @@ void NmakeMakefileGenerator::writeImplicitRulesPart(QTextStream &t)
|
|||
QDirIterator dit(sourceDir, sourceFilesFilter, QDir::Files | QDir::NoDotAndDotDot);
|
||||
while (dit.hasNext()) {
|
||||
dit.next();
|
||||
QString &duplicate = fileNames[dit.fileName()];
|
||||
const QFileInfo fi = dit.fileInfo();
|
||||
QString &duplicate = fileNames[fi.completeBaseName()];
|
||||
if (duplicate.isNull()) {
|
||||
duplicate = dit.filePath();
|
||||
duplicate = fi.filePath();
|
||||
} else {
|
||||
warn_msg(WarnLogic, "%s conflicts with %s", qPrintable(duplicate),
|
||||
qPrintable(dit.filePath()));
|
||||
qPrintable(fi.filePath()));
|
||||
duplicatesFound = true;
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -520,6 +520,8 @@ void Win32MakefileGenerator::writeIncPart(QTextStream &t)
|
|||
|
||||
void Win32MakefileGenerator::writeStandardParts(QTextStream &t)
|
||||
{
|
||||
writeExportedVariables(t);
|
||||
|
||||
t << "####### Compiler, tools and options\n\n";
|
||||
t << "CC = " << var("QMAKE_CC") << endl;
|
||||
t << "CXX = " << var("QMAKE_CXX") << endl;
|
||||
|
|
|
|||
|
|
@ -52,6 +52,9 @@
|
|||
# include <qthreadpool.h>
|
||||
#endif
|
||||
#include <qversionnumber.h>
|
||||
#ifdef Q_OS_WIN
|
||||
# include <registry_p.h>
|
||||
#endif
|
||||
|
||||
#include <algorithm>
|
||||
|
||||
|
|
@ -93,7 +96,7 @@ enum ExpandFunc {
|
|||
E_UPPER, E_LOWER, E_TITLE, E_FILES, E_PROMPT, E_RE_ESCAPE, E_VAL_ESCAPE,
|
||||
E_REPLACE, E_SORT_DEPENDS, E_RESOLVE_DEPENDS, E_ENUMERATE_VARS,
|
||||
E_SHADOWED, E_ABSOLUTE_PATH, E_RELATIVE_PATH, E_CLEAN_PATH,
|
||||
E_SYSTEM_PATH, E_SHELL_PATH, E_SYSTEM_QUOTE, E_SHELL_QUOTE, E_GETENV
|
||||
E_SYSTEM_PATH, E_SHELL_PATH, E_SYSTEM_QUOTE, E_SHELL_QUOTE, E_GETENV, E_READ_REGISTRY
|
||||
};
|
||||
|
||||
enum TestFunc {
|
||||
|
|
@ -190,6 +193,7 @@ void QMakeEvaluator::initFunctionStatics()
|
|||
{ "system_quote", E_SYSTEM_QUOTE, -1, 1, "arg" },
|
||||
{ "shell_quote", E_SHELL_QUOTE, -1, 1, "arg" },
|
||||
{ "getenv", E_GETENV, 1, 1, "arg" },
|
||||
{ "read_registry", E_READ_REGISTRY, 2, 3, "tree, key, [wow64]" },
|
||||
};
|
||||
statics.expands.reserve((int)(sizeof(expandInits)/sizeof(expandInits[0])));
|
||||
for (unsigned i = 0; i < sizeof(expandInits)/sizeof(expandInits[0]); ++i)
|
||||
|
|
@ -1214,6 +1218,40 @@ QMakeEvaluator::VisitReturn QMakeEvaluator::evaluateBuiltinExpand(
|
|||
ret << ProString(m_option->getEnv(u1.str()));
|
||||
break;
|
||||
}
|
||||
#ifdef Q_OS_WIN
|
||||
case E_READ_REGISTRY: {
|
||||
HKEY tree;
|
||||
const auto par = args.at(0);
|
||||
if (!par.compare(QLatin1String("HKCU"), Qt::CaseInsensitive)
|
||||
|| !par.compare(QLatin1String("HKEY_CURRENT_USER"), Qt::CaseInsensitive)) {
|
||||
tree = HKEY_CURRENT_USER;
|
||||
} else if (!par.compare(QLatin1String("HKLM"), Qt::CaseInsensitive)
|
||||
|| !par.compare(QLatin1String("HKEY_LOCAL_MACHINE"), Qt::CaseInsensitive)) {
|
||||
tree = HKEY_LOCAL_MACHINE;
|
||||
} else {
|
||||
evalError(fL1S("read_registry(): invalid or unsupported registry tree %1.")
|
||||
.arg(par.toQStringView()));
|
||||
goto allfail;
|
||||
}
|
||||
int flags = 0;
|
||||
if (args.count() > 2) {
|
||||
const auto opt = args.at(2);
|
||||
if (opt == "32"
|
||||
|| !opt.compare(QLatin1String("wow64_32key"), Qt::CaseInsensitive)) {
|
||||
flags = KEY_WOW64_32KEY;
|
||||
} else if (opt == "64"
|
||||
|| !opt.compare(QLatin1String("wow64_64key"), Qt::CaseInsensitive)) {
|
||||
flags = KEY_WOW64_64KEY;
|
||||
} else {
|
||||
evalError(fL1S("read_registry(): invalid option %1.")
|
||||
.arg(opt.toQStringView()));
|
||||
goto allfail;
|
||||
}
|
||||
}
|
||||
ret << ProString(qt_readRegistryKey(tree, args.at(1).toQString(m_tmp1), flags));
|
||||
break;
|
||||
}
|
||||
#endif
|
||||
default:
|
||||
evalError(fL1S("Function '%1' is not implemented.").arg(func.toQStringView()));
|
||||
break;
|
||||
|
|
|
|||
|
|
@ -40,8 +40,6 @@
|
|||
// We mean it.
|
||||
//
|
||||
|
||||
QT_BEGIN_NAMESPACE
|
||||
|
||||
#include <QtCore/qglobal.h>
|
||||
|
||||
#ifdef Q_OS_WIN32
|
||||
|
|
@ -52,6 +50,8 @@ QT_BEGIN_NAMESPACE
|
|||
|
||||
#include <QtCore/qstring.h>
|
||||
|
||||
QT_BEGIN_NAMESPACE
|
||||
|
||||
/**
|
||||
* Read a value from the Windows registry.
|
||||
*
|
||||
|
|
@ -54,10 +54,10 @@
|
|||
#include <stdlib.h>
|
||||
#include <qregexp.h>
|
||||
|
||||
QT_BEGIN_NAMESPACE
|
||||
//#include <qdir.h>
|
||||
//#include "option.h"
|
||||
|
||||
QT_BEGIN_NAMESPACE
|
||||
QT_END_NAMESPACE
|
||||
|
||||
#endif
|
||||
|
|
|
|||
|
|
@ -14,6 +14,10 @@
|
|||
#include "libANGLE/histogram_macros.h"
|
||||
#include "third_party/trace_event/trace_event.h"
|
||||
|
||||
#ifndef QT_D3DCOMPILER_DLL
|
||||
#define QT_D3DCOMPILER_DLL D3DCOMPILER_DLL
|
||||
#endif
|
||||
|
||||
#if ANGLE_APPEND_ASSEMBLY_TO_SHADER_DEBUG_INFO == ANGLE_ENABLED
|
||||
namespace
|
||||
{
|
||||
|
|
@ -130,6 +134,27 @@ gl::Error HLSLCompiler::ensureInitialized()
|
|||
}
|
||||
#endif // ANGLE_PRELOADED_D3DCOMPILER_MODULE_NAMES
|
||||
|
||||
// Load the compiler DLL specified by the environment, or default to QT_D3DCOMPILER_DLL
|
||||
const wchar_t *defaultCompiler = _wgetenv(L"QT_D3DCOMPILER_DLL");
|
||||
if (!defaultCompiler)
|
||||
defaultCompiler = QT_D3DCOMPILER_DLL;
|
||||
|
||||
const wchar_t *compilerDlls[] = {
|
||||
defaultCompiler,
|
||||
L"d3dcompiler_47.dll",
|
||||
L"d3dcompiler_46.dll",
|
||||
L"d3dcompiler_43.dll",
|
||||
0
|
||||
};
|
||||
|
||||
// Load the first available known compiler DLL
|
||||
for (int i = 0; compilerDlls[i]; ++i)
|
||||
{
|
||||
mD3DCompilerModule = LoadLibrary(compilerDlls[i]);
|
||||
if (mD3DCompilerModule)
|
||||
break;
|
||||
}
|
||||
|
||||
if (!mD3DCompilerModule)
|
||||
{
|
||||
// Load the version of the D3DCompiler DLL associated with the Direct3D version ANGLE was built with.
|
||||
|
|
|
|||
|
|
@ -8,7 +8,7 @@ Contains the header and sources files from selected xcb libraries:
|
|||
Pointer Barriers API and SendExtensionEvent API)
|
||||
libxcb-util-image-0.3.9
|
||||
libxcb-util-keysyms-0.3.9
|
||||
libxcb-util-renderutil-0.3.8
|
||||
libxcb-util-renderutil-0.3.9
|
||||
libxcb-util-wm-0.3.9
|
||||
|
||||
The 'include' directory was obtained by compiling and installing all of the modules.
|
||||
|
|
|
|||
|
|
@ -27,6 +27,10 @@
|
|||
#define XCB_RENDERUTIL
|
||||
#include <xcb/render.h>
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
typedef enum xcb_pict_format_t {
|
||||
XCB_PICT_FORMAT_ID = (1 << 0),
|
||||
XCB_PICT_FORMAT_TYPE = (1 << 1),
|
||||
|
|
@ -58,7 +62,7 @@ xcb_render_util_find_visual_format (const xcb_render_query_pict_formats_reply_t
|
|||
xcb_render_pictforminfo_t *
|
||||
xcb_render_util_find_format (const xcb_render_query_pict_formats_reply_t *formats,
|
||||
unsigned long mask,
|
||||
const xcb_render_pictforminfo_t *template,
|
||||
const xcb_render_pictforminfo_t *ptemplate,
|
||||
int count);
|
||||
|
||||
xcb_render_pictforminfo_t *
|
||||
|
|
@ -139,4 +143,8 @@ void
|
|||
xcb_render_util_composite_text_free (
|
||||
xcb_render_util_composite_text_stream_t *stream );
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
||||
#endif /* XCB_RENDERUTIL */
|
||||
|
|
|
|||
|
|
@ -19,6 +19,10 @@
|
|||
* PERFORMANCE OF THIS SOFTWARE.
|
||||
*/
|
||||
|
||||
#ifdef HAVE_CONFIG_H
|
||||
#include "config.h"
|
||||
#endif
|
||||
|
||||
#include "xcb_renderutil.h"
|
||||
|
||||
xcb_render_pictvisual_t *
|
||||
|
|
@ -41,7 +45,7 @@ xcb_render_util_find_visual_format (const xcb_render_query_pict_formats_reply_t
|
|||
xcb_render_pictforminfo_t *
|
||||
xcb_render_util_find_format (const xcb_render_query_pict_formats_reply_t *formats,
|
||||
unsigned long mask,
|
||||
const xcb_render_pictforminfo_t *template,
|
||||
const xcb_render_pictforminfo_t *ptemplate,
|
||||
int count)
|
||||
{
|
||||
xcb_render_pictforminfo_iterator_t i;
|
||||
|
|
@ -50,40 +54,40 @@ xcb_render_util_find_format (const xcb_render_query_pict_formats_reply_t *format
|
|||
for (i = xcb_render_query_pict_formats_formats_iterator(formats); i.rem; xcb_render_pictforminfo_next(&i))
|
||||
{
|
||||
if (mask & XCB_PICT_FORMAT_ID)
|
||||
if (template->id != i.data->id)
|
||||
if (ptemplate->id != i.data->id)
|
||||
continue;
|
||||
if (mask & XCB_PICT_FORMAT_TYPE)
|
||||
if (template->type != i.data->type)
|
||||
if (ptemplate->type != i.data->type)
|
||||
continue;
|
||||
if (mask & XCB_PICT_FORMAT_DEPTH)
|
||||
if (template->depth != i.data->depth)
|
||||
if (ptemplate->depth != i.data->depth)
|
||||
continue;
|
||||
if (mask & XCB_PICT_FORMAT_RED)
|
||||
if (template->direct.red_shift != i.data->direct.red_shift)
|
||||
if (ptemplate->direct.red_shift != i.data->direct.red_shift)
|
||||
continue;
|
||||
if (mask & XCB_PICT_FORMAT_RED_MASK)
|
||||
if (template->direct.red_mask != i.data->direct.red_mask)
|
||||
if (ptemplate->direct.red_mask != i.data->direct.red_mask)
|
||||
continue;
|
||||
if (mask & XCB_PICT_FORMAT_GREEN)
|
||||
if (template->direct.green_shift != i.data->direct.green_shift)
|
||||
if (ptemplate->direct.green_shift != i.data->direct.green_shift)
|
||||
continue;
|
||||
if (mask & XCB_PICT_FORMAT_GREEN_MASK)
|
||||
if (template->direct.green_mask != i.data->direct.green_mask)
|
||||
if (ptemplate->direct.green_mask != i.data->direct.green_mask)
|
||||
continue;
|
||||
if (mask & XCB_PICT_FORMAT_BLUE)
|
||||
if (template->direct.blue_shift != i.data->direct.blue_shift)
|
||||
if (ptemplate->direct.blue_shift != i.data->direct.blue_shift)
|
||||
continue;
|
||||
if (mask & XCB_PICT_FORMAT_BLUE_MASK)
|
||||
if (template->direct.blue_mask != i.data->direct.blue_mask)
|
||||
if (ptemplate->direct.blue_mask != i.data->direct.blue_mask)
|
||||
continue;
|
||||
if (mask & XCB_PICT_FORMAT_ALPHA)
|
||||
if (template->direct.alpha_shift != i.data->direct.alpha_shift)
|
||||
if (ptemplate->direct.alpha_shift != i.data->direct.alpha_shift)
|
||||
continue;
|
||||
if (mask & XCB_PICT_FORMAT_ALPHA_MASK)
|
||||
if (template->direct.alpha_mask != i.data->direct.alpha_mask)
|
||||
if (ptemplate->direct.alpha_mask != i.data->direct.alpha_mask)
|
||||
continue;
|
||||
if (mask & XCB_PICT_FORMAT_COLORMAP)
|
||||
if (template->colormap != i.data->colormap)
|
||||
if (ptemplate->colormap != i.data->colormap)
|
||||
continue;
|
||||
if (count-- == 0)
|
||||
return i.data;
|
||||
|
|
|
|||
|
|
@ -47,6 +47,7 @@ import java.util.concurrent.Semaphore;
|
|||
import android.app.Activity;
|
||||
import android.app.Service;
|
||||
import android.content.Context;
|
||||
import android.content.ContentResolver;
|
||||
import android.content.Intent;
|
||||
import android.content.pm.PackageManager;
|
||||
import android.content.pm.ActivityInfo;
|
||||
|
|
@ -57,6 +58,7 @@ import android.os.IBinder;
|
|||
import android.os.Looper;
|
||||
import android.content.ClipboardManager;
|
||||
import android.content.ClipboardManager.OnPrimaryClipChangedListener;
|
||||
import android.content.ClipData;
|
||||
import android.util.Log;
|
||||
import android.view.ContextMenu;
|
||||
import android.view.KeyEvent;
|
||||
|
|
@ -98,7 +100,9 @@ public class QtNative
|
|||
private static ClipboardManager m_clipboardManager = null;
|
||||
private static Method m_checkSelfPermissionMethod = null;
|
||||
private static Boolean m_tabletEventSupported = null;
|
||||
private static boolean m_usePrimaryClip = false;
|
||||
public static QtThread m_qtThread = new QtThread();
|
||||
private static Method m_addItemMethod = null;
|
||||
private static final Runnable runPendingCppRunnablesRunnable = new Runnable() {
|
||||
@Override
|
||||
public void run() {
|
||||
|
|
@ -697,26 +701,133 @@ public class QtNative
|
|||
}
|
||||
}
|
||||
|
||||
private static void clearClipData()
|
||||
{
|
||||
m_usePrimaryClip = false;
|
||||
}
|
||||
private static void setClipboardText(String text)
|
||||
{
|
||||
if (m_clipboardManager != null)
|
||||
m_clipboardManager.setText(text);
|
||||
if (m_clipboardManager != null) {
|
||||
ClipData clipData = ClipData.newPlainText("text/plain", text);
|
||||
updatePrimaryClip(clipData);
|
||||
}
|
||||
}
|
||||
|
||||
public static boolean hasClipboardText()
|
||||
{
|
||||
if (m_clipboardManager != null)
|
||||
return m_clipboardManager.hasText();
|
||||
else
|
||||
return false;
|
||||
if (m_clipboardManager != null && m_clipboardManager.hasPrimaryClip()) {
|
||||
ClipData primaryClip = m_clipboardManager.getPrimaryClip();
|
||||
for (int i = 0; i < primaryClip.getItemCount(); ++i)
|
||||
if (primaryClip.getItemAt(i).getText() != null)
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
private static String getClipboardText()
|
||||
{
|
||||
if (m_clipboardManager != null)
|
||||
return m_clipboardManager.getText().toString();
|
||||
else
|
||||
return "";
|
||||
if (m_clipboardManager != null && m_clipboardManager.hasPrimaryClip()) {
|
||||
ClipData primaryClip = m_clipboardManager.getPrimaryClip();
|
||||
for (int i = 0; i < primaryClip.getItemCount(); ++i)
|
||||
if (primaryClip.getItemAt(i).getText() != null)
|
||||
return primaryClip.getItemAt(i).getText().toString();
|
||||
}
|
||||
return "";
|
||||
}
|
||||
|
||||
private static void updatePrimaryClip(ClipData clipData)
|
||||
{
|
||||
if (m_usePrimaryClip) {
|
||||
ClipData clip = m_clipboardManager.getPrimaryClip();
|
||||
if (Build.VERSION.SDK_INT >= 26) {
|
||||
if (m_addItemMethod == null) {
|
||||
Class[] cArg = new Class[2];
|
||||
cArg[0] = ContentResolver.class;
|
||||
cArg[1] = ClipData.Item.class;
|
||||
try {
|
||||
m_addItemMethod = m_clipboardManager.getClass().getMethod("addItem", cArg);
|
||||
} catch (Exception e) {
|
||||
}
|
||||
}
|
||||
}
|
||||
if (m_addItemMethod != null) {
|
||||
try {
|
||||
m_addItemMethod.invoke(m_activity.getContentResolver(), clipData.getItemAt(0));
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
} else {
|
||||
clip.addItem(clipData.getItemAt(0));
|
||||
}
|
||||
m_clipboardManager.setPrimaryClip(clip);
|
||||
} else {
|
||||
m_clipboardManager.setPrimaryClip(clipData);
|
||||
m_usePrimaryClip = true;
|
||||
}
|
||||
}
|
||||
|
||||
private static void setClipboardHtml(String text, String html)
|
||||
{
|
||||
if (m_clipboardManager != null) {
|
||||
ClipData clipData = ClipData.newHtmlText("text/html", text, html);
|
||||
updatePrimaryClip(clipData);
|
||||
}
|
||||
}
|
||||
|
||||
public static boolean hasClipboardHtml()
|
||||
{
|
||||
if (m_clipboardManager != null && m_clipboardManager.hasPrimaryClip()) {
|
||||
ClipData primaryClip = m_clipboardManager.getPrimaryClip();
|
||||
for (int i = 0; i < primaryClip.getItemCount(); ++i)
|
||||
if (primaryClip.getItemAt(i).getHtmlText() != null)
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
private static String getClipboardHtml()
|
||||
{
|
||||
if (m_clipboardManager != null && m_clipboardManager.hasPrimaryClip()) {
|
||||
ClipData primaryClip = m_clipboardManager.getPrimaryClip();
|
||||
for (int i = 0; i < primaryClip.getItemCount(); ++i)
|
||||
if (primaryClip.getItemAt(i).getHtmlText() != null)
|
||||
return primaryClip.getItemAt(i).getHtmlText().toString();
|
||||
}
|
||||
return "";
|
||||
}
|
||||
|
||||
private static void setClipboardUri(String uriString)
|
||||
{
|
||||
if (m_clipboardManager != null) {
|
||||
ClipData clipData = ClipData.newUri(m_activity.getContentResolver(), "text/uri-list",
|
||||
Uri.parse(uriString));
|
||||
updatePrimaryClip(clipData);
|
||||
}
|
||||
}
|
||||
|
||||
public static boolean hasClipboardUri()
|
||||
{
|
||||
if (m_clipboardManager != null && m_clipboardManager.hasPrimaryClip()) {
|
||||
ClipData primaryClip = m_clipboardManager.getPrimaryClip();
|
||||
for (int i = 0; i < primaryClip.getItemCount(); ++i)
|
||||
if (primaryClip.getItemAt(i).getUri() != null)
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
private static String[] getClipboardUris()
|
||||
{
|
||||
ArrayList<String> uris = new ArrayList<String>();
|
||||
if (m_clipboardManager != null && m_clipboardManager.hasPrimaryClip()) {
|
||||
ClipData primaryClip = m_clipboardManager.getPrimaryClip();
|
||||
for (int i = 0; i < primaryClip.getItemCount(); ++i)
|
||||
if (primaryClip.getItemAt(i).getUri() != null)
|
||||
uris.add(primaryClip.getItemAt(i).getUri().toString());
|
||||
}
|
||||
String[] strings = new String[uris.size()];
|
||||
strings = uris.toArray(strings);
|
||||
return strings;
|
||||
}
|
||||
|
||||
private static void openContextMenu(final int x, final int y, final int w, final int h)
|
||||
|
|
|
|||
|
|
@ -17,7 +17,7 @@ repositories {
|
|||
apply plugin: 'com.android.application'
|
||||
|
||||
dependencies {
|
||||
implementation fileTree(dir: 'libs', include: ['*.jar'])
|
||||
implementation fileTree(dir: 'libs', include: ['*.jar', '*.aar'])
|
||||
}
|
||||
|
||||
android {
|
||||
|
|
|
|||
|
|
@ -0,0 +1,59 @@
|
|||
From dff9676c60c51fa7af0749e1cb54305f112183e3 Mon Sep 17 00:00:00 2001
|
||||
From: Oliver Wolff <oliver.wolff@qt.io>
|
||||
Date: Mon, 10 Dec 2018 08:33:14 +0100
|
||||
Subject: [PATCH] ANGLE: Dynamically load D3D compiler from a list
|
||||
|
||||
If the default compiler cannot be found, load it from a list of DLL names,
|
||||
including a non-versioned proxy DLL provided by Qt. On Desktop Windows,
|
||||
the default compiler can also be specified by an environment variable,
|
||||
QT_D3DCOMPILER_DLL.
|
||||
---
|
||||
src/3rdparty/angle/src/libANGLE/renderer/d3d/HLSLCompiler.cpp | 25 +++++++++++++++++++++++++
|
||||
1 file changed, 25 insertions(+)
|
||||
|
||||
diff --git a/src/3rdparty/angle/src/libANGLE/renderer/d3d/HLSLCompiler.cpp b/src/3rdparty/angle/src/libANGLE/renderer/d3d/HLSLCompiler.cpp
|
||||
index b38765070..5d47308d6 100644
|
||||
--- a/src/3rdparty/angle/src/libANGLE/renderer/d3d/HLSLCompiler.cpp
|
||||
+++ b/src/3rdparty/angle/src/libANGLE/renderer/d3d/HLSLCompiler.cpp
|
||||
@@ -14,6 +14,10 @@
|
||||
#include "libANGLE/histogram_macros.h"
|
||||
#include "third_party/trace_event/trace_event.h"
|
||||
|
||||
+#ifndef QT_D3DCOMPILER_DLL
|
||||
+#define QT_D3DCOMPILER_DLL D3DCOMPILER_DLL
|
||||
+#endif
|
||||
+
|
||||
#if ANGLE_APPEND_ASSEMBLY_TO_SHADER_DEBUG_INFO == ANGLE_ENABLED
|
||||
namespace
|
||||
{
|
||||
@@ -130,6 +134,27 @@ gl::Error HLSLCompiler::ensureInitialized()
|
||||
}
|
||||
#endif // ANGLE_PRELOADED_D3DCOMPILER_MODULE_NAMES
|
||||
|
||||
+ // Load the compiler DLL specified by the environment, or default to QT_D3DCOMPILER_DLL
|
||||
+ const wchar_t *defaultCompiler = _wgetenv(L"QT_D3DCOMPILER_DLL");
|
||||
+ if (!defaultCompiler)
|
||||
+ defaultCompiler = QT_D3DCOMPILER_DLL;
|
||||
+
|
||||
+ const wchar_t *compilerDlls[] = {
|
||||
+ defaultCompiler,
|
||||
+ L"d3dcompiler_47.dll",
|
||||
+ L"d3dcompiler_46.dll",
|
||||
+ L"d3dcompiler_43.dll",
|
||||
+ 0
|
||||
+ };
|
||||
+
|
||||
+ // Load the first available known compiler DLL
|
||||
+ for (int i = 0; compilerDlls[i]; ++i)
|
||||
+ {
|
||||
+ mD3DCompilerModule = LoadLibrary(compilerDlls[i]);
|
||||
+ if (mD3DCompilerModule)
|
||||
+ break;
|
||||
+ }
|
||||
+
|
||||
if (!mD3DCompilerModule)
|
||||
{
|
||||
// Load the version of the D3DCompiler DLL associated with the Direct3D version ANGLE was built with.
|
||||
--
|
||||
2.15.0.windows.1
|
||||
|
||||
|
|
@ -22,21 +22,7 @@ lib_replace.replace = \$\$\$\$[QT_INSTALL_LIBS]
|
|||
lib_replace.CONFIG = path
|
||||
QMAKE_PRL_INSTALL_REPLACE += lib_replace
|
||||
|
||||
# DirectX is included in the Windows 8 Kit, but everything else requires the DX SDK.
|
||||
winrt|msvc {
|
||||
FXC = fxc.exe
|
||||
} else {
|
||||
DX_DIR = $$(DXSDK_DIR)
|
||||
isEmpty(DX_DIR) {
|
||||
error("Cannot determine DirectX SDK location. Please set DXSDK_DIR environment variable.")
|
||||
}
|
||||
|
||||
equals(QMAKE_TARGET.arch, x86_64) {
|
||||
FXC = \"$${DX_DIR}Utilities\\bin\\x64\\fxc.exe\"
|
||||
} else {
|
||||
FXC = \"$${DX_DIR}Utilities\\bin\\x86\\fxc.exe\"
|
||||
}
|
||||
}
|
||||
FXC = $$shell_quote($$shell_path($$QMAKE_FXC_LOCATION))
|
||||
|
||||
win32 {
|
||||
VERSION = $$MODULE_VERSION
|
||||
|
|
|
|||
|
|
@ -8,11 +8,11 @@ INCLUDEPATH += \
|
|||
|
||||
# Remember to adapt src/gui/configure.* if the Direct X version changes.
|
||||
!winrt: \
|
||||
LIBS_PRIVATE += -ld3d9
|
||||
QMAKE_USE_PRIVATE += d3d9
|
||||
winrt: \
|
||||
LIBS_PRIVATE += -ld3dcompiler -ldxgi -ld3d11
|
||||
QMAKE_USE_PRIVATE += d3dcompiler d3d11 dxgi
|
||||
|
||||
LIBS_PRIVATE += -ldxguid
|
||||
QMAKE_USE_PRIVATE += dxguid
|
||||
|
||||
STATICLIBS = translator preprocessor
|
||||
for(libname, STATICLIBS) {
|
||||
|
|
|
|||
|
|
@ -1,9 +1,10 @@
|
|||
include(../common/common.pri)
|
||||
DEF_FILE_TARGET = $${TARGET}
|
||||
TARGET = $$qtLibraryTarget($${LIBEGL_NAME})
|
||||
winrt: LIBS_PRIVATE += -ld3d11
|
||||
winrt: QMAKE_USE_PRIVATE += d3d11
|
||||
QMAKE_USE_PRIVATE += dxguid
|
||||
|
||||
LIBS_PRIVATE += -ldxguid -L$$QT_BUILD_TREE/lib -l$$qtLibraryTarget($${LIBGLESV2_NAME})
|
||||
LIBS_PRIVATE += -L$$QT_BUILD_TREE/lib -l$$qtLibraryTarget($${LIBGLESV2_NAME})
|
||||
|
||||
DEFINES += GL_APICALL= GL_GLEXT_PROTOTYPES= EGLAPI= LIBEGL_IMPLEMENTATION
|
||||
|
||||
|
|
|
|||
|
|
@ -56,8 +56,7 @@ qtConfig(textcodec) {
|
|||
qtConfig(iconv) {
|
||||
HEADERS += codecs/qiconvcodec_p.h
|
||||
SOURCES += codecs/qiconvcodec.cpp
|
||||
qtConfig(gnu-libiconv): \
|
||||
QMAKE_USE_PRIVATE += iconv
|
||||
QMAKE_USE_PRIVATE += iconv
|
||||
}
|
||||
|
||||
win32 {
|
||||
|
|
|
|||
|
|
@ -276,13 +276,11 @@
|
|||
|
||||
TSCII, formally the Tamil Standard Code Information Interchange
|
||||
specification, is a commonly used charset for Tamils. The
|
||||
official page for the standard is at
|
||||
\l{http://www.tamil.net/tscii/}
|
||||
official page for the standard is \l{Information Technology in Tamil}
|
||||
|
||||
This codec uses the mapping table found at
|
||||
\l{http://www.geocities.com/Athens/5180/tsciiset.html}.
|
||||
Tamil uses composed Unicode which might cause some
|
||||
problems if you are using Unicode fonts instead of TSCII fonts.
|
||||
A Tamil codepage layout can be found on \l {Tamil Script Code}.
|
||||
|
||||
Most of the code was written by Hans Petter Bieker and is
|
||||
included in Qt with the author's permission and the grateful
|
||||
|
|
|
|||
|
|
@ -183,7 +183,7 @@ QString QWindowsLocalCodec::convertToUnicodeCharByChar(const char *chars, int le
|
|||
#else
|
||||
QString s;
|
||||
size_t size = mbstowcs(NULL, mb, length);
|
||||
if (size < 0) {
|
||||
if (size == size_t(-1)) {
|
||||
Q_ASSERT("Error in CE TextCodec");
|
||||
return QString();
|
||||
}
|
||||
|
|
|
|||
|
|
@ -24,9 +24,9 @@
|
|||
"doubleconversion": {
|
||||
"label": "DoubleConversion",
|
||||
"test": {
|
||||
"include": "double-conversion/double-conversion.h",
|
||||
"main": "(void) double_conversion::StringToDoubleConverter::NO_FLAGS;"
|
||||
},
|
||||
"headers": "double-conversion/double-conversion.h",
|
||||
"sources": [
|
||||
"-ldouble-conversion"
|
||||
]
|
||||
|
|
@ -35,7 +35,6 @@
|
|||
"label": "GLib",
|
||||
"test": {
|
||||
"head": "typedef struct _GMainContext GMainContext;",
|
||||
"include": "glib.h",
|
||||
"main": [
|
||||
"g_thread_init(NULL);",
|
||||
"(void) g_main_context_default();",
|
||||
|
|
@ -43,22 +42,60 @@
|
|||
"g_source_add_poll(NULL, NULL);"
|
||||
]
|
||||
},
|
||||
"headers": "glib.h",
|
||||
"sources": [
|
||||
{ "type": "pkgConfig", "args": "glib-2.0 gthread-2.0" }
|
||||
]
|
||||
},
|
||||
"posix_iconv": {
|
||||
"label": "POSIX iconv",
|
||||
"export": "iconv",
|
||||
"test": {
|
||||
"main": [
|
||||
"iconv_t x = iconv_open(\"\", \"\");",
|
||||
"char *inp, *outp;",
|
||||
"size_t inbytes, outbytes;",
|
||||
"iconv(x, &inp, &inbytes, &outp, &outbytes);",
|
||||
"iconv_close(x);"
|
||||
]
|
||||
},
|
||||
"headers": "iconv.h",
|
||||
"sources": [
|
||||
{ "libs": "-liconv", "condition": "config.openbsd || config.haiku" },
|
||||
{ "libs": "", "condition": "!(config.openbsd || config.haiku)" }
|
||||
]
|
||||
},
|
||||
"gnu_iconv": {
|
||||
"label": "GNU libiconv",
|
||||
"export": "iconv",
|
||||
"test": "gnu-libiconv",
|
||||
"test": {
|
||||
"main": [
|
||||
"iconv_t x = iconv_open(\"\", \"\");",
|
||||
"const char *inp;",
|
||||
"char *outp;",
|
||||
"size_t inbytes, outbytes;",
|
||||
"iconv(x, &inp, &inbytes, &outp, &outbytes);",
|
||||
"iconv_close(x);"
|
||||
]
|
||||
},
|
||||
"headers": "iconv.h",
|
||||
"sources": [
|
||||
"-liconv"
|
||||
]
|
||||
},
|
||||
"sun_iconv": {
|
||||
"label": "SUN libiconv",
|
||||
"export": "iconv",
|
||||
"test": {
|
||||
"inherit": "gnu_iconv"
|
||||
},
|
||||
"sources": [
|
||||
""
|
||||
]
|
||||
},
|
||||
"icu": {
|
||||
"label": "ICU",
|
||||
"test": {
|
||||
"include": [ "unicode/utypes.h", "unicode/ucol.h", "unicode/ustring.h" ],
|
||||
"main": [
|
||||
"UErrorCode status = U_ZERO_ERROR;",
|
||||
"UCollator *collator = ucol_open(\"ru_RU\", &status);",
|
||||
|
|
@ -66,6 +103,7 @@
|
|||
" ucol_close(collator);"
|
||||
]
|
||||
},
|
||||
"headers": [ "unicode/utypes.h", "unicode/ucol.h", "unicode/ustring.h" ],
|
||||
"sources": [
|
||||
{
|
||||
"builds": {
|
||||
|
|
@ -84,9 +122,9 @@
|
|||
"journald": {
|
||||
"label": "journald",
|
||||
"test": {
|
||||
"include": [ "systemd/sd-journal.h", "syslog.h" ],
|
||||
"main": "sd_journal_send(\"PRIORITY=%i\", LOG_INFO, NULL);"
|
||||
},
|
||||
"headers": [ "systemd/sd-journal.h", "syslog.h" ],
|
||||
"sources": [
|
||||
{ "type": "pkgConfig", "args": "libsystemd" },
|
||||
{ "type": "pkgConfig", "args": "libsystemd-journal" }
|
||||
|
|
@ -95,7 +133,6 @@
|
|||
"libatomic": {
|
||||
"label": "64 bit atomics",
|
||||
"test": {
|
||||
"include": [ "atomic", "cstdint" ],
|
||||
"tail": [
|
||||
"void test(volatile std::atomic<std::int64_t> &a)",
|
||||
"{",
|
||||
|
|
@ -114,6 +151,7 @@
|
|||
],
|
||||
"qmake": "CONFIG += c++11"
|
||||
},
|
||||
"headers": [ "atomic", "cstdint" ],
|
||||
"sources": [
|
||||
"",
|
||||
"-latomic"
|
||||
|
|
@ -122,13 +160,13 @@
|
|||
"libdl": {
|
||||
"label": "dlopen()",
|
||||
"test": {
|
||||
"include": "dlfcn.h",
|
||||
"main": [
|
||||
"dlclose(dlopen(0, 0));",
|
||||
"dlsym(RTLD_DEFAULT, 0);",
|
||||
"dlerror();"
|
||||
]
|
||||
},
|
||||
"headers": "dlfcn.h",
|
||||
"sources": [
|
||||
"",
|
||||
"-ldl"
|
||||
|
|
@ -137,9 +175,9 @@
|
|||
"librt": {
|
||||
"label": "clock_gettime()",
|
||||
"test": {
|
||||
"include": [ "unistd.h", "time.h" ],
|
||||
"main": "timespec ts; clock_gettime(CLOCK_REALTIME, &ts);"
|
||||
},
|
||||
"headers": [ "unistd.h", "time.h" ],
|
||||
"sources": [
|
||||
"",
|
||||
"-lrt"
|
||||
|
|
@ -148,9 +186,9 @@
|
|||
"lttng-ust": {
|
||||
"label": "lttng-ust",
|
||||
"test": {
|
||||
"include": "lttng/ust-events.h",
|
||||
"main": "lttng_session_destroy(nullptr);"
|
||||
},
|
||||
"headers": "lttng/ust-events.h",
|
||||
"sources": [
|
||||
{ "type": "pkgConfig", "args": "lttng-ust" },
|
||||
"-llttng-ust"
|
||||
|
|
@ -161,13 +199,13 @@
|
|||
"label": "PCRE2",
|
||||
"test": {
|
||||
"head": "#define PCRE2_CODE_UNIT_WIDTH 16",
|
||||
"include": "pcre2.h",
|
||||
"tail": [
|
||||
"#if (PCRE2_MAJOR < 10) || ((PCRE2_MAJOR == 10) && (PCRE2_MINOR < 20))",
|
||||
"# error This PCRE version is not supported",
|
||||
"#endif"
|
||||
]
|
||||
},
|
||||
"headers": "pcre2.h",
|
||||
"sources": [
|
||||
{ "type": "pkgConfig", "args": "libpcre2-16" },
|
||||
"-lpcre2-16"
|
||||
|
|
@ -176,12 +214,12 @@
|
|||
"pps": {
|
||||
"label": "PPS",
|
||||
"test": {
|
||||
"include": "sys/pps.h",
|
||||
"main": [
|
||||
"pps_decoder_t decoder;",
|
||||
"pps_decoder_initialize(&decoder, NULL);"
|
||||
]
|
||||
},
|
||||
"headers": "sys/pps.h",
|
||||
"sources": [
|
||||
"-lpps"
|
||||
]
|
||||
|
|
@ -189,10 +227,10 @@
|
|||
"slog2": {
|
||||
"label": "slog2",
|
||||
"test": {
|
||||
"include": "sys/slog2.h",
|
||||
"main": "slog2_set_default_buffer((slog2_buffer_t)-1);"
|
||||
},
|
||||
"export": "",
|
||||
"headers": "sys/slog2.h",
|
||||
"sources": [
|
||||
"-lslog2"
|
||||
]
|
||||
|
|
@ -277,7 +315,10 @@
|
|||
"cxx11_random": {
|
||||
"label": "C++11 <random>",
|
||||
"type": "compile",
|
||||
"test": "unix/cxx11_random"
|
||||
"test": {
|
||||
"include": "random",
|
||||
"main": "std::mt19937 mt(0);"
|
||||
}
|
||||
},
|
||||
"eventfd": {
|
||||
"label": "eventfd",
|
||||
|
|
@ -295,32 +336,43 @@
|
|||
"futimens": {
|
||||
"label": "futimens()",
|
||||
"type": "compile",
|
||||
"test": "unix/futimens"
|
||||
"test": {
|
||||
"include": "sys/stat.h",
|
||||
"main": "futimens(-1, 0);",
|
||||
"qmake": [
|
||||
"# Block futimens() on Apple platforms unless it's available on ALL",
|
||||
"# deployment targets. This simplifies the logic at the call site",
|
||||
"# dramatically, as it isn't strictly needed compared to futimes().",
|
||||
"darwin: QMAKE_CXXFLAGS += -Werror=unguarded-availability"
|
||||
]
|
||||
}
|
||||
},
|
||||
"futimes": {
|
||||
"label": "futimes()",
|
||||
"type": "compile",
|
||||
"test": "unix/futimes"
|
||||
"test": {
|
||||
"include": "sys/time.h",
|
||||
"main": "futimes(-1, 0);"
|
||||
}
|
||||
},
|
||||
"getauxval": {
|
||||
"label": "getauxval()",
|
||||
"type": "compile",
|
||||
"test": "unix/getauxval"
|
||||
"test": {
|
||||
"include": "sys/auxv.h",
|
||||
"main": "(void) getauxval(AT_NULL);"
|
||||
}
|
||||
},
|
||||
"getentropy": {
|
||||
"label": "getentropy()",
|
||||
"type": "compile",
|
||||
"test": "unix/getentropy"
|
||||
},
|
||||
"posix-iconv": {
|
||||
"label": "POSIX iconv",
|
||||
"type": "compile",
|
||||
"test": "iconv"
|
||||
},
|
||||
"sun-iconv": {
|
||||
"label": "SUN libiconv",
|
||||
"type": "compile",
|
||||
"test": "sun-libiconv"
|
||||
"test": {
|
||||
"include": "unistd.h",
|
||||
"main": [
|
||||
"char buf[32];",
|
||||
"(void) getentropy(buf, sizeof(buf));"
|
||||
]
|
||||
}
|
||||
},
|
||||
"inotify": {
|
||||
"label": "inotify",
|
||||
|
|
@ -443,7 +495,38 @@
|
|||
"xlocalescanprint": {
|
||||
"label": "xlocale.h (or equivalents)",
|
||||
"type": "compile",
|
||||
"test": "xlocalescanprint"
|
||||
"test": {
|
||||
"files": {
|
||||
"qglobal.h": [
|
||||
"#ifndef QGLOBAL_H",
|
||||
"#define QGLOBAL_H",
|
||||
"#endif"
|
||||
]
|
||||
},
|
||||
"tail": [
|
||||
"#define QT_BEGIN_NAMESPACE",
|
||||
"#define QT_END_NAMESPACE",
|
||||
"",
|
||||
"#ifdef _MSVC_VER",
|
||||
"#define Q_CC_MSVC _MSVC_VER",
|
||||
"#endif",
|
||||
"",
|
||||
"#define QT_NO_DOUBLECONVERSION",
|
||||
"",
|
||||
"#include QDSP_P_H"
|
||||
],
|
||||
"main": [
|
||||
"#ifdef _MSVC_VER",
|
||||
"_locale_t invalidLocale = NULL;",
|
||||
"#else",
|
||||
"locale_t invalidLocale = NULL;",
|
||||
"#endif",
|
||||
"double a = 3.4;",
|
||||
"qDoubleSnprintf(argv[0], 1, invalidLocale, \"invalid format\", a);",
|
||||
"qDoubleSscanf(argv[0], invalidLocale, \"invalid format\", &a, &argc);"
|
||||
],
|
||||
"qmake": "DEFINES += QDSP_P_H=$$shell_quote(\\\"@PWD@/tools/qdoublescanprint_p.h\\\")"
|
||||
}
|
||||
}
|
||||
},
|
||||
|
||||
|
|
@ -521,14 +604,14 @@
|
|||
"label": "POSIX iconv",
|
||||
"enable": "input.iconv == 'posix'",
|
||||
"disable": "input.iconv == 'sun' || input.iconv == 'gnu' || input.iconv == 'no'",
|
||||
"condition": "!config.win32 && !config.qnx && !config.android && !config.darwin && tests.posix-iconv",
|
||||
"condition": "!config.win32 && !config.qnx && !config.android && !config.darwin && libs.posix_iconv",
|
||||
"output": [ "privateFeature" ]
|
||||
},
|
||||
"sun-libiconv": {
|
||||
"label": "SUN iconv",
|
||||
"enable": "input.iconv == 'sun'",
|
||||
"disable": "input.iconv == 'posix' || input.iconv == 'gnu' || input.iconv == 'no'",
|
||||
"condition": "!config.win32 && !config.qnx && !config.android && !config.darwin && !features.posix-libiconv && tests.sun-iconv"
|
||||
"condition": "!config.win32 && !config.qnx && !config.android && !config.darwin && !features.posix-libiconv && libs.sun_iconv"
|
||||
},
|
||||
"gnu-libiconv": {
|
||||
"label": "GNU iconv",
|
||||
|
|
|
|||
|
|
@ -3,9 +3,9 @@
|
|||
** Copyright (C) 2018 The Qt Company Ltd.
|
||||
** Contact: https://www.qt.io/licensing/
|
||||
**
|
||||
** This file is part of the QtCore module of the Qt Toolkit.
|
||||
** This file is part of the documentation of the Qt Toolkit.
|
||||
**
|
||||
** $QT_BEGIN_LICENSE:LGPL$
|
||||
** $QT_BEGIN_LICENSE:BSD$
|
||||
** Commercial License Usage
|
||||
** Licensees holding valid commercial Qt licenses may use this file in
|
||||
** accordance with the commercial license agreement provided with the
|
||||
|
|
@ -14,24 +14,35 @@
|
|||
** and conditions see https://www.qt.io/terms-conditions. For further
|
||||
** information use the contact form at https://www.qt.io/contact-us.
|
||||
**
|
||||
** GNU Lesser General Public License Usage
|
||||
** Alternatively, this file may be used under the terms of the GNU Lesser
|
||||
** General Public License version 3 as published by the Free Software
|
||||
** Foundation and appearing in the file LICENSE.LGPL3 included in the
|
||||
** packaging of this file. Please review the following information to
|
||||
** ensure the GNU Lesser General Public License version 3 requirements
|
||||
** will be met: https://www.gnu.org/licenses/lgpl-3.0.html.
|
||||
** BSD License Usage
|
||||
** Alternatively, you may use this file under the terms of the BSD license
|
||||
** as follows:
|
||||
**
|
||||
** GNU General Public License Usage
|
||||
** Alternatively, this file may be used under the terms of the GNU
|
||||
** General Public License version 2.0 or (at your option) the GNU General
|
||||
** Public license version 3 or any later version approved by the KDE Free
|
||||
** Qt Foundation. The licenses are as published by the Free Software
|
||||
** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3
|
||||
** included in the packaging of this file. Please review the following
|
||||
** information to ensure the GNU General Public License requirements will
|
||||
** be met: https://www.gnu.org/licenses/gpl-2.0.html and
|
||||
** https://www.gnu.org/licenses/gpl-3.0.html.
|
||||
** "Redistribution and use in source and binary forms, with or without
|
||||
** modification, are permitted provided that the following conditions are
|
||||
** met:
|
||||
** * Redistributions of source code must retain the above copyright
|
||||
** notice, this list of conditions and the following disclaimer.
|
||||
** * Redistributions in binary form must reproduce the above copyright
|
||||
** notice, this list of conditions and the following disclaimer in
|
||||
** the documentation and/or other materials provided with the
|
||||
** distribution.
|
||||
** * Neither the name of The Qt Company Ltd nor the names of its
|
||||
** contributors may be used to endorse or promote products derived
|
||||
** from this software without specific prior written permission.
|
||||
**
|
||||
**
|
||||
** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
||||
** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
|
||||
** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
|
||||
** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
|
||||
** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
|
||||
** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
|
||||
** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
|
||||
** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
|
||||
** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
||||
** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
||||
** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
|
||||
**
|
||||
** $QT_END_LICENSE$
|
||||
**
|
||||
|
|
|
|||
|
|
@ -3,9 +3,9 @@
|
|||
** Copyright (C) 2018 The Qt Company Ltd.
|
||||
** Contact: https://www.qt.io/licensing/
|
||||
**
|
||||
** This file is part of the QtCore module of the Qt Toolkit.
|
||||
** This file is part of the documentation of the Qt Toolkit.
|
||||
**
|
||||
** $QT_BEGIN_LICENSE:LGPL$
|
||||
** $QT_BEGIN_LICENSE:BSD$
|
||||
** Commercial License Usage
|
||||
** Licensees holding valid commercial Qt licenses may use this file in
|
||||
** accordance with the commercial license agreement provided with the
|
||||
|
|
@ -14,24 +14,35 @@
|
|||
** and conditions see https://www.qt.io/terms-conditions. For further
|
||||
** information use the contact form at https://www.qt.io/contact-us.
|
||||
**
|
||||
** GNU Lesser General Public License Usage
|
||||
** Alternatively, this file may be used under the terms of the GNU Lesser
|
||||
** General Public License version 3 as published by the Free Software
|
||||
** Foundation and appearing in the file LICENSE.LGPL3 included in the
|
||||
** packaging of this file. Please review the following information to
|
||||
** ensure the GNU Lesser General Public License version 3 requirements
|
||||
** will be met: https://www.gnu.org/licenses/lgpl-3.0.html.
|
||||
** BSD License Usage
|
||||
** Alternatively, you may use this file under the terms of the BSD license
|
||||
** as follows:
|
||||
**
|
||||
** GNU General Public License Usage
|
||||
** Alternatively, this file may be used under the terms of the GNU
|
||||
** General Public License version 2.0 or (at your option) the GNU General
|
||||
** Public license version 3 or any later version approved by the KDE Free
|
||||
** Qt Foundation. The licenses are as published by the Free Software
|
||||
** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3
|
||||
** included in the packaging of this file. Please review the following
|
||||
** information to ensure the GNU General Public License requirements will
|
||||
** be met: https://www.gnu.org/licenses/gpl-2.0.html and
|
||||
** https://www.gnu.org/licenses/gpl-3.0.html.
|
||||
** "Redistribution and use in source and binary forms, with or without
|
||||
** modification, are permitted provided that the following conditions are
|
||||
** met:
|
||||
** * Redistributions of source code must retain the above copyright
|
||||
** notice, this list of conditions and the following disclaimer.
|
||||
** * Redistributions in binary form must reproduce the above copyright
|
||||
** notice, this list of conditions and the following disclaimer in
|
||||
** the documentation and/or other materials provided with the
|
||||
** distribution.
|
||||
** * Neither the name of The Qt Company Ltd nor the names of its
|
||||
** contributors may be used to endorse or promote products derived
|
||||
** from this software without specific prior written permission.
|
||||
**
|
||||
**
|
||||
** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
||||
** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
|
||||
** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
|
||||
** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
|
||||
** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
|
||||
** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
|
||||
** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
|
||||
** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
|
||||
** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
||||
** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
||||
** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
|
||||
**
|
||||
** $QT_END_LICENSE$
|
||||
**
|
||||
|
|
|
|||
|
|
@ -3,9 +3,9 @@
|
|||
** Copyright (C) 2018 The Qt Company Ltd.
|
||||
** Contact: https://www.qt.io/licensing/
|
||||
**
|
||||
** This file is part of the QtCore module of the Qt Toolkit.
|
||||
** This file is part of the documentation of the Qt Toolkit.
|
||||
**
|
||||
** $QT_BEGIN_LICENSE:LGPL$
|
||||
** $QT_BEGIN_LICENSE:BSD$
|
||||
** Commercial License Usage
|
||||
** Licensees holding valid commercial Qt licenses may use this file in
|
||||
** accordance with the commercial license agreement provided with the
|
||||
|
|
@ -14,24 +14,35 @@
|
|||
** and conditions see https://www.qt.io/terms-conditions. For further
|
||||
** information use the contact form at https://www.qt.io/contact-us.
|
||||
**
|
||||
** GNU Lesser General Public License Usage
|
||||
** Alternatively, this file may be used under the terms of the GNU Lesser
|
||||
** General Public License version 3 as published by the Free Software
|
||||
** Foundation and appearing in the file LICENSE.LGPL3 included in the
|
||||
** packaging of this file. Please review the following information to
|
||||
** ensure the GNU Lesser General Public License version 3 requirements
|
||||
** will be met: https://www.gnu.org/licenses/lgpl-3.0.html.
|
||||
** BSD License Usage
|
||||
** Alternatively, you may use this file under the terms of the BSD license
|
||||
** as follows:
|
||||
**
|
||||
** GNU General Public License Usage
|
||||
** Alternatively, this file may be used under the terms of the GNU
|
||||
** General Public License version 2.0 or (at your option) the GNU General
|
||||
** Public license version 3 or any later version approved by the KDE Free
|
||||
** Qt Foundation. The licenses are as published by the Free Software
|
||||
** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3
|
||||
** included in the packaging of this file. Please review the following
|
||||
** information to ensure the GNU General Public License requirements will
|
||||
** be met: https://www.gnu.org/licenses/gpl-2.0.html and
|
||||
** https://www.gnu.org/licenses/gpl-3.0.html.
|
||||
** "Redistribution and use in source and binary forms, with or without
|
||||
** modification, are permitted provided that the following conditions are
|
||||
** met:
|
||||
** * Redistributions of source code must retain the above copyright
|
||||
** notice, this list of conditions and the following disclaimer.
|
||||
** * Redistributions in binary form must reproduce the above copyright
|
||||
** notice, this list of conditions and the following disclaimer in
|
||||
** the documentation and/or other materials provided with the
|
||||
** distribution.
|
||||
** * Neither the name of The Qt Company Ltd nor the names of its
|
||||
** contributors may be used to endorse or promote products derived
|
||||
** from this software without specific prior written permission.
|
||||
**
|
||||
**
|
||||
** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
||||
** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
|
||||
** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
|
||||
** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
|
||||
** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
|
||||
** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
|
||||
** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
|
||||
** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
|
||||
** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
||||
** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
||||
** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
|
||||
**
|
||||
** $QT_END_LICENSE$
|
||||
**
|
||||
|
|
|
|||
|
|
@ -3,9 +3,9 @@
|
|||
** Copyright (C) 2018 The Qt Company Ltd.
|
||||
** Contact: https://www.qt.io/licensing/
|
||||
**
|
||||
** This file is part of the QtCore module of the Qt Toolkit.
|
||||
** This file is part of the documentation of the Qt Toolkit.
|
||||
**
|
||||
** $QT_BEGIN_LICENSE:LGPL$
|
||||
** $QT_BEGIN_LICENSE:BSD$
|
||||
** Commercial License Usage
|
||||
** Licensees holding valid commercial Qt licenses may use this file in
|
||||
** accordance with the commercial license agreement provided with the
|
||||
|
|
@ -14,24 +14,35 @@
|
|||
** and conditions see https://www.qt.io/terms-conditions. For further
|
||||
** information use the contact form at https://www.qt.io/contact-us.
|
||||
**
|
||||
** GNU Lesser General Public License Usage
|
||||
** Alternatively, this file may be used under the terms of the GNU Lesser
|
||||
** General Public License version 3 as published by the Free Software
|
||||
** Foundation and appearing in the file LICENSE.LGPL3 included in the
|
||||
** packaging of this file. Please review the following information to
|
||||
** ensure the GNU Lesser General Public License version 3 requirements
|
||||
** will be met: https://www.gnu.org/licenses/lgpl-3.0.html.
|
||||
** BSD License Usage
|
||||
** Alternatively, you may use this file under the terms of the BSD license
|
||||
** as follows:
|
||||
**
|
||||
** GNU General Public License Usage
|
||||
** Alternatively, this file may be used under the terms of the GNU
|
||||
** General Public License version 2.0 or (at your option) the GNU General
|
||||
** Public license version 3 or any later version approved by the KDE Free
|
||||
** Qt Foundation. The licenses are as published by the Free Software
|
||||
** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3
|
||||
** included in the packaging of this file. Please review the following
|
||||
** information to ensure the GNU General Public License requirements will
|
||||
** be met: https://www.gnu.org/licenses/gpl-2.0.html and
|
||||
** https://www.gnu.org/licenses/gpl-3.0.html.
|
||||
** "Redistribution and use in source and binary forms, with or without
|
||||
** modification, are permitted provided that the following conditions are
|
||||
** met:
|
||||
** * Redistributions of source code must retain the above copyright
|
||||
** notice, this list of conditions and the following disclaimer.
|
||||
** * Redistributions in binary form must reproduce the above copyright
|
||||
** notice, this list of conditions and the following disclaimer in
|
||||
** the documentation and/or other materials provided with the
|
||||
** distribution.
|
||||
** * Neither the name of The Qt Company Ltd nor the names of its
|
||||
** contributors may be used to endorse or promote products derived
|
||||
** from this software without specific prior written permission.
|
||||
**
|
||||
**
|
||||
** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
||||
** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
|
||||
** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
|
||||
** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
|
||||
** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
|
||||
** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
|
||||
** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
|
||||
** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
|
||||
** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
||||
** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
||||
** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
|
||||
**
|
||||
** $QT_END_LICENSE$
|
||||
**
|
||||
|
|
|
|||
|
|
@ -279,21 +279,23 @@ const TInputType &myMin(const TInputType &value1, const TInputType &value2)
|
|||
void myMessageOutput(QtMsgType type, const QMessageLogContext &context, const QString &msg)
|
||||
{
|
||||
QByteArray localMsg = msg.toLocal8Bit();
|
||||
const char *file = context.file ? context.file : "";
|
||||
const char *function = context.function ? context.function : "";
|
||||
switch (type) {
|
||||
case QtDebugMsg:
|
||||
fprintf(stderr, "Debug: %s (%s:%u, %s)\n", localMsg.constData(), context.file, context.line, context.function);
|
||||
fprintf(stderr, "Debug: %s (%s:%u, %s)\n", localMsg.constData(), file, context.line, function);
|
||||
break;
|
||||
case QtInfoMsg:
|
||||
fprintf(stderr, "Info: %s (%s:%u, %s)\n", localMsg.constData(), context.file, context.line, context.function);
|
||||
fprintf(stderr, "Info: %s (%s:%u, %s)\n", localMsg.constData(), file, context.line, function);
|
||||
break;
|
||||
case QtWarningMsg:
|
||||
fprintf(stderr, "Warning: %s (%s:%u, %s)\n", localMsg.constData(), context.file, context.line, context.function);
|
||||
fprintf(stderr, "Warning: %s (%s:%u, %s)\n", localMsg.constData(), file, context.line, function);
|
||||
break;
|
||||
case QtCriticalMsg:
|
||||
fprintf(stderr, "Critical: %s (%s:%u, %s)\n", localMsg.constData(), context.file, context.line, context.function);
|
||||
fprintf(stderr, "Critical: %s (%s:%u, %s)\n", localMsg.constData(), file, context.line, function);
|
||||
break;
|
||||
case QtFatalMsg:
|
||||
fprintf(stderr, "Fatal: %s (%s:%u, %s)\n", localMsg.constData(), context.file, context.line, context.function);
|
||||
fprintf(stderr, "Fatal: %s (%s:%u, %s)\n", localMsg.constData(), file, context.line, function);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -3,9 +3,9 @@
|
|||
** Copyright (C) 2018 The Qt Company Ltd.
|
||||
** Contact: https://www.qt.io/licensing/
|
||||
**
|
||||
** This file is part of the QtCore module of the Qt Toolkit.
|
||||
** This file is part of the documentation of the Qt Toolkit.
|
||||
**
|
||||
** $QT_BEGIN_LICENSE:LGPL$
|
||||
** $QT_BEGIN_LICENSE:BSD$
|
||||
** Commercial License Usage
|
||||
** Licensees holding valid commercial Qt licenses may use this file in
|
||||
** accordance with the commercial license agreement provided with the
|
||||
|
|
@ -14,24 +14,35 @@
|
|||
** and conditions see https://www.qt.io/terms-conditions. For further
|
||||
** information use the contact form at https://www.qt.io/contact-us.
|
||||
**
|
||||
** GNU Lesser General Public License Usage
|
||||
** Alternatively, this file may be used under the terms of the GNU Lesser
|
||||
** General Public License version 3 as published by the Free Software
|
||||
** Foundation and appearing in the file LICENSE.LGPL3 included in the
|
||||
** packaging of this file. Please review the following information to
|
||||
** ensure the GNU Lesser General Public License version 3 requirements
|
||||
** will be met: https://www.gnu.org/licenses/lgpl-3.0.html.
|
||||
** BSD License Usage
|
||||
** Alternatively, you may use this file under the terms of the BSD license
|
||||
** as follows:
|
||||
**
|
||||
** GNU General Public License Usage
|
||||
** Alternatively, this file may be used under the terms of the GNU
|
||||
** General Public License version 2.0 or (at your option) the GNU General
|
||||
** Public license version 3 or any later version approved by the KDE Free
|
||||
** Qt Foundation. The licenses are as published by the Free Software
|
||||
** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3
|
||||
** included in the packaging of this file. Please review the following
|
||||
** information to ensure the GNU General Public License requirements will
|
||||
** be met: https://www.gnu.org/licenses/gpl-2.0.html and
|
||||
** https://www.gnu.org/licenses/gpl-3.0.html.
|
||||
** "Redistribution and use in source and binary forms, with or without
|
||||
** modification, are permitted provided that the following conditions are
|
||||
** met:
|
||||
** * Redistributions of source code must retain the above copyright
|
||||
** notice, this list of conditions and the following disclaimer.
|
||||
** * Redistributions in binary form must reproduce the above copyright
|
||||
** notice, this list of conditions and the following disclaimer in
|
||||
** the documentation and/or other materials provided with the
|
||||
** distribution.
|
||||
** * Neither the name of The Qt Company Ltd nor the names of its
|
||||
** contributors may be used to endorse or promote products derived
|
||||
** from this software without specific prior written permission.
|
||||
**
|
||||
**
|
||||
** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
||||
** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
|
||||
** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
|
||||
** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
|
||||
** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
|
||||
** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
|
||||
** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
|
||||
** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
|
||||
** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
||||
** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
||||
** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
|
||||
**
|
||||
** $QT_END_LICENSE$
|
||||
**
|
||||
|
|
|
|||
|
|
@ -3,9 +3,9 @@
|
|||
** Copyright (C) 2018 The Qt Company Ltd.
|
||||
** Contact: https://www.qt.io/licensing/
|
||||
**
|
||||
** This file is part of the QtCore module of the Qt Toolkit.
|
||||
** This file is part of the documentation of the Qt Toolkit.
|
||||
**
|
||||
** $QT_BEGIN_LICENSE:LGPL$
|
||||
** $QT_BEGIN_LICENSE:BSD$
|
||||
** Commercial License Usage
|
||||
** Licensees holding valid commercial Qt licenses may use this file in
|
||||
** accordance with the commercial license agreement provided with the
|
||||
|
|
@ -14,24 +14,35 @@
|
|||
** and conditions see https://www.qt.io/terms-conditions. For further
|
||||
** information use the contact form at https://www.qt.io/contact-us.
|
||||
**
|
||||
** GNU Lesser General Public License Usage
|
||||
** Alternatively, this file may be used under the terms of the GNU Lesser
|
||||
** General Public License version 3 as published by the Free Software
|
||||
** Foundation and appearing in the file LICENSE.LGPL3 included in the
|
||||
** packaging of this file. Please review the following information to
|
||||
** ensure the GNU Lesser General Public License version 3 requirements
|
||||
** will be met: https://www.gnu.org/licenses/lgpl-3.0.html.
|
||||
** BSD License Usage
|
||||
** Alternatively, you may use this file under the terms of the BSD license
|
||||
** as follows:
|
||||
**
|
||||
** GNU General Public License Usage
|
||||
** Alternatively, this file may be used under the terms of the GNU
|
||||
** General Public License version 2.0 or (at your option) the GNU General
|
||||
** Public license version 3 or any later version approved by the KDE Free
|
||||
** Qt Foundation. The licenses are as published by the Free Software
|
||||
** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3
|
||||
** included in the packaging of this file. Please review the following
|
||||
** information to ensure the GNU General Public License requirements will
|
||||
** be met: https://www.gnu.org/licenses/gpl-2.0.html and
|
||||
** https://www.gnu.org/licenses/gpl-3.0.html.
|
||||
** "Redistribution and use in source and binary forms, with or without
|
||||
** modification, are permitted provided that the following conditions are
|
||||
** met:
|
||||
** * Redistributions of source code must retain the above copyright
|
||||
** notice, this list of conditions and the following disclaimer.
|
||||
** * Redistributions in binary form must reproduce the above copyright
|
||||
** notice, this list of conditions and the following disclaimer in
|
||||
** the documentation and/or other materials provided with the
|
||||
** distribution.
|
||||
** * Neither the name of The Qt Company Ltd nor the names of its
|
||||
** contributors may be used to endorse or promote products derived
|
||||
** from this software without specific prior written permission.
|
||||
**
|
||||
**
|
||||
** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
||||
** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
|
||||
** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
|
||||
** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
|
||||
** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
|
||||
** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
|
||||
** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
|
||||
** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
|
||||
** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
||||
** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
||||
** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
|
||||
**
|
||||
** $QT_END_LICENSE$
|
||||
**
|
||||
|
|
|
|||
|
|
@ -3,9 +3,9 @@
|
|||
** Copyright (C) 2018 The Qt Company Ltd.
|
||||
** Contact: https://www.qt.io/licensing/
|
||||
**
|
||||
** This file is part of the QtCore module of the Qt Toolkit.
|
||||
** This file is part of the documentation of the Qt Toolkit.
|
||||
**
|
||||
** $QT_BEGIN_LICENSE:LGPL$
|
||||
** $QT_BEGIN_LICENSE:BSD$
|
||||
** Commercial License Usage
|
||||
** Licensees holding valid commercial Qt licenses may use this file in
|
||||
** accordance with the commercial license agreement provided with the
|
||||
|
|
@ -14,24 +14,35 @@
|
|||
** and conditions see https://www.qt.io/terms-conditions. For further
|
||||
** information use the contact form at https://www.qt.io/contact-us.
|
||||
**
|
||||
** GNU Lesser General Public License Usage
|
||||
** Alternatively, this file may be used under the terms of the GNU Lesser
|
||||
** General Public License version 3 as published by the Free Software
|
||||
** Foundation and appearing in the file LICENSE.LGPL3 included in the
|
||||
** packaging of this file. Please review the following information to
|
||||
** ensure the GNU Lesser General Public License version 3 requirements
|
||||
** will be met: https://www.gnu.org/licenses/lgpl-3.0.html.
|
||||
** BSD License Usage
|
||||
** Alternatively, you may use this file under the terms of the BSD license
|
||||
** as follows:
|
||||
**
|
||||
** GNU General Public License Usage
|
||||
** Alternatively, this file may be used under the terms of the GNU
|
||||
** General Public License version 2.0 or (at your option) the GNU General
|
||||
** Public license version 3 or any later version approved by the KDE Free
|
||||
** Qt Foundation. The licenses are as published by the Free Software
|
||||
** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3
|
||||
** included in the packaging of this file. Please review the following
|
||||
** information to ensure the GNU General Public License requirements will
|
||||
** be met: https://www.gnu.org/licenses/gpl-2.0.html and
|
||||
** https://www.gnu.org/licenses/gpl-3.0.html.
|
||||
** "Redistribution and use in source and binary forms, with or without
|
||||
** modification, are permitted provided that the following conditions are
|
||||
** met:
|
||||
** * Redistributions of source code must retain the above copyright
|
||||
** notice, this list of conditions and the following disclaimer.
|
||||
** * Redistributions in binary form must reproduce the above copyright
|
||||
** notice, this list of conditions and the following disclaimer in
|
||||
** the documentation and/or other materials provided with the
|
||||
** distribution.
|
||||
** * Neither the name of The Qt Company Ltd nor the names of its
|
||||
** contributors may be used to endorse or promote products derived
|
||||
** from this software without specific prior written permission.
|
||||
**
|
||||
**
|
||||
** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
||||
** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
|
||||
** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
|
||||
** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
|
||||
** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
|
||||
** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
|
||||
** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
|
||||
** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
|
||||
** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
||||
** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
||||
** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
|
||||
**
|
||||
** $QT_END_LICENSE$
|
||||
**
|
||||
|
|
|
|||
|
|
@ -4,9 +4,9 @@
|
|||
** Copyright (C) 2018 The Qt Company Ltd.
|
||||
** Contact: https://www.qt.io/licensing/
|
||||
**
|
||||
** This file is part of the QtCore module of the Qt Toolkit.
|
||||
** This file is part of the documentation of the Qt Toolkit.
|
||||
**
|
||||
** $QT_BEGIN_LICENSE:LGPL$
|
||||
** $QT_BEGIN_LICENSE:BSD$
|
||||
** Commercial License Usage
|
||||
** Licensees holding valid commercial Qt licenses may use this file in
|
||||
** accordance with the commercial license agreement provided with the
|
||||
|
|
@ -15,24 +15,35 @@
|
|||
** and conditions see https://www.qt.io/terms-conditions. For further
|
||||
** information use the contact form at https://www.qt.io/contact-us.
|
||||
**
|
||||
** GNU Lesser General Public License Usage
|
||||
** Alternatively, this file may be used under the terms of the GNU Lesser
|
||||
** General Public License version 3 as published by the Free Software
|
||||
** Foundation and appearing in the file LICENSE.LGPL3 included in the
|
||||
** packaging of this file. Please review the following information to
|
||||
** ensure the GNU Lesser General Public License version 3 requirements
|
||||
** will be met: https://www.gnu.org/licenses/lgpl-3.0.html.
|
||||
** BSD License Usage
|
||||
** Alternatively, you may use this file under the terms of the BSD license
|
||||
** as follows:
|
||||
**
|
||||
** GNU General Public License Usage
|
||||
** Alternatively, this file may be used under the terms of the GNU
|
||||
** General Public License version 2.0 or (at your option) the GNU General
|
||||
** Public license version 3 or any later version approved by the KDE Free
|
||||
** Qt Foundation. The licenses are as published by the Free Software
|
||||
** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3
|
||||
** included in the packaging of this file. Please review the following
|
||||
** information to ensure the GNU General Public License requirements will
|
||||
** be met: https://www.gnu.org/licenses/gpl-2.0.html and
|
||||
** https://www.gnu.org/licenses/gpl-3.0.html.
|
||||
** "Redistribution and use in source and binary forms, with or without
|
||||
** modification, are permitted provided that the following conditions are
|
||||
** met:
|
||||
** * Redistributions of source code must retain the above copyright
|
||||
** notice, this list of conditions and the following disclaimer.
|
||||
** * Redistributions in binary form must reproduce the above copyright
|
||||
** notice, this list of conditions and the following disclaimer in
|
||||
** the documentation and/or other materials provided with the
|
||||
** distribution.
|
||||
** * Neither the name of The Qt Company Ltd nor the names of its
|
||||
** contributors may be used to endorse or promote products derived
|
||||
** from this software without specific prior written permission.
|
||||
**
|
||||
**
|
||||
** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
||||
** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
|
||||
** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
|
||||
** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
|
||||
** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
|
||||
** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
|
||||
** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
|
||||
** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
|
||||
** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
||||
** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
||||
** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
|
||||
**
|
||||
** $QT_END_LICENSE$
|
||||
**
|
||||
|
|
|
|||
|
|
@ -3,9 +3,9 @@
|
|||
** Copyright (C) 2018 The Qt Company Ltd.
|
||||
** Contact: https://www.qt.io/licensing/
|
||||
**
|
||||
** This file is part of the QtCore module of the Qt Toolkit.
|
||||
** This file is part of the documentation of the Qt Toolkit.
|
||||
**
|
||||
** $QT_BEGIN_LICENSE:LGPL$
|
||||
** $QT_BEGIN_LICENSE:BSD$
|
||||
** Commercial License Usage
|
||||
** Licensees holding valid commercial Qt licenses may use this file in
|
||||
** accordance with the commercial license agreement provided with the
|
||||
|
|
@ -14,24 +14,35 @@
|
|||
** and conditions see https://www.qt.io/terms-conditions. For further
|
||||
** information use the contact form at https://www.qt.io/contact-us.
|
||||
**
|
||||
** GNU Lesser General Public License Usage
|
||||
** Alternatively, this file may be used under the terms of the GNU Lesser
|
||||
** General Public License version 3 as published by the Free Software
|
||||
** Foundation and appearing in the file LICENSE.LGPL3 included in the
|
||||
** packaging of this file. Please review the following information to
|
||||
** ensure the GNU Lesser General Public License version 3 requirements
|
||||
** will be met: https://www.gnu.org/licenses/lgpl-3.0.html.
|
||||
** BSD License Usage
|
||||
** Alternatively, you may use this file under the terms of the BSD license
|
||||
** as follows:
|
||||
**
|
||||
** GNU General Public License Usage
|
||||
** Alternatively, this file may be used under the terms of the GNU
|
||||
** General Public License version 2.0 or (at your option) the GNU General
|
||||
** Public license version 3 or any later version approved by the KDE Free
|
||||
** Qt Foundation. The licenses are as published by the Free Software
|
||||
** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3
|
||||
** included in the packaging of this file. Please review the following
|
||||
** information to ensure the GNU General Public License requirements will
|
||||
** be met: https://www.gnu.org/licenses/gpl-2.0.html and
|
||||
** https://www.gnu.org/licenses/gpl-3.0.html.
|
||||
** "Redistribution and use in source and binary forms, with or without
|
||||
** modification, are permitted provided that the following conditions are
|
||||
** met:
|
||||
** * Redistributions of source code must retain the above copyright
|
||||
** notice, this list of conditions and the following disclaimer.
|
||||
** * Redistributions in binary form must reproduce the above copyright
|
||||
** notice, this list of conditions and the following disclaimer in
|
||||
** the documentation and/or other materials provided with the
|
||||
** distribution.
|
||||
** * Neither the name of The Qt Company Ltd nor the names of its
|
||||
** contributors may be used to endorse or promote products derived
|
||||
** from this software without specific prior written permission.
|
||||
**
|
||||
**
|
||||
** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
||||
** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
|
||||
** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
|
||||
** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
|
||||
** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
|
||||
** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
|
||||
** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
|
||||
** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
|
||||
** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
||||
** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
||||
** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
|
||||
**
|
||||
** $QT_END_LICENSE$
|
||||
**
|
||||
|
|
|
|||
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue