diff --git a/.ci/debian_build.sh b/.ci/debian_build.sh index a6fd66b..b42578b 100755 --- a/.ci/debian_build.sh +++ b/.ci/debian_build.sh @@ -25,7 +25,16 @@ mkdir -p /usr/share/gta5view && \ # Starting build cd qt5 && \ -cmake -DCMAKE_INSTALL_PREFIX=/usr ${CMAKE_BUILD_TYPE} "-DGTA5VIEW_BUILDCODE=${PACKAGE_CODE}" "-DGTA5VIEW_APPVER=${APPLICATION_VERSION}" "-DGTA5VIEW_COMMIT=${APPLICATION_COMMIT}" -DQCONF_BUILD=ON -DWITH_TELEMETRY=ON "-DTELEMETRY_WEBURL=https://dev.syping.de/gta5view-userstats/" ../../ && \ +cmake \ + "-DCMAKE_INSTALL_PREFIX=/usr" \ + ${CMAKE_BUILD_TYPE} \ + "-DGTA5VIEW_BUILDCODE=${PACKAGE_CODE}" \ + "-DGTA5VIEW_APPVER=${APPLICATION_VERSION}" \ + "-DGTA5VIEW_COMMIT=${APPLICATION_COMMIT}" \ + "-DWITH_TELEMETRY=ON" \ + "-DTELEMETRY_WEBURL=https://dev.syping.de/gta5view-userstats/" \ + "-DQCONF_BUILD=ON" \ + ../../ && \ 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/gta5view.nsi b/.ci/gta5view.nsi index 9a3e81b..0111764 100644 --- a/.ci/gta5view.nsi +++ b/.ci/gta5view.nsi @@ -103,7 +103,7 @@ Section -MainProgram ${INSTALL_TYPE} SetOverwrite ifnewer SetOutPath "$INSTDIR" -File "../build/release/gta5view.exe" +File "../build/gta5view.exe" File "/opt/llvm-mingw/x86_64-w64-mingw32/bin/libc++.dll" File "/opt/llvm-mingw/x86_64-w64-mingw32/bin/libunwind.dll" File "/usr/local/lib/x86_64-w64-mingw32/openssl/bin/libcrypto-1_1-x64.dll" @@ -115,14 +115,14 @@ File "/usr/local/lib/x86_64-w64-mingw32/qt5/bin/Qt5Svg.dll" File "/usr/local/lib/x86_64-w64-mingw32/qt5/bin/Qt5Widgets.dll" File "/usr/local/lib/x86_64-w64-mingw32/qt5/bin/Qt5WinExtras.dll" SetOutPath "$INSTDIR\lang" -File "../res/gta5sync_en_US.qm" -File "../res/gta5sync_de.qm" -File "../res/gta5sync_fr.qm" -File "../res/gta5sync_ko.qm" -File "../res/gta5sync_ru.qm" -File "../res/gta5sync_uk.qm" -File "../res/gta5sync_zh_TW.qm" -File "../res/qtbase_en_GB.qm" +File "../build/gta5sync_en_US.qm" +File "../build/gta5sync_de.qm" +File "../build/gta5sync_fr.qm" +File "../build/gta5sync_ko.qm" +File "../build/gta5sync_ru.qm" +File "../build/gta5sync_uk.qm" +File "../build/gta5sync_zh_TW.qm" +File "../build/qtbase_en_GB.qm" File "../res/qtbase_de.qm" File "../res/qtbase_fr.qm" File "../res/qtbase_ko.qm" diff --git a/.ci/windows_build.sh b/.ci/windows_build.sh index ad8ee9f..dad851e 100755 --- a/.ci/windows_build.sh +++ b/.ci/windows_build.sh @@ -12,7 +12,14 @@ mkdir -p assets && \ # Starting build cd build && \ -qmake-static ${QMAKE_FLAGS_QT5} ${QMAKE_BUILD_TYPE} "DEFINES+=GTA5SYNC_BUILDCODE=\\\\\\\"${PACKAGE_CODE}\\\\\\\"" "DEFINES+=GTA5SYNC_APPVER=\\\\\\\"${APPLICATION_VERSION}\\\\\\\"" "DEFINES+=GTA5SYNC_COMMIT=\\\\\\\"${APPLICATION_COMMIT}\\\\\\\"" DEFINES+=GTA5SYNC_TELEMETRY "DEFINES+=GTA5SYNC_TELEMETRY_WEBURL=\\\\\\\"https://dev.syping.de/gta5view-userstats/\\\\\\\"" ../gta5view.pro && \ +mingw64-qt-cmake \ + ${CMAKE_BUILD_TYPE} \ + "-DGTA5VIEW_BUILDCODE=${PACKAGE_CODE}" \ + "-DGTA5VIEW_APPVER=${APPLICATION_VERSION}" \ + "-DGTA5VIEW_COMMIT=${APPLICATION_COMMIT}" \ + "-DWITH_TELEMETRY=ON" \ + "-DTELEMETRY_WEBURL=https://dev.syping.de/gta5view-userstats/" \ + .. && \ make -j 4 && \ -cp -Rf release/*.exe ${PROJECT_DIR}/assets/${GTA5VIEW_EXECUTABLE} && \ +cp -Rf *.exe ${PROJECT_DIR}/assets/${GTA5VIEW_EXECUTABLE} && \ cd ${PROJECT_DIR}/assets diff --git a/.ci/wininstall_build.sh b/.ci/wininstall_build.sh index fe9a9e9..bf013af 100755 --- a/.ci/wininstall_build.sh +++ b/.ci/wininstall_build.sh @@ -1,9 +1,5 @@ #!/bin/bash -# Install nsis -apt-get update -qq && \ -apt-get install -qq nsis && \ - # Creating folders cd ${PROJECT_DIR} && \ echo "gta5view build version is ${APPLICATION_VERSION}" && \ @@ -12,7 +8,18 @@ mkdir -p assets && \ # Starting build cd build && \ -qmake ${QMAKE_FLAGS_QT5} ${QMAKE_BUILD_TYPE} "DEFINES+=GTA5SYNC_BUILDCODE=\\\\\\\"${PACKAGE_CODE}\\\\\\\"" "DEFINES+=GTA5SYNC_APPVER=\\\\\\\"${APPLICATION_VERSION}\\\\\\\"" "DEFINES+=GTA5SYNC_COMMIT=\\\\\\\"${APPLICATION_COMMIT}\\\\\\\"" DEFINES+=GTA5SYNC_TELEMETRY "DEFINES+=GTA5SYNC_TELEMETRY_WEBURL=\\\\\\\"https://dev.syping.de/gta5view-userstats/\\\\\\\"" DEFINES+=GTA5SYNC_QCONF DEFINES+=GTA5SYNC_INLANG='\\\"RUNDIR:SEPARATOR:lang\\\"' DEFINES+=GTA5SYNC_LANG='\\\"RUNDIR:SEPARATOR:lang\\\"' DEFINES+=GTA5SYNC_PLUG='\\\"RUNDIR:SEPARATOR:plugins\\\"' ../gta5view.pro && \ +mingw64-qt-cmake \ + ${CMAKE_BUILD_TYPE} \ + "-DGTA5VIEW_BUILDCODE=${PACKAGE_CODE}" \ + "-DGTA5VIEW_APPVER=${APPLICATION_VERSION}" \ + "-DGTA5VIEW_COMMIT=${APPLICATION_COMMIT}" \ + "-DWITH_TELEMETRY=ON" \ + "-DTELEMETRY_WEBURL=https://dev.syping.de/gta5view-userstats/" \ + "-DQCONF_BUILD=ON" \ + "-DGTA5VIEW_INLANG=RUNDIR:SEPARATOR:lang" \ + "-DGTA5VIEW_LANG=RUNDIR:SEPARATOR:lang" \ + "-DGTA5VIEW_PLUG=RUNDIR:SEPARATOR:plugins" \ + .. && \ make -j 4 && \ cd ${PROJECT_DIR}/assets && \ makensis -NOCD ${PROJECT_DIR}/.ci/gta5view.nsi && \ diff --git a/CMakeLists.txt b/CMakeLists.txt index 3232024..e2aa1e6 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -16,11 +16,25 @@ find_package(Qt5 COMPONENTS LinguistTools QUIET) if(WIN32) find_package(Qt5 COMPONENTS WinExtras REQUIRED) - list(APPEND GTA5VIEW_EXTRALIBS + list(APPEND GTA5VIEW_LIBS Qt5::WinExtras ) + list(APPEND GTA5VIEW_DEFINES + -DUNICODE + -D_UNICODE + -DWIN32 + ) + list(APPEND GTA5VIEW_RESOURCES + res/app.rc + ) endif() +list(APPEND GTA5VIEW_DEFINES + -DGTA5SYNC_CMAKE + -DGTA5SYNC_PROJECT + -DSNAPMATIC_NODEFAULT +) + set(GTA5VIEW_SOURCES main.cpp AboutDialog.cpp @@ -126,13 +140,7 @@ set(GTA5VIEW_FORMS UserInterface.ui ) -set(GTA5VIEW_DEFINES - -DGTA5SYNC_CMAKE - -DGTA5SYNC_PROJECT - -DSNAPMATIC_NODEFAULT -) - -set(GTA5VIEW_RESOURCES +list(APPEND GTA5VIEW_RESOURCES res/app.qrc res/global.qrc ) @@ -232,7 +240,7 @@ if(WITH_TELEMETRY) ) endif() if(WIN32) - list(APPEND GTA5VIEW_EXTRALIBS + list(APPEND GTA5VIEW_LIBS d3d9 ) endif() @@ -290,6 +298,22 @@ if(GTA5VIEW_COMMIT) ) endif() +if(GTA5VIEW_INLANG) + list(APPEND GTA5VIEW_DEFINES + "-DGTA5SYNC_INLANG=\"${GTA5VIEW_INLANG}\"" + ) +endif() +if(GTA5VIEW_LANG) + list(APPEND GTA5VIEW_DEFINES + "-DGTA5SYNC_LANG=\"${GTA5VIEW_LANG}\"" + ) +endif() +if(GTA5VIEW_PLUG) + list(APPEND GTA5VIEW_DEFINES + "-DGTA5SYNC_PLUG=\"${GTA5VIEW_PLUG}\"" + ) +endif() + add_executable(gta5view WIN32 MACOSX_BUNDLE ${GTA5VIEW_HEADERS} @@ -312,7 +336,7 @@ endif() target_compile_definitions(gta5view PRIVATE ${GTA5VIEW_DEFINES}) target_include_directories(gta5view PRIVATE ${GTA5VIEW_INCLUDEDIR}) -target_link_libraries(gta5view PRIVATE Qt5::Network Qt5::Svg Qt5::Widgets ${GTA5VIEW_EXTRALIBS}) +target_link_libraries(gta5view PRIVATE Qt5::Network Qt5::Svg Qt5::Widgets ${GTA5VIEW_LIBS}) install(TARGETS gta5view DESTINATION bin) install(FILES res/de.syping.gta5view.desktop DESTINATION share/applications) diff --git a/README.md b/README.md index 5068550..003894d 100644 --- a/README.md +++ b/README.md @@ -18,7 +18,7 @@ Grand Theft Auto V Savegame and Snapmatic viewer/editor docker pull sypingauto/gta5view-build:1.8-static docker run --rm -v ${PWD}:/gta5view -it sypingauto/gta5view-build:1.8-static cd /gta5view && mkdir -p build && cd build - qmake-static ../gta5view.pro + mingw64-qt-cmake ../ make -j $(nproc --all) #### Build gta5view for Debian/Ubuntu diff --git a/config.h b/config.h index 8402d44..4d8f504 100644 --- a/config.h +++ b/config.h @@ -107,19 +107,17 @@ #define GTA5SYNC_INLANG ":/tr" #endif #endif -#endif - +#else #ifndef GTA5SYNC_SHARE #define GTA5SYNC_SHARE "RUNDIR:" #endif - #ifndef GTA5SYNC_LANG #define GTA5SYNC_LANG "SHAREDDIR:SEPARATOR:lang" #endif - #ifndef GTA5SYNC_PLUG #define GTA5SYNC_PLUG "RUNDIR:SEPARATOR:plugins" #endif +#endif #ifndef GTA5SYNC_COMPILER #ifdef __clang__ diff --git a/configure b/configure deleted file mode 100755 index 27c6e97..0000000 --- a/configure +++ /dev/null @@ -1,242 +0,0 @@ -#!/usr/bin/env bash -#***************************************************************************** -# gta5view Grand Theft Auto V Profile Viewer -# Copyright (C) 2018 Syping -# -# This program is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with this program. If not, see . -#***************************************************************************** - -# Argbash generated code -die() -{ - local _ret=$2 - test -n "$_ret" || _ret=1 - test "$_PRINT_HELP" = yes && print_help >&2 - echo "$1" >&2 - exit ${_ret} -} -begins_with_short_option() -{ - local first_option all_short_options - all_short_options='h' - first_option="${1:0:1}" - test "$all_short_options" = "${all_short_options/$first_option/}" && return 1 || return 0 -} -_arg_prefix= -_arg_qmake= -_arg_telemetry_authid= -_arg_telemetry_authpw= -_arg_telemetry_pushurl= -_arg_telemetry_regurl= -_arg_telemetry_weburl= -print_help () -{ - printf '%s\n' "gta5view Configure Script" - printf 'Usage: %s [--prefix ] [--qmake ] [--telemetry-authid ] [--telemetry-authpw ] [--telemetry-pushurl ] [--telemetry-regurl ] [--telemetry-weburl ] [-h|--help]\n' "$0" - printf '\t%s\n' "-h,--help: Prints help" -} -parse_commandline () -{ - while test $# -gt 0 - do - _key="$1" - case "$_key" in - --prefix) - test $# -lt 2 && die "Missing value for the optional argument '$_key'." 1 - _arg_prefix="$2" - shift - ;; - --prefix=*) - _arg_prefix="${_key##--prefix=}" - ;; - --qmake) - test $# -lt 2 && die "Missing value for the optional argument '$_key'." 1 - _arg_qmake="$2" - shift - ;; - --qmake=*) - _arg_qmake="${_key##--qmake=}" - ;; - --telemetry-authid) - test $# -lt 2 && die "Missing value for the optional argument '$_key'." 1 - _arg_telemetry_authid="$2" - shift - ;; - --telemetry-authid=*) - _arg_telemetry_authid="${_key##--telemetry-authid=}" - ;; - --telemetry-authpw) - test $# -lt 2 && die "Missing value for the optional argument '$_key'." 1 - _arg_telemetry_authpw="$2" - shift - ;; - --telemetry-authpw=*) - _arg_telemetry_authpw="${_key##--telemetry-authpw=}" - ;; - --telemetry-pushurl) - test $# -lt 2 && die "Missing value for the optional argument '$_key'." 1 - _arg_telemetry_pushurl="$2" - shift - ;; - --telemetry-pushurl=*) - _arg_telemetry_pushurl="${_key##--telemetry-pushurl=}" - ;; - --telemetry-regurl) - test $# -lt 2 && die "Missing value for the optional argument '$_key'." 1 - _arg_telemetry_regurl="$2" - shift - ;; - --telemetry-regurl=*) - _arg_telemetry_regurl="${_key##--telemetry-regurl=}" - ;; - --telemetry-weburl) - test $# -lt 2 && die "Missing value for the optional argument '$_key'." 1 - _arg_telemetry_weburl="$2" - shift - ;; - --telemetry-weburl=*) - _arg_telemetry_weburl="${_key##--telemetry-weburl=}" - ;; - -h|--help) - print_help - exit 0 - ;; - -h*) - print_help - exit 0 - ;; - *) - _PRINT_HELP=yes die "FATAL ERROR: Got an unexpected argument '$1'" 1 - ;; - esac - shift - done -} -parse_commandline "$@" - -# Initialise bash script - Step 1 -if [ "${_arg_prefix}" != "" ]; then - PREFIX=${_arg_prefix} -fi -if [ "${_arg_qmake}" != "" ]; then - QMAKE_PATH=${_arg_qmake} -fi -if [ "${_arg_telemetry_authid}" != "" ] && [ "${_arg_telemetry_authpw}" != "" ] && [ "${_arg_telemetry_pushurl}" != "" ] && [ "${_arg_telemetry_regurl}" != "" ]; then - _telemetry_args="${_telemetry_args} DEFINES+=GTA5SYNC_TELEMETRY" - _telemetry_args="${_telemetry_args} DEFINES+=GTA5SYNC_TELEMETRY_AUTHID=\\\\\\\"${_arg_telemetry_authid}\\\\\\\"" - _telemetry_args="${_telemetry_args} DEFINES+=GTA5SYNC_TELEMETRY_AUTHPW=\\\\\\\"${_arg_telemetry_authpw}\\\\\\\"" - _telemetry_args="${_telemetry_args} DEFINES+=GTA5SYNC_TELEMETRY_PUSHURL=\\\\\\\"${_arg_telemetry_pushurl}\\\\\\\"" - _telemetry_args="${_telemetry_args} DEFINES+=GTA5SYNC_TELEMETRY_REGURL=\\\\\\\"${_arg_telemetry_regurl}\\\\\\\"" - if [ "${_arg_telemetry_weburl}" != "" ]; then - _telemetry_args="${_telemetry_args} DEFINES+=GTA5SYNC_TELEMETRY_WEBURL=\\\\\\\"${_arg_telemetry_weburl}\\\\\\\"" - fi -else - _telemetry_args= -fi - -# Initialise bash script - Step 2 -set +e -_extra_args= - -# Find Source Directory -SOURCE=${BASH_SOURCE[0]} -while [ -h "$SOURCE" ]; do - SOURCE_DIR=$(cd -P "$(dirname "$SOURCE")" && pwd) - SOURCE=$(readlink "$SOURCE") - [[ $SOURCE != /* ]] && SOURCE="${SOURCE_DIR}/${SOURCE}" -done -SOURCE_DIR=$(cd -P "$(dirname "$SOURCE")" && pwd) - -# Find Qt Installation -export QT_SELECT=qt5 -if [ -x "${QMAKE_PATH}" ]; then - QMAKE_PATH=${QMAKE_PATH} - QT_VERSION=$(${QMAKE_PATH} -query "QT_VERSION") -elif [ -x "$(command -v qmake-qt5)" ]; then - QMAKE_PATH=$(command -v qmake-qt5) - QT_VERSION=$(${QMAKE_PATH} -query "QT_VERSION") -elif [ -x "$(command -v qmake)" ]; then - QMAKE_PATH=$(command -v qmake) - QT_VERSION=$(${QMAKE_PATH} -query "QT_VERSION") -else - QMAKE_PATH=$(find /usr/ -executable -name qmake -type f 2> /dev/null | sed -n 1p) - if [ "${QMAKE_PATH}" == "" ]; then - echo "Qt qmake not found" - exit 1 - fi - QT_VERSION=$(${QMAKE_PATH} -query "QT_VERSION") -fi -echo "Found Qt ${QT_VERSION} with qmake located at ${QMAKE_PATH}" - -# Find Make Installation -if [ -x "${MAKE_PATH}" ]; then - MAKE_PATH=${MAKE_PATH} -elif [ -x "$(command -v make)" ]; then - MAKE_PATH=$(command -v make) -else - MAKE_PATH=$(find /usr/ -executable -name make -type f 2> /dev/null | sed -n 1p) - if [ "${MAKE_PATH}" == "" ]; then - echo "Make not found" - exit 1 - fi -fi - -# Clean Makefile -if [ "${RUN_MAKE_CLEAN}" != "NO" ]; then - if [ -f "Makefile" ]; then - echo "${MAKE_PATH} distclean" - ${MAKE_PATH} distclean - fi -fi - -# Set qConf -if [ "${NO_QCONF}" != "YES" ]; then - _extra_args="${_extra_args} DEFINES+=GTA5SYNC_QCONF" -fi - -# Set Prefix -if [ "${PREFIX}" != "" ]; then - _extra_args="${_extra_args} GTA5SYNC_PREFIX=${PREFIX}" -fi - -# Set Build Type -if [ "${BUILDTYPE}" == "Alpha" ]; then - _extra_args="${_extra_args} DEFINES+=GTA5SYNC_BUILDTYPE_ALPHA" -elif [ "${BUILDTYPE}" == "Beta" ]; then - _extra_args="${_extra_args} DEFINES+=GTA5SYNC_BUILDTYPE_BETA" -elif [ "${BUILDTYPE}" == "Developer" ]; then - _extra_args="${_extra_args} DEFINES+=GTA5SYNC_BUILDTYPE_DEV" -elif [ "${BUILDTYPE}" == "Daily Build" ]; then - _extra_args="${_extra_args} DEFINES+=GTA5SYNC_BUILDTYPE_DAILY" -elif [ "${BUILDTYPE}" == "Release Candidate" ]; then - _extra_args="${_extra_args} DEFINES+=GTA5SYNC_BUILDTYPE_RC" -elif [ "${BUILDTYPE}" == "Release" ]; then - _extra_args="${_extra_args} DEFINES+=GTA5SYNC_BUILDTYPE_REL" -fi - -# Add Telemetry Args -if [ "${_telemetry_args}" != "" ]; then - _extra_args="${_extra_args}${_telemetry_args}" -fi - -# Generating Makefile -echo "${QMAKE_PATH}${_extra_args} ${SOURCE_DIR}/gta5view.pro" -${QMAKE_PATH}${_extra_args} ${SOURCE_DIR}/gta5view.pro - -# Make dependencies -if [ "${RUN_MAKE_DEPEND}" == "YES" ]; then - echo "${MAKE_PATH} depend" - ${MAKE_PATH} depend -fi -exit 0 diff --git a/res/app.rc b/res/app.rc index fe8bd63..933d799 100644 --- a/res/app.rc +++ b/res/app.rc @@ -1,11 +1,8 @@ -IDI_ICON1 ICON DISCARDABLE "5sync.ico" - +IDI_ICON1 ICON DISCARDABLE "5sync.ico" #define RT_MANIFEST 24 #define CREATEPROCESS_MANIFEST_RESOURCE_ID 1 CREATEPROCESS_MANIFEST_RESOURCE_ID RT_MANIFEST "gta5view.exe.manifest" - #include - VS_VERSION_INFO VERSIONINFO FILEVERSION 1, 8, 0, 0 PRODUCTVERSION 1, 8, 0, 0