summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDenis Shienkov <denis.shienkov@gmail.com>2022-02-04 17:45:01 +0300
committerDenis Shienkov <denis.shienkov@gmail.com>2022-02-08 15:43:54 +0000
commita4046a72a29e70abe482e8d35276721ace375997 (patch)
treee60d22e3446428864538d2b873059ed647b19e18
parentafcda641beb222811d82d1fc75efd8a82653b66f (diff)
downloadqbs-a4046a72a29e70abe482e8d35276721ace375997.tar.gz
Configure CI for Digital Mars compiler
... and also as fix the typo in the DmcProbe.qbs file. Change-Id: I2f62b862b900c92be97c6eb6a9b461ac5973b8ea Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
-rw-r--r--.github/actions/download-dm/action.yml15
-rw-r--r--.github/workflows/main.yml7
-rw-r--r--scripts/install-dm.sh117
-rw-r--r--share/qbs/imports/qbs/Probes/DmcProbe.qbs2
4 files changed, 140 insertions, 1 deletions
diff --git a/.github/actions/download-dm/action.yml b/.github/actions/download-dm/action.yml
new file mode 100644
index 000000000..5d24da3e2
--- /dev/null
+++ b/.github/actions/download-dm/action.yml
@@ -0,0 +1,15 @@
+name: 'Download DigitalMars'
+description: 'Downloads DigitalMars'
+inputs:
+ version:
+ description: 'DigitalMars version'
+ required: false
+ default: '8.57'
+runs:
+ using: "composite"
+ steps:
+ - name: Install DigitalMars
+ run: |
+ DM_DIR=$(./scripts/install-dm.sh -d $HOME/dm --version ${{ inputs.version }})
+ (cygpath -w ${DM_DIR} 2>/dev/null || echo ${DM_DIR}) >> ${GITHUB_PATH}
+ shell: bash
diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml
index 7199ea6c3..9bacd9898 100644
--- a/.github/workflows/main.yml
+++ b/.github/workflows/main.yml
@@ -808,6 +808,11 @@ jobs:
testProfile: 'watcom-2_0_0-x86',
script: './scripts/test-baremetal.sh',
}
+ - {
+ name: 'Run Windows tests (DigitalMars)',
+ testProfile: 'dmc-8_42_0-x86',
+ script: './scripts/test-baremetal.sh',
+ }
env:
QTEST_FUNCTION_TIMEOUT: 9000000
QBS_AUTOTEST_PROFILE: 'extra'
@@ -832,6 +837,8 @@ jobs:
run: choco install -y pkgconfiglite --download-checksum=6004df17818f5a6dbf19cb335cc92702
- name: Install OpenWatcom
uses: ./.github/actions/download-ow
+ - name: Install DigitalMars
+ uses: ./.github/actions/download-dm
- name: Setup Qbs
run: |
qbs setup-toolchains --detect
diff --git a/scripts/install-dm.sh b/scripts/install-dm.sh
new file mode 100644
index 000000000..386329ecb
--- /dev/null
+++ b/scripts/install-dm.sh
@@ -0,0 +1,117 @@
+#!/usr/bin/env bash
+#############################################################################
+##
+## Copyright (C) 2022 Denis Shienkov <denis.shienkov@gmail.com>
+## Contact: https://www.qt.io/licensing/
+##
+## This file is part of Qbs.
+##
+## $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$
+##
+#############################################################################
+set -eu
+
+function show_help() {
+ cat <<EOF
+usage: install-dm [options] [components]
+
+Examples
+ ./install-dm.sh --version 8.57
+
+Options
+ -d, --directory <directory>
+ Root directory where to install the components.
+ Maps to c:/dm on Windows by default.
+
+ --version <version>
+ The desired toolchain version.
+ Currently supported only 8.57 version.
+
+EOF
+}
+
+VERSION="8.57"
+INSTALL_DIR="/c/dm"
+
+while [ $# -gt 0 ]; do
+ case "$1" in
+ --directory|-d)
+ INSTALL_DIR="$2"
+ shift
+ ;;
+ --version)
+ VERSION="$2"
+ shift
+ ;;
+ --help|-h)
+ show_help
+ exit 0
+ ;;
+ *)
+ ;;
+ esac
+ shift
+done
+
+if [ -z "${INSTALL_DIR}" ]; then
+ echo "No --directory specified or auto-detection failed." >&2
+ exit 1
+fi
+
+if [ -z "${VERSION}" ]; then
+ echo "No --version specified." >&2
+ exit 1
+fi
+
+DOWNLOAD_DIR=`mktemp -d 2>/dev/null || mktemp -d -t 'dm-tmp'`
+
+DM_URL="http://ftp.digitalmars.com/Digital_Mars_C++/Patch/dm${VERSION//./}c.zip"
+UTILS_URL="http://ftp.digitalmars.com/bup.zip"
+
+DM_ZIP="${DOWNLOAD_DIR}/dm.zip"
+UTILS_ZIP="${DOWNLOAD_DIR}/utils.zip"
+
+echo "Downloading compiler from ${DM_URL}..." >&2
+curl --progress-bar -L -o ${DM_ZIP} ${DM_URL} >&2
+
+echo "Downloading utils from ${UTILS_URL}..." >&2
+curl --progress-bar -L -o ${UTILS_ZIP} ${UTILS_URL} >&2
+
+echo "Unpacking compiler to ${INSTALL_DIR}..." >&2
+7z x -y -o${INSTALL_DIR} ${DM_ZIP} >/dev/null 2>&1
+
+echo "Unpacking utils to ${INSTALL_DIR}..." >&2
+7z x -y -o${INSTALL_DIR} ${UTILS_ZIP} >/dev/null 2>&1
+
+echo "${INSTALL_DIR}/dm/bin"
+
+rm -f ${DM_ZIP}
+rm -f ${UTILS_ZIP}
diff --git a/share/qbs/imports/qbs/Probes/DmcProbe.qbs b/share/qbs/imports/qbs/Probes/DmcProbe.qbs
index 0375805b5..42672eee1 100644
--- a/share/qbs/imports/qbs/Probes/DmcProbe.qbs
+++ b/share/qbs/imports/qbs/Probes/DmcProbe.qbs
@@ -83,7 +83,7 @@ PathProbe {
versionMajor = version.major;
versionMinor = version.minor;
versionPatch = version.patch;
- found = !!architecture && !!endianness;
+ found = !!architecture;
}
}
}