From 2735325f4c615ab399ab36c755d0aacbc1bd6a28 Mon Sep 17 00:00:00 2001 From: Syping Date: Sun, 30 Aug 2020 18:48:33 +0200 Subject: [PATCH] use CMake for Qt5 Linux build --- .ci/ci.sh | 16 ++++++++++++---- .ci/debian_build.sh | 7 +++++-- .ci/debian_docker.sh | 2 +- .ci/windows_docker.sh | 2 +- .ci/wininstall_docker.sh | 2 +- 5 files changed, 20 insertions(+), 9 deletions(-) diff --git a/.ci/ci.sh b/.ci/ci.sh index 4021b51..a564d5c 100755 --- a/.ci/ci.sh +++ b/.ci/ci.sh @@ -29,33 +29,41 @@ cat ".ci/app.rc" | sed \ -e "s/STR_BUILD_VER/$APPLICATION_BUILD_STR_VERSION/g" \ > "res/app.rc" -# cat ".ci/gta5view.desktop" | sed \ -# -e "s/PKGAPP_VER/$PACKAGE_VERSION/g" \ -# > "res/gta5view.desktop" - if [ "${BUILD_TYPE}" == "ALPHA" ]; then + export CMAKE_BUILD_TYPE="-DGTA5VIEW_BUILDTYPE_ALPHA=TRUE" export QMAKE_BUILD_TYPE="DEFINES+=GTA5SYNC_BUILDTYPE_ALPHA" elif [ "${BUILD_TYPE}" == "Alpha" ]; then + export CMAKE_BUILD_TYPE="-DGTA5VIEW_BUILDTYPE_ALPHA=TRUE" export QMAKE_BUILD_TYPE="DEFINES+=GTA5SYNC_BUILDTYPE_ALPHA" elif [ "${BUILD_TYPE}" == "BETA" ]; then + export CMAKE_BUILD_TYPE="-DGTA5VIEW_BUILDTYPE_BETA=TRUE" export QMAKE_BUILD_TYPE="DEFINES+=GTA5SYNC_BUILDTYPE_BETA" elif [ "${BUILD_TYPE}" == "Beta" ]; then + export CMAKE_BUILD_TYPE="-DGTA5VIEW_BUILDTYPE_BETA=TRUE" export QMAKE_BUILD_TYPE="DEFINES+=GTA5SYNC_BUILDTYPE_BETA" elif [ "${BUILD_TYPE}" == "DEV" ]; then + export CMAKE_BUILD_TYPE="-DGTA5VIEW_BUILDTYPE_DEV=TRUE" export QMAKE_BUILD_TYPE="DEFINES+=GTA5SYNC_BUILDTYPE_DEV" elif [ "${BUILD_TYPE}" == "Development" ]; then + export CMAKE_BUILD_TYPE="-DGTA5VIEW_BUILDTYPE_DEV=TRUE" export QMAKE_BUILD_TYPE="DEFINES+=GTA5SYNC_BUILDTYPE_DEV" elif [ "${BUILD_TYPE}" == "DAILY" ]; then + export CMAKE_BUILD_TYPE="-DGTA5VIEW_BUILDTYPE_DAILY=TRUE" export QMAKE_BUILD_TYPE="DEFINES+=GTA5SYNC_BUILDTYPE_DAILY" elif [ "${BUILD_TYPE}" == "Daily" ]; then + export CMAKE_BUILD_TYPE="-DGTA5VIEW_BUILDTYPE_DAILY=TRUE" export QMAKE_BUILD_TYPE="DEFINES+=GTA5SYNC_BUILDTYPE_DAILY" elif [ "${BUILD_TYPE}" == "RC" ]; then + export CMAKE_BUILD_TYPE="-DGTA5VIEW_BUILDTYPE_RC=TRUE" export QMAKE_BUILD_TYPE="DEFINES+=GTA5SYNC_BUILDTYPE_RC" elif [ "${BUILD_TYPE}" == "Release Candidate" ]; then + export CMAKE_BUILD_TYPE="-DGTA5VIEW_BUILDTYPE_RC=TRUE" export QMAKE_BUILD_TYPE="DEFINES+=GTA5SYNC_BUILDTYPE_RC" elif [ "${BUILD_TYPE}" == "REL" ]; then + export CMAKE_BUILD_TYPE="-DGTA5VIEW_BUILDTYPE_REL=TRUE" export QMAKE_BUILD_TYPE="DEFINES+=GTA5SYNC_BUILDTYPE_REL" elif [ "${BUILD_TYPE}" == "Release" ]; then + export CMAKE_BUILD_TYPE="-DGTA5VIEW_BUILDTYPE_REL=TRUE" export QMAKE_BUILD_TYPE="DEFINES+=GTA5SYNC_BUILDTYPE_REL" fi diff --git a/.ci/debian_build.sh b/.ci/debian_build.sh index d4ae8a6..017c9a1 100755 --- a/.ci/debian_build.sh +++ b/.ci/debian_build.sh @@ -16,13 +16,16 @@ cd qt5 && \ echo "Grand Theft Auto V Snapmatic and Savegame viewer/editor" > ./description-pak && \ cd .. && \ +# Set compiler +export CC=clang && \ +export CXX=clang++ && \ + # Prepare checkinstall step mkdir -p /usr/share/gta5view && \ # Starting build cd qt5 && \ -qmake -qt=5 -spec linux-clang GTA5SYNC_PREFIX=/usr QMAKE_CXXFLAGS+=-std=gnu++11 ${QMAKE_FLAGS_QT5} ${QMAKE_BUILD_TYPE} "DEFINES+=GTA5SYNC_BUILDCODE=\\\\\\\"${PACKAGE_CODE}\\\\\\\"" "DEFINES+=GTA5SYNC_APPVER=\\\\\\\"${APPLICATION_VERSION}\\\\\\\"" "DEFINES+=GTA5SYNC_COMMIT=\\\\\\\"${APPLICATION_COMMIT}\\\\\\\"" DEFINES+=GTA5SYNC_QCONF DEFINES+=GTA5SYNC_TELEMETRY "DEFINES+=GTA5SYNC_TELEMETRY_WEBURL=\\\\\\\"https://dev.syping.de/gta5view-userstats/\\\\\\\"" DEFINES+=GTA5SYNC_DONATION "DEFINES+=GTA5SYNC_DONATION_EMAIL=\\\\\\\"paypal/at/syping.de\\\\\\\"" ../../gta5view.pro && \ -make depend && \ +cmake -DCMAKE_INSTALL_PREFIX=/usr ${CMAKE_BUILD_TYPE} "-DGTA5VIEW_BUILDCODE=${PACKAGE_CODE}" "-DGTA5VIEW_APPVER=${APPLICATION_VERSION}" "-DGTAVIEW_COMMIT=${APPLICATION_COMMIT}" -DQCONF_BUILD=ON -DWITH_TELEMETRY=ON "-DTELEMETRY_WEBURL=https://dev.syping.de/gta5view-userstats/" ../../ && \ make -j 4 && \ checkinstall -D --default --nodoc --install=no --pkgname=gta5view-qt5 --pkgversion=${PACKAGE_VERSION} --pkgrelease=${PACKAGE_BUILD} --pkggroup=utility --maintainer="Syping \" --requires=libqt5core5a,libqt5gui5,libqt5network5,libqt5svg5,libqt5widgets5,qttranslations5-l10n --conflicts=gta5view,gta5view-qt4 --replaces=gta5view,gta5view-qt4 --pakdir=${PROJECT_DIR}/assets && \ cd .. && \ diff --git a/.ci/debian_docker.sh b/.ci/debian_docker.sh index 150001c..01b38cb 100755 --- a/.ci/debian_docker.sh +++ b/.ci/debian_docker.sh @@ -12,4 +12,4 @@ docker pull ${DOCKER_IMAGE} && \ docker run --rm \ -v "${PROJECT_DIR}:${PROJECT_DIR_DOCKER}" \ ${DOCKER_IMAGE} \ - /bin/bash -c "export PROJECT_DIR=${PROJECT_DIR_DOCKER} && export QT_SELECT=${QT_SELECT} && export APPLICATION_VERSION=${APPLICATION_VERSION} && export APPLICATION_COMMIT=${APPLICATION_COMMIT} && export BUILD_TYPE=${BUILD_TYPE} && export APT_INSTALL=${APT_INSTALL} && export QMAKE_FLAGS_QT4=${QMAKE_FLAGS_QT4} && export QMAKE_FLAGS_QT5=${QMAKE_FLAGS_QT5} && export QMAKE_BUILD_TYPE=${QMAKE_BUILD_TYPE} && export PACKAGE_VERSION=${PACKAGE_VERSION} && export PACKAGE_BUILD=${PACKAGE_BUILD} && export PACKAGE_CODE=${PACKAGE_CODE} && export EXECUTABLE_VERSION=${EXECUTABLE_VERSION} && export EXECUTABLE_ARCH=${EXECUTABLE_ARCH} && cd ${PROJECT_DIR_DOCKER} && .ci/debian_install.sh && .ci/debian_build.sh" + /bin/bash -c "export PROJECT_DIR=${PROJECT_DIR_DOCKER} && export QT_SELECT=${QT_SELECT} && export APPLICATION_VERSION=${APPLICATION_VERSION} && export APPLICATION_COMMIT=${APPLICATION_COMMIT} && export BUILD_TYPE=${BUILD_TYPE} && export APT_INSTALL=${APT_INSTALL} && export QMAKE_FLAGS_QT4=${QMAKE_FLAGS_QT4} && export QMAKE_FLAGS_QT5=${QMAKE_FLAGS_QT5} && export CMAKE_BUILD_TYPE=${CMAKE_BUILD_TYPE} && export QMAKE_BUILD_TYPE=${QMAKE_BUILD_TYPE} && export PACKAGE_VERSION=${PACKAGE_VERSION} && export PACKAGE_BUILD=${PACKAGE_BUILD} && export PACKAGE_CODE=${PACKAGE_CODE} && export EXECUTABLE_VERSION=${EXECUTABLE_VERSION} && export EXECUTABLE_ARCH=${EXECUTABLE_ARCH} && cd ${PROJECT_DIR_DOCKER} && .ci/debian_install.sh && .ci/debian_build.sh" diff --git a/.ci/windows_docker.sh b/.ci/windows_docker.sh index 322c384..2e08986 100755 --- a/.ci/windows_docker.sh +++ b/.ci/windows_docker.sh @@ -8,7 +8,7 @@ docker pull ${DOCKER_IMAGE} && \ docker run --rm \ -v "${PROJECT_DIR}:${PROJECT_DIR_DOCKER}" \ ${DOCKER_IMAGE} \ - /bin/bash -c "export PROJECT_DIR=${PROJECT_DIR_DOCKER} && export QT_SELECT=${QT_SELECT} && export APPLICATION_VERSION=${APPLICATION_VERSION} && export APPLICATION_COMMIT=${APPLICATION_COMMIT} && export BUILD_TYPE=${BUILD_TYPE} && export QMAKE_FLAGS_QT4=${QMAKE_FLAGS_QT4} && export QMAKE_FLAGS_QT5=${QMAKE_FLAGS_QT5} && export QMAKE_BUILD_TYPE=${QMAKE_BUILD_TYPE} && export PACKAGE_VERSION=${PACKAGE_VERSION} && export PACKAGE_BUILD=${PACKAGE_BUILD} && export PACKAGE_CODE=${PACKAGE_CODE} && export EXECUTABLE_VERSION=${EXECUTABLE_VERSION} && export EXECUTABLE_ARCH=${EXECUTABLE_ARCH} && cd ${PROJECT_DIR_DOCKER} && .ci/windows_build.sh" && \ + /bin/bash -c "export PROJECT_DIR=${PROJECT_DIR_DOCKER} && export QT_SELECT=${QT_SELECT} && export APPLICATION_VERSION=${APPLICATION_VERSION} && export APPLICATION_COMMIT=${APPLICATION_COMMIT} && export BUILD_TYPE=${BUILD_TYPE} && export QMAKE_FLAGS_QT4=${QMAKE_FLAGS_QT4} && export QMAKE_FLAGS_QT5=${QMAKE_FLAGS_QT5} && export CMAKE_BUILD_TYPE=${CMAKE_BUILD_TYPE} && export QMAKE_BUILD_TYPE=${QMAKE_BUILD_TYPE} && export PACKAGE_VERSION=${PACKAGE_VERSION} && export PACKAGE_BUILD=${PACKAGE_BUILD} && export PACKAGE_CODE=${PACKAGE_CODE} && export EXECUTABLE_VERSION=${EXECUTABLE_VERSION} && export EXECUTABLE_ARCH=${EXECUTABLE_ARCH} && cd ${PROJECT_DIR_DOCKER} && .ci/windows_build.sh" && \ # Prepare environment variable export GTA5VIEW_EXECUTABLE=gta5view-${EXECUTABLE_VERSION}${EXECUTABLE_ARCH}.exe && \ diff --git a/.ci/wininstall_docker.sh b/.ci/wininstall_docker.sh index cba5ce1..96881f6 100755 --- a/.ci/wininstall_docker.sh +++ b/.ci/wininstall_docker.sh @@ -8,4 +8,4 @@ docker pull ${DOCKER_IMAGE} && \ docker run --rm \ -v "${PROJECT_DIR}:${PROJECT_DIR_DOCKER}" \ ${DOCKER_IMAGE} \ - /bin/bash -c "export PROJECT_DIR=${PROJECT_DIR_DOCKER} && export QT_SELECT=${QT_SELECT} && export APPLICATION_VERSION=${APPLICATION_VERSION} && export APPLICATION_COMMIT=${APPLICATION_COMMIT} && export BUILD_TYPE=${BUILD_TYPE} && export QMAKE_FLAGS_QT4=${QMAKE_FLAGS_QT4} && export QMAKE_FLAGS_QT5=${QMAKE_FLAGS_QT5} && export QMAKE_BUILD_TYPE=${QMAKE_BUILD_TYPE} && export PACKAGE_VERSION=${PACKAGE_VERSION} && export PACKAGE_BUILD=${PACKAGE_BUILD} && export PACKAGE_CODE=${PACKAGE_CODE} && export EXECUTABLE_VERSION=${EXECUTABLE_VERSION} && export EXECUTABLE_ARCH=${EXECUTABLE_ARCH} && cd ${PROJECT_DIR_DOCKER} && .ci/wininstall_build.sh" + /bin/bash -c "export PROJECT_DIR=${PROJECT_DIR_DOCKER} && export QT_SELECT=${QT_SELECT} && export APPLICATION_VERSION=${APPLICATION_VERSION} && export APPLICATION_COMMIT=${APPLICATION_COMMIT} && export BUILD_TYPE=${BUILD_TYPE} && export QMAKE_FLAGS_QT4=${QMAKE_FLAGS_QT4} && export QMAKE_FLAGS_QT5=${QMAKE_FLAGS_QT5} && export CMAKE_BUILD_TYPE=${CMAKE_BUILD_TYPE} && export QMAKE_BUILD_TYPE=${QMAKE_BUILD_TYPE} && export PACKAGE_VERSION=${PACKAGE_VERSION} && export PACKAGE_BUILD=${PACKAGE_BUILD} && export PACKAGE_CODE=${PACKAGE_CODE} && export EXECUTABLE_VERSION=${EXECUTABLE_VERSION} && export EXECUTABLE_ARCH=${EXECUTABLE_ARCH} && cd ${PROJECT_DIR_DOCKER} && .ci/wininstall_build.sh"