Provisioning: Update Qt OpcUA backends

- Unified Automation SDK needs to be updated to 1.6x to reflect latest
API changes
- Open62541 is now inside 3rdparty of the Qt OpcUA module. Hence, no
need to provision it.

Change-Id: I96a3764053ca684fa71f9d49e998ebe0ce45a6ae
Reviewed-by: Jannis Völker <jannis.voelker@basyskom.com>
Reviewed-by: Frank Meerkoetter <frank.meerkoetter@basyskom.com>
Reviewed-by: Rainer Keller <Rainer.Keller@qt.io>
This commit is contained in:
Maurice Kalinowski
2019-01-07 11:20:44 +01:00
parent 0b18f12f99
commit 56c43a03cd
8 changed files with 4 additions and 455 deletions

View File

@@ -1,73 +0,0 @@
#!/bin/env bash
#############################################################################
##
## Copyright (C) 2017 The Qt Company Ltd.
## Contact: http://www.qt.io/licensing/
##
## This file is part of the provisioning scripts of the Qt Toolkit.
##
## $QT_BEGIN_LICENSE:LGPL21$
## 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 http://www.qt.io/terms-conditions. For further
## information use the contact form at http://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 2.1 or version 3 as published by the Free
## Software Foundation and appearing in the file LICENSE.LGPLv21 and
## LICENSE.LGPLv3 included in the packaging of this file. Please review the
## following information to ensure the GNU Lesser General Public License
## requirements will be met: https://www.gnu.org/licenses/lgpl.html and
## http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
##
## As a special exception, The Qt Company gives you certain additional
## rights. These rights are described in The Qt Company LGPL Exception
## version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
##
## $QT_END_LICENSE$
##
#############################################################################
set +e
# shellcheck disable=SC1090
# We need to source to be able to use cmake in the shell
if uname -a |grep -q "Ubuntu"; then
source ~/.profile
else
source ~/.bashrc
fi
set -ex
# shellcheck source=../unix/SetEnvVar.sh
source "${BASH_SOURCE%/*}/../unix/SetEnvVar.sh"
TEMPDIR=$(mktemp --directory) || echo "Failed to create temporary directory"
# shellcheck disable=SC2064
trap "sudo rm -fr $TEMPDIR" EXIT
cd "$TEMPDIR"
sudo pip install --upgrade pip
sudo pip install six
git clone https://github.com/open62541/open62541.git open62541
cd open62541
git checkout 215651ab8db94e5eacdd10ec26a5a9fb96b9301f
mkdir build
cd build
TARGETPATH=/opt/open62541
cmake -DUA_ENABLE_AMALGAMATION=ON -DUA_ENABLE_METHODCALLS=ON -DCMAKE_INSTALL_PREFIX:PATH="$TARGETPATH" ..
make
sudo make install
sudo /sbin/ldconfig
SetEnvVar "CI_OPEN62541_GCC_X64_PREFIX" "$TARGETPATH"

View File

@@ -1,6 +1,6 @@
#############################################################################
##
## Copyright (C) 2018 The Qt Company Ltd.
## Copyright (C) 2019 The Qt Company Ltd.
## Contact: http://www.qt.io/licensing/
##
## This file is part of the provisioning scripts of the Qt Toolkit.
@@ -34,11 +34,11 @@
. "$PSScriptRoot\helpers.ps1"
$zip = Get-DownloadLocation "uasdkcpp.zip"
$sha1 = "e1927dbd5d8bb459b468fa70a70b1de51a4ce022"
$sha1 = "C73278B4C10DF0E3D60ABAA159ABA9185095124C"
$installLocation = "C:\Utils\uacpp"
Write-Host "UACPPSDK: Downloading Unified Automation CPP installer..."
$internalUrl = "http://ci-files01-hki.intra.qt.io/input/opcua_uacpp/uasdkcppbundle-bin-EVAL-win32-x86-vs2015-v1.5.6-361.zip"
$internalUrl = "http://ci-files01-hki.intra.qt.io/input/opcua_uacpp/uasdkcppbundle-bin-EVAL-win32-x86-vs2015-v1.6.3-406.zip"
# No public download link exists
$externalUrl = $internalUrl
@@ -49,7 +49,7 @@ Write-Host "UACPPSDK: Installing $zip..."
Extract-7Zip $zip (Get-DefaultDownloadLocation)
Remove-Item -Path $zip
$executable = (Get-DefaultDownloadLocation) + "uasdkcppbundle-bin-EVAL-win32-x86-vs2015-v1.5.6-361.exe"
$executable = (Get-DefaultDownloadLocation) + "uasdkcppbundle-bin-EVAL-win32-x86-vs2015-v1.6.3-406.exe"
$arguments = "/S /D=$installLocation"
Run-Executable $executable $arguments
Write-Host "UACPPSDK: Installer done."

