From 6a7e5804bfeda1bf20c902646749b98fc7a47291 Mon Sep 17 00:00:00 2001 From: Vasily Date: Wed, 5 Jun 2019 15:04:29 +0200 Subject: [PATCH] Add CircleCI AppImage building This builds on GCC for no reason in particular. --- .circleci/config.yml | 77 ++++++++++++++++++- build_scripts/linux/appimage.sh | 36 +++++++++ .../linux/AdvancedSettings.desktop | 7 ++ 3 files changed, 119 insertions(+), 1 deletion(-) create mode 100755 build_scripts/linux/appimage.sh create mode 100644 src/package_files/linux/AdvancedSettings.desktop diff --git a/.circleci/config.yml b/.circleci/config.yml index 46472cc..2b956a7 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -81,7 +81,82 @@ jobs: MAKE_JOBS: 2 docker: - image: "ubuntu:xenial" - steps: *update_and_install_prereqs + steps: + - checkout + - run: apt-get update && apt-get upgrade -y + - run: + name: Get wget and apt-key + command: | + apt-get install wget -y + apt-get install software-properties-common -y + - run: + name: Set up LLVM-8 repo + command: | + wget -O - https://apt.llvm.org/llvm-snapshot.gpg.key | apt-key add - + add-apt-repository 'deb http://apt.llvm.org/xenial/ llvm-toolchain-xenial-8 main' + add-apt-repository 'deb http://apt.llvm.org/xenial/ llvm-toolchain-xenial-7 main' + apt update -qq + - run: + name: Install LLVM-8 binaries + command: | + apt install clang-format-8 -y + apt install clang-tidy-7 -y + apt install clang-8 -y + apt install clang -y + - run: + name: Run clang-format + command: python ./build_scripts/run-clang-format.py ./src -r --color always --clang-format-executable clang-format-8 + - run: + name: Install g++-7 + command: | + add-apt-repository ppa:ubuntu-toolchain-r/test + apt update + apt install g++-7 -y + - run: + name: Add required QT repos + command: | + add-apt-repository ppa:beineri/opt-qt-5.12.2-xenial -y + apt-get update -qq + - run: apt-get install build-essential libgl1-mesa-dev -y + - run: + name: Install QT packages + command: | + apt-get install qt512-meta-minimal qt512multimedia qt512declarative qt512quickcontrols2 qt512tools qt512base qtchooser -y + - run: + name: Install X11 packages + command: apt-get install libx11-dev libxt-dev libxtst-dev -y + - run: + name: Install bear/clang-tidy + command: apt-get install bear clang-tidy -y + - run: + name: Set up qtchooser + command: qtchooser -install opt-qt512 /opt/qt512/bin/qmake + - run: + name: Give build scripts +x + command: | + chmod +x ./build_scripts/linux/build_linux.sh + chmod +x ./build_scripts/linux/format.sh + chmod +x ./build_scripts/linux/run-clang-tidy.sh + chmod +x ./build_scripts/linux/verify_formatting.sh + - run: clang --version + - run: + name: Run build script + command: ./build_scripts/linux/build_linux.sh + - run: + name: Get qtdeploylinux + command: | + wget -c -nv https://github.com/probonopd/linuxdeployqt/releases/download/continuous/linuxdeployqt-continuous-x86_64.AppImage + chmod a+x ./linuxdeployqt-continuous-x86_64.AppImage + - run: + name: Create AppImage + command: ./build_scripts/linux/appimage.sh + - run: + name: Copy Artifacts + command: | + mkdir artifacts + cp ./OpenVR_Advanced_Settings-*.AppImage ./artifacts/ + - store_artifacts: + path: ./artifacts/ clang: environment: diff --git a/build_scripts/linux/appimage.sh b/build_scripts/linux/appimage.sh new file mode 100755 index 0000000..265c8b5 --- /dev/null +++ b/build_scripts/linux/appimage.sh @@ -0,0 +1,36 @@ +#!/usr/bin/env bash +SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" >/dev/null 2>&1 && pwd )" +PROJECT_DIR=$SCRIPT_DIR/../../ +BUILD_DIR=$PROJECT_DIR/build/ +EXE_DIR=$BUILD_DIR/bin/linux/AdvancedSettings/ + +#wget -c -nv "https://github.com/probonopd/linuxdeployqt/releases/download/continuous/linuxdeployqt-continuous-x86_64.AppImage" +#chmod a+x linuxdeployqt-continuous-x86_64.AppImage +mkdir -p $EXE_DIR/usr +mkdir -p $EXE_DIR/usr/bin +mkdir -p $EXE_DIR/usr/lib +mkdir -p $EXE_DIR/usr/share +mkdir -p $EXE_DIR/usr/share/applications +mkdir -p $EXE_DIR/usr/share/icons +mkdir -p $EXE_DIR/usr/share/icons/hicolor +mkdir -p $EXE_DIR/usr/share/icons/hicolor/256x256 +mkdir -p $EXE_DIR/usr/share/icons/hicolor/256x256/apps + +cp $EXE_DIR/AdvancedSettings $EXE_DIR/usr/bin +cp -r $EXE_DIR/res $EXE_DIR/usr/bin +cp -r $EXE_DIR/default_action_manifests $EXE_DIR/usr/bin +cp $EXE_DIR/action_manifest.json $EXE_DIR/usr/bin +cp $EXE_DIR/libopenvr_api.so $EXE_DIR/usr/bin +cp $EXE_DIR/manifest.vrmanifest $EXE_DIR/usr/bin + +cp $PROJECT_DIR/src/res/img/icons/thumbicon.png $EXE_DIR/usr/share/icons/hicolor/256x256/apps/AdvancedSettings.png + +cp $PROJECT_DIR/src/package_files/linux/AdvancedSettings.desktop $EXE_DIR/usr/share/applications/AdvancedSettings.desktop + +#cp ~/.steam/bin32/libsteam.o $EXE_DIR/usr/lib + +qmake --version + +$PROJECT_DIR/linuxdeployqt-continuous-x86_64.AppImage -version + +$PROJECT_DIR/linuxdeployqt-continuous-x86_64.AppImage $EXE_DIR/usr/share/applications/AdvancedSettings.desktop --appimage-extract-and-run -unsupported-allow-new-glibc -appimage -verbose=2 -always-overwrite diff --git a/src/package_files/linux/AdvancedSettings.desktop b/src/package_files/linux/AdvancedSettings.desktop new file mode 100644 index 0000000..0d356b4 --- /dev/null +++ b/src/package_files/linux/AdvancedSettings.desktop @@ -0,0 +1,7 @@ +[Desktop Entry] +Type=Application +Name=OpenVR Advanced Settings +Comment=OVRAS +Exec=AdvancedSettings +Icon=AdvancedSettings +Categories=Office;