diff options
author | Denis Shienkov <denis.shienkov@gmail.com> | 2022-02-04 17:45:01 +0300 |
---|---|---|
committer | Denis Shienkov <denis.shienkov@gmail.com> | 2022-02-08 15:43:54 +0000 |
commit | a4046a72a29e70abe482e8d35276721ace375997 (patch) | |
tree | e60d22e3446428864538d2b873059ed647b19e18 | |
parent | afcda641beb222811d82d1fc75efd8a82653b66f (diff) | |
download | qbs-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.yml | 15 | ||||
-rw-r--r-- | .github/workflows/main.yml | 7 | ||||
-rw-r--r-- | scripts/install-dm.sh | 117 | ||||
-rw-r--r-- | share/qbs/imports/qbs/Probes/DmcProbe.qbs | 2 |
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; } } } |