89 lines
4.0 KiB
YAML
89 lines
4.0 KiB
YAML
# Copyright (C) The c-ares project and its contributors
|
|
# SPDX-License-Identifier: MIT
|
|
name: QNX
|
|
on:
|
|
push:
|
|
|
|
concurrency:
|
|
group: ${{ github.ref }}-qnx
|
|
cancel-in-progress: true
|
|
|
|
env:
|
|
CC: qcc
|
|
CXX: q++
|
|
CFLAGS: "-V gcc_ntox86_64"
|
|
CXXFLAGS: "-V gcc_ntox86_64"
|
|
CPUVARDIR: "x86_64"
|
|
|
|
jobs:
|
|
build:
|
|
runs-on: ubuntu-latest
|
|
name: "QNX"
|
|
steps:
|
|
- name: Install packages
|
|
uses: awalsh128/cache-apt-pkgs-action@latest
|
|
with:
|
|
packages: cmake ninja-build autoconf automake libtool
|
|
version: 1.0
|
|
# Logic for intalling SDP taken right out of https://github.com/qnx-ports/build-files/blob/main/.github/workflows/c-ares.yml
|
|
- name: Download SDP 8.0
|
|
env:
|
|
QNX_LICENSE_KEY: ${{ secrets.QNX_LICENSE_KEY }}
|
|
QNX_USER: ${{ secrets.QNX_USER }}
|
|
QNX_PASSWORD: ${{ secrets.QNX_PASSWORD }}
|
|
run: |
|
|
[ -z "${QNX_USER}" -o -z "${QNX_PASSWORD}" -o -z "${QNX_LICENSE_KEY}" ] && echo "Must set QNX_USER, QNX_PASSWORD, and QNX_LICENSE_KEY" && /bin/false
|
|
echo "Downloading QNX Software Center ..."
|
|
mkdir ${{ github.workspace }}/.qnx
|
|
curl --cookie-jar ${{ github.workspace }}/.qnx/myqnxcookies.auth --form "userlogin=$QNX_USER" --form "password=$QNX_PASSWORD" -X POST https://www.qnx.com/account/login.html > login_response.html
|
|
curl -L --cookie ${{ github.workspace }}/.qnx/myqnxcookies.auth https://www.qnx.com/download/download/77351/qnx-setup-2.0.3-202408131717-linux.run > qnx-setup-lin.run
|
|
chmod a+x qnx-setup-lin.run
|
|
./qnx-setup-lin.run force-override disable-auto-start agree-to-license-terms ${{ github.workspace }}/qnxinstall
|
|
echo "Installing License ..."
|
|
${{ github.workspace }}/qnxinstall/qnxsoftwarecenter/qnxsoftwarecenter_clt -syncLicenseKeys -myqnx.user="$QNX_USER" -myqnx.password="$QNX_PASSWORD" -addLicenseKey $QNX_LICENSE_KEY
|
|
cp -r ~/.qnx/license ${{ github.workspace }}/.qnx
|
|
echo "Downloading QNX SDP ..."
|
|
${{ github.workspace }}/qnxinstall/qnxsoftwarecenter/qnxsoftwarecenter_clt -mirror -cleanInstall -destination ${{ github.workspace }}/qnx800 -installBaseline com.qnx.qnx800 -myqnx.user="$QNX_USER" -myqnx.password="$QNX_PASSWORD"
|
|
- name: Checkout qnx-ports build-files
|
|
uses: actions/checkout@v4
|
|
with:
|
|
repository: qnx-ports/build-files
|
|
path: build-files
|
|
- name: Checkout qnx-ports googletest
|
|
uses: actions/checkout@v4
|
|
with:
|
|
repository: qnx-ports/googletest
|
|
path: googletest
|
|
- name: Build googletest
|
|
run: |
|
|
source "${{ github.workspace }}/qnx800/qnxsdp-env.sh"
|
|
PREFIX="/usr" BUILD_TESTING="OFF" QNX_PROJECT_ROOT="$(pwd)/googletest" make -C build-files/ports/googletest install -j$(nproc)
|
|
- name: Checkout c-ares
|
|
uses: actions/checkout@v4
|
|
with:
|
|
path: c-ares
|
|
- name: Set CMAKE_FIND_ROOT_PATH
|
|
run: |
|
|
source "${{ github.workspace }}/qnx800/qnxsdp-env.sh"
|
|
echo "QNX_TARGET=${QNX_TARGET}" >> $GITHUB_ENV
|
|
echo "CMAKE_FIND_ROOT_PATH=${QNX_TARGET};${QNX_TARGET}/${CPUVARDIR}" >> $GITHUB_ENV
|
|
- name: "CMake: build c-ares"
|
|
env:
|
|
BUILD_TYPE: CMAKE
|
|
CMAKE_FLAGS: "-DCMAKE_BUILD_TYPE=DEBUG -DCARES_STATIC=ON -DCARES_STATIC_PIC=ON -DCARES_BUILD_TESTS=ON -G Ninja -DCMAKE_SYSTEM_NAME=QNX -DCMAKE_FIND_ROOT_PATH=${{ env.CMAKE_FIND_ROOT_PATH }} -DCMAKE_FIND_ROOT_PATH_MODE_PROGRAM=NEVER -DCMAKE_FIND_ROOT_PATH_MODE_LIBRARY=ONLY -DCMAKE_FIND_ROOT_PATH_MODE_INCLUDE=ONLY"
|
|
run: |
|
|
source "${{ github.workspace }}/qnx800/qnxsdp-env.sh"
|
|
cd c-ares
|
|
./ci/build.sh
|
|
- name: "Autotools: build c-ares"
|
|
env:
|
|
BUILD_TYPE: autotools
|
|
PKG_CONFIG_PATH: "${{ env.QNX_TARGET }}/${{ env.CPUVARDIR }}/usr/lib/pkgconfig"
|
|
CONFIG_OPTS: "--host=x86_64-unknown-nto-qnx8.0.0 --enable-tests-crossbuild"
|
|
run: |
|
|
source "${{ github.workspace }}/qnx800/qnxsdp-env.sh"
|
|
cd c-ares
|
|
./ci/build.sh
|
|
|
|
|