View File

@@ -1,265 +0,0 @@
#############################################################################
##
## Copyright (C) 2018 The Qt Company Ltd.
## Contact: http://www.qt.io/licensing/
##
## This file is part of the provisioning scripts of the Qt Toolkit.
##
## $QT_BEGIN_LICENSE:LGPL21$
## 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 http://www.qt.io/terms-conditions. For further
## information use the contact form at http://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 2.1 or version 3 as published by the Free
## Software Foundation and appearing in the file LICENSE.LGPLv21 and
## LICENSE.LGPLv3 included in the packaging of this file. Please review the
## following information to ensure the GNU Lesser General Public License
## requirements will be met: https://www.gnu.org/licenses/lgpl.html and
## http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
##
## As a special exception, The Qt Company gives you certain additional
## rights. These rights are described in The Qt Company LGPL Exception
## version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
##
## $QT_END_LICENSE$
##
#############################################################################
Param (
[string]$targetCommand= ""
)
. "$PSScriptRoot\helpers.ps1"
## Variables for builds
$commitSHA = "215651ab8db94e5eacdd10ec26a5a9fb96b9301f"
$sha1 = "8d899f986071525be73e1ee8565b28ea10536d7d"
$extractTarget = "C:\open62541_build"
function CreateArchive
{
param(
[string]$sourceDirectory=$(throw("You must specify a directory")),
[string]$archiveName=$(throw("You must specify an archive name"))
)
if ((Get-Command "7z.exe" -ErrorAction SilentlyContinue) -eq $null) {
$zipExe = join-path (${env:ProgramFiles(x86)}, ${env:ProgramFiles}, ${env:ProgramW6432} -ne $null)[0] '7-zip\7z.exe'
if (-not (test-path $zipExe)) {
$zipExe = "C:\Utils\sevenzip\7z.exe"
if (-not (test-path $zipExe)) {
throw "Could not find 7-zip."
}
}
} else {
$zipExe = "7z.exe"
}
Run-Executable $zipExe "a -y `"$archiveName`" `"$sourceDirectory`""
}
function PrepareRepository
{
$username = $env:USERNAME
$zip = "c:\users\$username\downloads\open62541.zip"
$externalUrl = "https://github.com/open62541/open62541/archive/$commitSHA.zip"
$internalUrl = "http://ci-files01-hki.intra.qt.io/input/open62541/$commitSHA.zip"
Download $externalUrl $internalUrl $zip
Verify-Checksum $zip $sha1
Extract-7Zip $zip $extractTarget
}
function PushDevEnvironment
{
# Provisioning updates the registry entries for PATH etc. However, they are not
# propagated to the next provisioning script and hence need to be manually
# read / set.
$adaptedPath = $env:PATH
$jomLocation = [Environment]::GetEnvironmentVariable("CI_JOM_PATH", "Machine")
$adaptedPath = $adaptedPath + ";" + $jomLocation
$adaptedPath = $adaptedPath + ";" + "C:\Python27"
$adaptedPath = $adaptedPath + ";" + "C:\CMake\bin"
[Environment]::SetEnvironmentVariable("PATH", $adaptedPath, "Process")
}
function MSVCEnvironment
{
Param (
[string]$msvcDir=$(throw("No VS Directory specified")),
[string]$msvcbat=$(throw("No vsvars batch file specified"))
)
Push-Location $msvcDir
cmd /c "$msvcbat&set" |
foreach {
if ($_ -match "=") {
$v = $_.split("="); Set-Item -force -path "ENV:\$($v[0])" -value "$($v[1])"
}
}
Pop-Location
}
function BuildAndInstallOpen62541
{
Param (
[string]$Type=$(throw("You must specify the dev type [mingw530, mingw630, mingw730, msvc2015, msvc2017]")),
[string]$Platform=$(throw("You must specify the target platform [x86, x64]")),
[string]$MakeCommand=$(throw("You must specify a make command [mingw32-make, nmake]"))
)
Write-Host "### Open62541: Supposed to build with: $Type $Platform $MakeCommand"
## Make Build directory
$buildDir = "$extractTarget\open62541-$commitSHA\build" + "_" + $Type + "_" + $Platform
if (Test-Path $buildDir) {
Write-Host " Deleting pre-existing build directory"
Remove-Item $buildDir -Force -Recurse
}
New-Item -ItemType Directory -Force -Path $buildDir
Push-Location $buildDir
## Invoke Cmake
$makeGenerator = "NMake Makefiles JOM"
$installTarget = "C:\Utils\open62541" + "_" + $Type + "_" + $Platform
if (Test-Path $installTarget) {
Write-Host " Deleting pre-existing install directory"
Remove-Item $installTarget -Force -Recurse
}
if ($Type.StartsWith("mingw")) {
$makeGenerator = "MinGW Makefiles"
}
cmake -G "$makeGenerator" -DUA_ENABLE_AMALGAMATION=ON -DUA_ENABLE_METHODCALLS=ON -DCMAKE_INSTALL_PREFIX:PATH=$installTarget -DLIB_INSTALL_DIR:PATH=$installTarget/lib ..
## Call build command
Write-Host "### Open62541: Compilation ###"
Run-Executable $MakeCommand
## call install command
Write-Host "### Open62541: Installation ###"
Run-Executable $MakeCommand install
$platformVariable = "CI_OPEN62541_" + $Type + "_" + $Platform + "_PREFIX"
Set-EnvironmentVariable $platformVariable $installTarget
## Packaging
Push-Location "C:\Utils"
$archiveName = "open62541_" + $Type + "_" + $Platform + ".7z"
CreateArchive $installTarget $archiveName
Pop-Location
## cleanup build directory
Write-Host "### Open62541: Cleanup ###"
Pop-Location
Remove-Item $buildDir -Force -Recurse
}
function DownloadAndInstall
{
Param (
[string]$Type=$(throw("You must specify the dev type [mingw530, mingw630, mingw730, msvc2015, msvc2017]")),
[string]$Platform=$(throw("You must specify the target platform [x86, x64]"))
)
$baseLocation = "http://ci-files01-hki.intra.qt.io/input/open62541/"
$targetName = "open62541_" + $Type + "_" + $Platform
$archiveName = $targetName + ".7z"
$downloadUrl = $baseLocation + $archiveName
# Download
$downloadTarget = "C:\Utils\" + $archiveName
Download $downloadUrl $downloadUrl $downloadTarget
# Extract
Push-Location C:\Utils
Extract-7Zip $downloadTarget C:\Utils
Pop-Location
# Set environment variable
$platformVariable = "CI_OPEN62541_" + $Type + "_" + $Platform
$platformPath = "C:\Utils\" + $targetName
Set-EnvironmentVariable $platformVariable $platformPath
}
##############################
# Startup #
##############################
if ($targetCommand.StartsWith("mingw")) {
Write-Host "### Creating Open62541 for MinGW"
$mingwPath = [Environment]::GetEnvironmentVariable($targetCommand, "Machine")
if (!$mingwPath) {
throw("Could not find mingw")
}
# Strawberry has its own gcc, put mingw in front
$adaptedPath = $mingwPath + "\bin;" + [Environment]::GetEnvironmentVariable("PATH", "Machine")
[Environment]::SetEnvironmentVariable("PATH", $adaptedPath, "Process")
PushDevEnvironment
BuildAndInstallOpen62541 $targetCommand x86 "mingw32-make"
} elseif ($targetCommand -eq "msvc2015_x86") {
Write-Host "### Creating Open62541 for MSVC2015 x86"
MSVCEnvironment "C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC" "vcvarsall.bat x86"
PushDevEnvironment
BuildAndInstallOpen62541 msvc2015 x86 jom
} elseif ($targetCommand -eq "msvc2015_x64") {
Write-Host "### Creating Open62541 for MSVC2015 x64"
MSVCEnvironment "C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC" "vcvarsall.bat amd64"
PushDevEnvironment
BuildAndInstallOpen62541 msvc2015 x64 jom
} elseif ($targetCommand -eq "msvc2017_x86") {
Write-Host "### Creating Open62541 for MSVC2017 x86"
MSVCEnvironment "C:\Program Files (x86)\Microsoft Visual Studio\2017\Professional\VC\Auxiliary\Build" vcvars32.bat
PushDevEnvironment
BuildAndInstallOpen62541 msvc2017 x86 jom
} elseif ($targetCommand -eq "msvc2017_x64") {
Write-Host "### Creating Open62541 for MSVC2017 x64"
MSVCEnvironment "C:\Program Files (x86)\Microsoft Visual Studio\2017\Professional\VC\Auxiliary\Build" vcvars64.bat
PushDevEnvironment
BuildAndInstallOpen62541 msvc2017 x64 jom
} elseif ($targetCommand -eq "prepare") {
PrepareRepository
} elseif ($targetCommand -eq "build") {
Write-Host "### Building for all supported platforms"
PrepareRepository
Write-Host "### Invoking MinGW530 build"
PowerShell -ExecutionPolicy Bypass -File "$PSScriptRoot\open62541.ps1" -targetCommand mingw530
Write-Host "### Invoking MinGW630 build"
PowerShell -ExecutionPolicy Bypass -File "$PSScriptRoot\open62541.ps1" -targetCommand mingw630
Write-Host "### Invoking MinGW730 build"
PowerShell -ExecutionPolicy Bypass -File "$PSScriptRoot\open62541.ps1" -targetCommand mingw730
Write-Host "### Invoking MSVC2015 build"
PowerShell -ExecutionPolicy Bypass -File "$PSScriptRoot\open62541.ps1" -targetCommand msvc2015_x86
PowerShell -ExecutionPolicy Bypass -File "$PSScriptRoot\open62541.ps1" -targetCommand msvc2015_x64
Write-Host "### Invoking MSVC2017 build"
PowerShell -ExecutionPolicy Bypass -File "$PSScriptRoot\open62541.ps1" -targetCommand msvc2017_x86
PowerShell -ExecutionPolicy Bypass -File "$PSScriptRoot\open62541.ps1" -targetCommand msvc2017_x64
Write-Host "### Archives have been generated at C:/Utils. Please upload manually"
} elseif ($targetCommand -eq "packaged") {
Write-Host "### Expecting pre-built packages, download and install from archives"
Write-Host "### MinGW530 x64"
DownloadAndInstall mingw530 x86
Write-Host "### MinGW630 x64"
DownloadAndInstall mingw630 x86
Write-Host "### MinGW730 x64"
DownloadAndInstall mingw730 x64
Write-Host "### MSVC2015 x86"
DownloadAndInstall msvc2015 x86
Write-Host "### MSVC2015 x64"
DownloadAndInstall msvc2015 x64
Write-Host "### MSVC2017 x64"
DownloadAndInstall msvc2017 x64
} elseif ($targetCommand) {
Write-Host "### Unknown parameter specified:" $targetCommand " Options are: mingw, msvc2015_x(86/64), msvc2017_x(86/64)"
throw("Unknown parameter")
} else {
# Default behavior
PowerShell -ExecutionPolicy Bypass -File "$PSScriptRoot\open62541.ps1" -targetCommand build
}

