mirror of
https://github.com/Rosalie241/RMG.git
synced 2026-07-11 01:24:01 +02:00
work
This commit is contained in:
+5
-1
@@ -10,7 +10,7 @@ set(CMAKE_INSTALL_PREFIX "")
|
||||
find_package(Git REQUIRED)
|
||||
execute_process(
|
||||
COMMAND ${GIT_EXECUTABLE} describe --tags --always --dirty
|
||||
WORKING_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}"
|
||||
WORKING_DIRECTORY "${CMAKE_SOURCE_DIR}"
|
||||
OUTPUT_VARIABLE GIT_VERSION
|
||||
ERROR_QUIET
|
||||
OUTPUT_STRIP_TRAILING_WHITESPACE
|
||||
@@ -23,6 +23,10 @@ install(TARGETS RMG
|
||||
|
||||
if (WIN32)
|
||||
add_subdirectory(Source/Installer)
|
||||
|
||||
add_custom_target(bundle_dependencies
|
||||
COMMAND "${CMAKE_SOURCE_DIR}/Source/Script/BundleDependencies.sh" "${CMAKE_SOURCE_DIR}/Bin/${CMAKE_BUILD_TYPE}/rmg/RMG.exe" "${CMAKE_SOURCE_DIR}/Bin/${CMAKE_BUILD_TYPE}/rmg" "/mingw64/bin"
|
||||
)
|
||||
endif()
|
||||
|
||||
add_subdirectory(Source/3rdParty)
|
||||
|
||||
Vendored
+8
-2
@@ -88,11 +88,17 @@ ExternalProject_Add(mupen64plus-input-raphnetraw
|
||||
)
|
||||
|
||||
set(GLIDEN64_BUILD_DIR "${THIRDPARTY_DIR}/mupen64plus-video-GLideN64/projects/cmake")
|
||||
if (MSYS)
|
||||
set(GLIDEN64_LIB "${GLIDEN64_BUILD_DIR}/mupen64plus-video-GLideN64.${SO_EXT}")
|
||||
else()
|
||||
set(GLIDEN64_LIB "${GLIDEN64_BUILD_DIR}/plugin/${CMAKE_BUILD_TYPE}/mupen64plus-video-GLideN64.${SO_EXT}")
|
||||
endif()
|
||||
|
||||
ExternalProject_Add(mupen64plus-video-GLideN64
|
||||
SOURCE_DIR mupen64plus-video-GLideN64
|
||||
|
||||
GIT_REPOSITORY https://github.com/gonetz/GLideN64
|
||||
GIT_TAG 229a6bc788fe4601fbe00288fcccdedb9396340f
|
||||
GIT_TAG 1f5f9874d947bf5d10b9ef0e4f80cc6b4fa10d0d
|
||||
|
||||
INSTALL_COMMAND ""
|
||||
|
||||
@@ -102,7 +108,7 @@ ExternalProject_Add(mupen64plus-video-GLideN64
|
||||
SOURCE_SUBDIR ./src/
|
||||
BINARY_DIR ${GLIDEN64_BUILD_DIR}
|
||||
|
||||
BUILD_BYPRODUCTS ${GLIDEN64_BUILD_DIR}/plugin/${CMAKE_BUILD_TYPE}/mupen64plus-video-GLideN64.${SO_EXT}
|
||||
BUILD_BYPRODUCTS ${GLIDEN64_LIB}
|
||||
BUILD_BYPRODUCTS ${THIRDPARTY_DIR}/mupen64plus-video-GLideN64/ini/GLideN64.custom.ini
|
||||
)
|
||||
|
||||
|
||||
@@ -1,8 +1,4 @@
|
||||
#
|
||||
# InnoSetup Installer CMakeLists.txt
|
||||
#
|
||||
add_custom_target(create_installer
|
||||
WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}
|
||||
COMMENT "Creating InnoSetup Installer"
|
||||
COMMAND ISCC.exe .\\RMG.iss /DMyAppDir="${CMAKE_SOURCE_DIR}\\Bin\\${CMAKE_BUILD_TYPE}\\rmg" /DMyAppVer="${GIT_VERSION}" /DMyOutDir="${CMAKE_SOURCE_DIR}\\Bin" /DMySrcDir="${CMAKE_SOURCE_DIR}"
|
||||
)
|
||||
configure_file(create_installer.bat.in create_installer.bat)
|
||||
|
||||
@@ -47,46 +47,7 @@ Name: "english"; MessagesFile: "compiler:Default.isl"
|
||||
Name: "desktopicon"; Description: "{cm:CreateDesktopIcon}"; GroupDescription: "{cm:AdditionalIcons}"; Flags: unchecked
|
||||
|
||||
[Files]
|
||||
Source: "{#MyAppDir}\RMG.exe"; DestDir: "{app}"; Flags: ignoreversion
|
||||
Source: "{#MyAppDir}\Config\stylesheet.qss"; DestDir: "{app}\Config"; Flags: ignoreversion
|
||||
Source: "{#MyAppDir}\Core\*"; DestDir: "{app}\Core"; Flags: ignoreversion recursesubdirs createallsubdirs
|
||||
Source: "{#MyAppDir}\Data\*"; DestDir: "{app}\Data"; Flags: ignoreversion recursesubdirs createallsubdirs
|
||||
Source: "{#MyAppDir}\iconengines\*"; DestDir: "{app}\iconengines"; Flags: ignoreversion recursesubdirs createallsubdirs
|
||||
Source: "{#MyAppDir}\imageformats\*"; DestDir: "{app}\imageformats"; Flags: ignoreversion recursesubdirs createallsubdirs
|
||||
Source: "{#MyAppDir}\platforms\*"; DestDir: "{app}\platforms"; Flags: ignoreversion recursesubdirs createallsubdirs
|
||||
Source: "{#MyAppDir}\Plugin\*"; DestDir: "{app}\Plugin"; Flags: ignoreversion recursesubdirs createallsubdirs
|
||||
Source: "{#MyAppDir}\styles\*"; DestDir: "{app}\styles"; Flags: ignoreversion recursesubdirs createallsubdirs
|
||||
Source: "{#MyAppDir}\translations\*"; DestDir: "{app}\translations"; Flags: ignoreversion recursesubdirs createallsubdirs
|
||||
Source: "{#MyAppDir}\libbrotlicommon.dll"; DestDir: "{app}"; Flags: ignoreversion
|
||||
Source: "{#MyAppDir}\libbrotlidec.dll"; DestDir: "{app}"; Flags: ignoreversion
|
||||
Source: "{#MyAppDir}\libbz2-1.dll"; DestDir: "{app}"; Flags: ignoreversion
|
||||
Source: "{#MyAppDir}\libdouble-conversion.dll"; DestDir: "{app}"; Flags: ignoreversion
|
||||
Source: "{#MyAppDir}\libfreetype-6.dll"; DestDir: "{app}"; Flags: ignoreversion
|
||||
Source: "{#MyAppDir}\libgcc_s_seh-1.dll"; DestDir: "{app}"; Flags: ignoreversion
|
||||
Source: "{#MyAppDir}\libglib-2.0-0.dll"; DestDir: "{app}"; Flags: ignoreversion
|
||||
Source: "{#MyAppDir}\libgraphite2.dll"; DestDir: "{app}"; Flags: ignoreversion
|
||||
Source: "{#MyAppDir}\libharfbuzz-0.dll"; DestDir: "{app}"; Flags: ignoreversion
|
||||
Source: "{#MyAppDir}\libhidapi-0.dll"; DestDir: "{app}"; Flags: ignoreversion
|
||||
Source: "{#MyAppDir}\libiconv-2.dll"; DestDir: "{app}"; Flags: ignoreversion
|
||||
Source: "{#MyAppDir}\libicudt67.dll"; DestDir: "{app}"; Flags: ignoreversion
|
||||
Source: "{#MyAppDir}\libicuin67.dll"; DestDir: "{app}"; Flags: ignoreversion
|
||||
Source: "{#MyAppDir}\libicuuc67.dll"; DestDir: "{app}"; Flags: ignoreversion
|
||||
Source: "{#MyAppDir}\libintl-8.dll"; DestDir: "{app}"; Flags: ignoreversion
|
||||
Source: "{#MyAppDir}\libminizip-1.dll"; DestDir: "{app}"; Flags: ignoreversion
|
||||
Source: "{#MyAppDir}\libpcre-1.dll"; DestDir: "{app}"; Flags: ignoreversion
|
||||
Source: "{#MyAppDir}\libpcre2-16-0.dll"; DestDir: "{app}"; Flags: ignoreversion
|
||||
Source: "{#MyAppDir}\libpng16-16.dll"; DestDir: "{app}"; Flags: ignoreversion
|
||||
Source: "{#MyAppDir}\libsamplerate-0.dll"; DestDir: "{app}"; Flags: ignoreversion
|
||||
Source: "{#MyAppDir}\libspeexdsp-1.dll"; DestDir: "{app}"; Flags: ignoreversion
|
||||
Source: "{#MyAppDir}\libstdc++-6.dll"; DestDir: "{app}"; Flags: ignoreversion
|
||||
Source: "{#MyAppDir}\libwinpthread-1.dll"; DestDir: "{app}"; Flags: ignoreversion
|
||||
Source: "{#MyAppDir}\libzstd.dll"; DestDir: "{app}"; Flags: ignoreversion
|
||||
Source: "{#MyAppDir}\Qt5Core.dll"; DestDir: "{app}"; Flags: ignoreversion
|
||||
Source: "{#MyAppDir}\Qt5Gui.dll"; DestDir: "{app}"; Flags: ignoreversion
|
||||
Source: "{#MyAppDir}\Qt5Svg.dll"; DestDir: "{app}"; Flags: ignoreversion
|
||||
Source: "{#MyAppDir}\Qt5Widgets.dll"; DestDir: "{app}"; Flags: ignoreversion
|
||||
Source: "{#MyAppDir}\SDL2.dll"; DestDir: "{app}"; Flags: ignoreversion
|
||||
Source: "{#MyAppDir}\zlib1.dll"; DestDir: "{app}"; Flags: ignoreversion
|
||||
Source: "{#MyAppDir}\*"; DestDir: "{app}"; Flags: ignoreversion recursesubdirs createallsubdirs
|
||||
; NOTE: Don't use "Flags: ignoreversion" on any shared system files
|
||||
|
||||
[Icons]
|
||||
|
||||
@@ -0,0 +1,6 @@
|
||||
ISCC.exe ^
|
||||
".\Source\Installer\RMG.iss" ^
|
||||
"/DMyAppDir=..\..\Bin\${CMAKE_BUILD_TYPE}\rmg" ^
|
||||
"/DMyAppVer=${GIT_VERSION}" ^
|
||||
"/DMyOutDir=..\..\Bin" ^
|
||||
"/DMySrcDir=..\..\"
|
||||
+12
-1
@@ -6,14 +6,25 @@ toplvl_dir="$(realpath "$script_dir/../../")"
|
||||
build_dir="$toplvl_dir/Build"
|
||||
build_config="${1:-Debug}"
|
||||
install_dir="$toplvl_dir/Bin/$build_config"
|
||||
generator="${2:-Unix Makefiles}"
|
||||
|
||||
mkdir -p "$build_dir"
|
||||
|
||||
pushd "$build_dir"
|
||||
|
||||
cmake -S "$toplvl_dir" -B "$build_dir" -DCMAKE_BUILD_TYPE="$build_config"
|
||||
if [[ $(uname -s) = *MINGW64* ]]
|
||||
then
|
||||
generator="MSYS Makefiles"
|
||||
fi
|
||||
|
||||
cmake -S "$toplvl_dir" -B "$build_dir" -DCMAKE_BUILD_TYPE="$build_config" -G "$generator"
|
||||
make -j6
|
||||
|
||||
make install DESTDIR="$install_dir"
|
||||
|
||||
if [[ $(uname -s) = *MINGW64* ]]
|
||||
then
|
||||
make bundle_dependencies
|
||||
fi
|
||||
|
||||
popd
|
||||
|
||||
@@ -0,0 +1,42 @@
|
||||
#!/usr/bin/env bash
|
||||
#
|
||||
# ./BundleDependencies.sh "./Bin/Release/rmg/RMG.exe" "./Bin/Release/rmg" "/mingw64/bin"
|
||||
#
|
||||
set -e
|
||||
|
||||
exe="$1"
|
||||
bin_dir="$2"
|
||||
path="$3"
|
||||
|
||||
function copyForOBJ() {
|
||||
local deps=`objdump.exe -p $1 | grep 'DLL Name:' | sed -e "s/\t*DLL Name: //g"`
|
||||
while read -r line
|
||||
do
|
||||
findAndCopyDLL $line
|
||||
done <<< "$deps"
|
||||
}
|
||||
|
||||
function findAndCopyDLL() {
|
||||
local file="$path/$1"
|
||||
|
||||
if [ -f $file ] && [ ! -f "$bin_dir/$1" ]
|
||||
then
|
||||
cp "$file" "$bin_dir"
|
||||
copyForOBJ $file
|
||||
return 0
|
||||
fi
|
||||
|
||||
return 0
|
||||
}
|
||||
|
||||
|
||||
for ext in dll exe
|
||||
do
|
||||
while read -r file_line
|
||||
do
|
||||
echo "=> Copying dependencies for $file_line"
|
||||
copyForOBJ "$file_line"
|
||||
done < <(find "$bin_dir" -name "*.$ext")
|
||||
done
|
||||
|
||||
windeployqt "$exe"
|
||||
Reference in New Issue
Block a user