CMake build improved and does now Windows build

1.8.x
Syping 2 years ago
parent 39436a6dbf
commit 4e5592566a
  1. 11
      .ci/debian_build.sh
  2. 18
      .ci/gta5view.nsi
  3. 11
      .ci/windows_build.sh
  4. 17
      .ci/wininstall_build.sh
  5. 44
      CMakeLists.txt
  6. 2
      README.md
  7. 6
      config.h
  8. 242
      configure
  9. 5
      res/app.rc

@ -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 \<dpkg@syping.de\>" --requires=libqt5core5a,libqt5gui5,libqt5network5,libqt5svg5,libqt5widgets5,qttranslations5-l10n --conflicts=gta5view,gta5view-qt4 --replaces=gta5view,gta5view-qt4 --pakdir=${PROJECT_DIR}/assets && \
cd .. && \

@ -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"

@ -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

@ -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 && \

@ -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)

@ -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

@ -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__

242
configure vendored

@ -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 <http://www.gnu.org/licenses/>.
#*****************************************************************************
# 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 <arg>] [--qmake <arg>] [--telemetry-authid <arg>] [--telemetry-authpw <arg>] [--telemetry-pushurl <arg>] [--telemetry-regurl <arg>] [--telemetry-weburl <arg>] [-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

@ -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 <windows.h>
VS_VERSION_INFO VERSIONINFO
FILEVERSION 1, 8, 0, 0
PRODUCTVERSION 1, 8, 0, 0

Loading…
Cancel
Save