View File

@@ -1,37 +0,0 @@
#!/bin/env bash
#############################################################################
##
## Copyright (C) 2017 The Qt Company Ltd.
## Contact: http://www.qt.io/licensing/
##
## This file is part of the provisioning scripts of the Qt Toolkit.
##
## $QT_BEGIN_LICENSE:LGPL21$
## 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 http://www.qt.io/terms-conditions. For further
## information use the contact form at http://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 2.1 or version 3 as published by the Free
## Software Foundation and appearing in the file LICENSE.LGPLv21 and
## LICENSE.LGPLv3 included in the packaging of this file. Please review the
## following information to ensure the GNU Lesser General Public License
## requirements will be met: https://www.gnu.org/licenses/lgpl.html and
## http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
##
## As a special exception, The Qt Company gives you certain additional
## rights. These rights are described in The Qt Company LGPL Exception
## version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
##
## $QT_END_LICENSE$
##
#############################################################################
# shellcheck source=../common/linux/open62541.sh
source "${BASH_SOURCE%/*}/../common/linux/open62541.sh"

View File

@@ -1,36 +0,0 @@
#!/bin/env bash
#############################################################################
##
## Copyright (C) 2017 The Qt Company Ltd.
## Contact: http://www.qt.io/licensing/
##
## This file is part of the provisioning scripts of the Qt Toolkit.
##
## $QT_BEGIN_LICENSE:LGPL21$
## 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 http://www.qt.io/terms-conditions. For further
## information use the contact form at http://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 2.1 or version 3 as published by the Free
## Software Foundation and appearing in the file LICENSE.LGPLv21 and
## LICENSE.LGPLv3 included in the packaging of this file. Please review the
## following information to ensure the GNU Lesser General Public License
## requirements will be met: https://www.gnu.org/licenses/lgpl.html and
## http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
##
## As a special exception, The Qt Company gives you certain additional
## rights. These rights are described in The Qt Company LGPL Exception
## version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
##
## $QT_END_LICENSE$
##
#############################################################################
source "${BASH_SOURCE%/*}/../common/linux/open62541.sh"

View File

@@ -1,37 +0,0 @@
#!/bin/env bash
#############################################################################
##
## Copyright (C) 2017 The Qt Company Ltd.
## Contact: http://www.qt.io/licensing/
##
## This file is part of the provisioning scripts of the Qt Toolkit.
##
## $QT_BEGIN_LICENSE:LGPL21$
## 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 http://www.qt.io/terms-conditions. For further
## information use the contact form at http://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 2.1 or version 3 as published by the Free
## Software Foundation and appearing in the file LICENSE.LGPLv21 and
## LICENSE.LGPLv3 included in the packaging of this file. Please review the
## following information to ensure the GNU Lesser General Public License
## requirements will be met: https://www.gnu.org/licenses/lgpl.html and
## http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
##
## As a special exception, The Qt Company gives you certain additional
## rights. These rights are described in The Qt Company LGPL Exception
## version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
##
## $QT_END_LICENSE$
##
#############################################################################
# shellcheck source=../common/linux/open62541.sh
source "${BASH_SOURCE%/*}/../common/linux/open62541.sh"

View File

@@ -1 +0,0 @@
. "$PSScriptRoot\..\common\windows\open62541.ps1"

View File

@@ -1,2 +0,0 @@
. "$PSScriptRoot\..\common\windows\open62541.ps1" -targetCommand prepare
. "$PSScriptRoot\..\common\windows\open62541.ps1" -targetCommand mingw730