mirror of
https://github.com/ihhub/fheroes2.git
synced 2026-10-11 21:59:51 +00:00
Implement the infrastructure for bundling FH2M maps (#9806)
This commit is contained in:
@@ -27,6 +27,7 @@ jobs:
|
|||||||
./docs/README.txt
|
./docs/README.txt
|
||||||
files/data/*.h2d
|
files/data/*.h2d
|
||||||
files/lang/*.mo
|
files/lang/*.mo
|
||||||
|
maps/*.fh2m
|
||||||
./script/demo/download_demo_version.sh
|
./script/demo/download_demo_version.sh
|
||||||
./script/homm2/extract_homm2_resources.sh
|
./script/homm2/extract_homm2_resources.sh
|
||||||
script/linux/install_sdl2.sh
|
script/linux/install_sdl2.sh
|
||||||
@@ -71,6 +72,7 @@ jobs:
|
|||||||
./docs/README.txt
|
./docs/README.txt
|
||||||
files/data/*.h2d
|
files/data/*.h2d
|
||||||
files/lang/*.mo
|
files/lang/*.mo
|
||||||
|
maps/*.fh2m
|
||||||
./script/demo/download_demo_version.sh
|
./script/demo/download_demo_version.sh
|
||||||
./script/homm2/extract_homm2_resources.sh
|
./script/homm2/extract_homm2_resources.sh
|
||||||
script/linux/install_sdl2.sh
|
script/linux/install_sdl2.sh
|
||||||
@@ -115,6 +117,7 @@ jobs:
|
|||||||
./docs/README.txt
|
./docs/README.txt
|
||||||
files/data/*.h2d
|
files/data/*.h2d
|
||||||
files/lang/*.mo
|
files/lang/*.mo
|
||||||
|
maps/*.fh2m
|
||||||
./script/demo/download_demo_version.sh
|
./script/demo/download_demo_version.sh
|
||||||
./script/homm2/extract_homm2_resources.sh
|
./script/homm2/extract_homm2_resources.sh
|
||||||
script/macos/Brewfile
|
script/macos/Brewfile
|
||||||
@@ -253,7 +256,7 @@ jobs:
|
|||||||
fi
|
fi
|
||||||
- name: Create package
|
- name: Create package
|
||||||
run: |
|
run: |
|
||||||
# Translations and H2D files are already included in fheroes2.vpk
|
# Translations, H2D files and FH2M maps are already bundled into fheroes2.vpk
|
||||||
7z a -bb1 -tzip -- fheroes2_psv.zip LICENSE changelog.txt fheroes2.vpk ./docs/README.txt ./docs/README_PSV.md
|
7z a -bb1 -tzip -- fheroes2_psv.zip LICENSE changelog.txt fheroes2.vpk ./docs/README.txt ./docs/README_PSV.md
|
||||||
- uses: actions/upload-artifact@v4
|
- uses: actions/upload-artifact@v4
|
||||||
if: ${{ github.event_name == 'pull_request' }}
|
if: ${{ github.event_name == 'pull_request' }}
|
||||||
@@ -299,7 +302,7 @@ jobs:
|
|||||||
make -C files/lang -j "$(nproc)"
|
make -C files/lang -j "$(nproc)"
|
||||||
- name: Create package
|
- name: Create package
|
||||||
run: |
|
run: |
|
||||||
7z a -bb1 -tzip -- fheroes2_switch.zip LICENSE changelog.txt fheroes2.nro ./docs/README.txt ./docs/README_switch.md files/data/*.h2d files/lang/*.mo
|
7z a -bb1 -tzip -- fheroes2_switch.zip LICENSE changelog.txt fheroes2.nro ./docs/README.txt ./docs/README_switch.md files/data/*.h2d files/lang/*.mo maps/*.fh2m
|
||||||
- uses: actions/upload-artifact@v4
|
- uses: actions/upload-artifact@v4
|
||||||
if: ${{ github.event_name == 'pull_request' }}
|
if: ${{ github.event_name == 'pull_request' }}
|
||||||
with:
|
with:
|
||||||
@@ -356,7 +359,7 @@ jobs:
|
|||||||
- name: Create package
|
- name: Create package
|
||||||
if: ${{ contains( matrix.on, github.event_name ) }}
|
if: ${{ contains( matrix.on, github.event_name ) }}
|
||||||
run: |
|
run: |
|
||||||
# Translations and H2D files are already included in fheroes2.data
|
# Translations, H2D files and FH2M maps are already bundled into fheroes2.data
|
||||||
7z a -bb1 -tzip -- ${{ matrix.package_name }} LICENSE changelog.txt fheroes2.data fheroes2.js fheroes2.wasm ./docs/README.txt ./files/emscripten/*
|
7z a -bb1 -tzip -- ${{ matrix.package_name }} LICENSE changelog.txt fheroes2.data fheroes2.js fheroes2.wasm ./docs/README.txt ./files/emscripten/*
|
||||||
- uses: actions/upload-artifact@v4
|
- uses: actions/upload-artifact@v4
|
||||||
if: ${{ contains( matrix.on, github.event_name ) }}
|
if: ${{ contains( matrix.on, github.event_name ) }}
|
||||||
|
|||||||
@@ -99,6 +99,7 @@ jobs:
|
|||||||
files\\data\\*.h2d \
|
files\\data\\*.h2d \
|
||||||
files\\lang\\*.mo \
|
files\\lang\\*.mo \
|
||||||
files\\timidity\\* \
|
files\\timidity\\* \
|
||||||
|
maps\\*.fh2m \
|
||||||
.\\script\\demo\\*.bat \
|
.\\script\\demo\\*.bat \
|
||||||
.\\script\\demo\\*.ps1 \
|
.\\script\\demo\\*.ps1 \
|
||||||
.\\script\\homm2\\*.bat \
|
.\\script\\homm2\\*.bat \
|
||||||
|
|||||||
+15
-1
@@ -88,6 +88,14 @@ endif(NOT WIN32)
|
|||||||
# macOS app bundle
|
# macOS app bundle
|
||||||
#
|
#
|
||||||
if(MACOS_APP_BUNDLE)
|
if(MACOS_APP_BUNDLE)
|
||||||
|
add_custom_target(
|
||||||
|
app_bundle_fh2m_maps
|
||||||
|
ALL
|
||||||
|
COMMAND mkdir -p ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/${PROJECT_NAME}.app/Contents/Resources/maps
|
||||||
|
COMMAND cp *.fh2m ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/${PROJECT_NAME}.app/Contents/Resources/maps
|
||||||
|
DEPENDS fheroes2
|
||||||
|
WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}/maps
|
||||||
|
)
|
||||||
add_custom_target(
|
add_custom_target(
|
||||||
app_bundle_h2d_files
|
app_bundle_h2d_files
|
||||||
ALL
|
ALL
|
||||||
@@ -108,7 +116,7 @@ if(MACOS_APP_BUNDLE)
|
|||||||
run_dylibbundler
|
run_dylibbundler
|
||||||
ALL
|
ALL
|
||||||
COMMAND dylibbundler -od -b -x ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/${PROJECT_NAME}.app/Contents/MacOS/${PROJECT_NAME} -d ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/${PROJECT_NAME}.app/Contents/libs
|
COMMAND dylibbundler -od -b -x ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/${PROJECT_NAME}.app/Contents/MacOS/${PROJECT_NAME} -d ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/${PROJECT_NAME}.app/Contents/libs
|
||||||
DEPENDS fheroes2 app_bundle_h2d_files app_bundle_translations
|
DEPENDS fheroes2 app_bundle_fh2m_maps app_bundle_h2d_files app_bundle_translations
|
||||||
WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}
|
WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}
|
||||||
)
|
)
|
||||||
endif(MACOS_APP_BUNDLE)
|
endif(MACOS_APP_BUNDLE)
|
||||||
@@ -123,6 +131,12 @@ if(NOT MACOS_APP_BUNDLE)
|
|||||||
FILES_MATCHING
|
FILES_MATCHING
|
||||||
PATTERN *.h2d
|
PATTERN *.h2d
|
||||||
)
|
)
|
||||||
|
install(
|
||||||
|
DIRECTORY maps/
|
||||||
|
DESTINATION ${FHEROES2_DATA}/maps
|
||||||
|
FILES_MATCHING
|
||||||
|
PATTERN *.fh2m
|
||||||
|
)
|
||||||
install(
|
install(
|
||||||
FILES docs/README.txt LICENSE changelog.txt
|
FILES docs/README.txt LICENSE changelog.txt
|
||||||
DESTINATION ${CMAKE_INSTALL_DOCDIR}
|
DESTINATION ${CMAKE_INSTALL_DOCDIR}
|
||||||
|
|||||||
@@ -39,19 +39,21 @@ all:
|
|||||||
$(MAKE) -C src/dist
|
$(MAKE) -C src/dist
|
||||||
$(MAKE) -C files/lang
|
$(MAKE) -C files/lang
|
||||||
ifdef FHEROES2_MACOS_APP_BUNDLE
|
ifdef FHEROES2_MACOS_APP_BUNDLE
|
||||||
mkdir -p fheroes2.app/Contents/Resources/translations
|
|
||||||
mkdir -p fheroes2.app/Contents/Resources/h2d
|
|
||||||
mkdir -p fheroes2.app/Contents/MacOS
|
mkdir -p fheroes2.app/Contents/MacOS
|
||||||
cp src/resources/fheroes2.icns fheroes2.app/Contents/Resources
|
mkdir -p fheroes2.app/Contents/Resources/h2d
|
||||||
cp files/lang/*.mo fheroes2.app/Contents/Resources/translations
|
mkdir -p fheroes2.app/Contents/Resources/maps
|
||||||
|
mkdir -p fheroes2.app/Contents/Resources/translations
|
||||||
cp files/data/*.h2d fheroes2.app/Contents/Resources/h2d
|
cp files/data/*.h2d fheroes2.app/Contents/Resources/h2d
|
||||||
|
cp files/lang/*.mo fheroes2.app/Contents/Resources/translations
|
||||||
|
cp maps/*.fh2m fheroes2.app/Contents/Resources/maps
|
||||||
|
cp src/dist/fheroes2/fheroes2 fheroes2.app/Contents/MacOS
|
||||||
|
cp src/resources/fheroes2.icns fheroes2.app/Contents/Resources
|
||||||
sed -e "s/\$${MACOSX_BUNDLE_BUNDLE_NAME}/$(PROJECT_NAME)/" \
|
sed -e "s/\$${MACOSX_BUNDLE_BUNDLE_NAME}/$(PROJECT_NAME)/" \
|
||||||
-e "s/\$${MACOSX_BUNDLE_BUNDLE_VERSION}/$(PROJECT_VERSION)/" \
|
-e "s/\$${MACOSX_BUNDLE_BUNDLE_VERSION}/$(PROJECT_VERSION)/" \
|
||||||
-e "s/\$${MACOSX_BUNDLE_EXECUTABLE_NAME}/fheroes2/" \
|
-e "s/\$${MACOSX_BUNDLE_EXECUTABLE_NAME}/fheroes2/" \
|
||||||
-e "s/\$${MACOSX_BUNDLE_GUI_IDENTIFIER}/org.fheroes2.$(PROJECT_NAME)/" \
|
-e "s/\$${MACOSX_BUNDLE_GUI_IDENTIFIER}/org.fheroes2.$(PROJECT_NAME)/" \
|
||||||
-e "s/\$${MACOSX_BUNDLE_ICON_FILE}/fheroes2.icns/" \
|
-e "s/\$${MACOSX_BUNDLE_ICON_FILE}/fheroes2.icns/" \
|
||||||
-e "s/\$${MACOSX_BUNDLE_SHORT_VERSION_STRING}/$(PROJECT_VERSION)/" src/resources/Info.plist.in > fheroes2.app/Contents/Info.plist
|
-e "s/\$${MACOSX_BUNDLE_SHORT_VERSION_STRING}/$(PROJECT_VERSION)/" src/resources/Info.plist.in > fheroes2.app/Contents/Info.plist
|
||||||
cp src/dist/fheroes2/fheroes2 fheroes2.app/Contents/MacOS
|
|
||||||
dylibbundler -od -b -x fheroes2.app/Contents/MacOS/fheroes2 -d fheroes2.app/Contents/libs
|
dylibbundler -od -b -x fheroes2.app/Contents/MacOS/fheroes2 -d fheroes2.app/Contents/libs
|
||||||
else
|
else
|
||||||
cp src/dist/fheroes2/fheroes2 .
|
cp src/dist/fheroes2/fheroes2 .
|
||||||
|
|||||||
+4
-9
@@ -36,19 +36,14 @@ all: fheroes2.vpk
|
|||||||
|
|
||||||
fheroes2.vpk: eboot.bin param.sfo translations
|
fheroes2.vpk: eboot.bin param.sfo translations
|
||||||
vita-pack-vpk -s param.sfo -b eboot.bin \
|
vita-pack-vpk -s param.sfo -b eboot.bin \
|
||||||
--add files/images/platform/psv/sce_sys/icon0.png=sce_sys/icon0.png \
|
--add files/images/platform/psv/sce_sys=sce_sys \
|
||||||
--add files/images/platform/psv/sce_sys/livearea/contents/bg.png=sce_sys/livearea/contents/bg.png \
|
$(shell find files/data -name "*.h2d" -exec printf "--add %q=%q\n" {} {} \;) \
|
||||||
--add files/images/platform/psv/sce_sys/livearea/contents/startup.png=sce_sys/livearea/contents/startup.png \
|
$(shell find files/lang -name "*.mo" -exec printf "--add %q=%q\n" {} {} \;) \
|
||||||
--add files/images/platform/psv/sce_sys/livearea/contents/template.xml=sce_sys/livearea/contents/template.xml \
|
$(shell find maps -name "*.fh2m" -exec printf "--add %q=%q\n" {} {} \;) \
|
||||||
--add files/data=files/data \
|
|
||||||
--add files/lang/vita_temp=files/lang \
|
|
||||||
fheroes2.vpk
|
fheroes2.vpk
|
||||||
rm -rf files/lang/vita_temp
|
|
||||||
|
|
||||||
translations: fheroes2.elf
|
translations: fheroes2.elf
|
||||||
$(MAKE) -C files/lang
|
$(MAKE) -C files/lang
|
||||||
mkdir -p files/lang/vita_temp
|
|
||||||
cp files/lang/*.mo files/lang/vita_temp
|
|
||||||
|
|
||||||
eboot.bin: fheroes2.velf
|
eboot.bin: fheroes2.velf
|
||||||
vita-make-fself fheroes2.velf eboot.bin
|
vita-make-fself fheroes2.velf eboot.bin
|
||||||
|
|||||||
@@ -2,7 +2,7 @@
|
|||||||
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||||
<ItemDefinitionGroup>
|
<ItemDefinitionGroup>
|
||||||
<ClCompile>
|
<ClCompile>
|
||||||
<AdditionalIncludeDirectories>src\engine;src\fheroes2\gui;src\fheroes2\maps;src\fheroes2\kingdom;src\fheroes2\campaign;src\fheroes2\game;src\fheroes2\editor;src\fheroes2\dialog;src\fheroes2\system;src\fheroes2\spell;src\fheroes2\monster;src\fheroes2\castle;src\fheroes2\agg;src\fheroes2\heroes;src\fheroes2\resource;src\fheroes2\ai;src\fheroes2\army;src\fheroes2\battle;src\fheroes2\h2d;src\fheroes2\objects;src\fheroes2\world;src\fheroes2\audio;src\fheroes2\image;src\thirdparty\libsmacker;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
<AdditionalIncludeDirectories>src\engine;src\fheroes2\agg;src\fheroes2\ai;src\fheroes2\army;src\fheroes2\audio;src\fheroes2\battle;src\fheroes2\campaign;src\fheroes2\castle;src\fheroes2\dialog;src\fheroes2\editor;src\fheroes2\game;src\fheroes2\gui;src\fheroes2\h2d;src\fheroes2\heroes;src\fheroes2\image;src\fheroes2\kingdom;src\fheroes2\maps;src\fheroes2\monster;src\fheroes2\resource;src\fheroes2\spell;src\fheroes2\system;src\fheroes2\world;src\thirdparty\libsmacker;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||||
<PreprocessorDefinitions Condition="'$(FHEROES2_BUILD_NUMBER)'!=''">BUILD_VERSION=$(FHEROES2_BUILD_NUMBER);%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
<PreprocessorDefinitions Condition="'$(FHEROES2_BUILD_NUMBER)'!=''">BUILD_VERSION=$(FHEROES2_BUILD_NUMBER);%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
<Manifest>
|
<Manifest>
|
||||||
|
|||||||
@@ -95,6 +95,13 @@ dependencies {
|
|||||||
implementation 'com.google.android.material:material:1.12.0'
|
implementation 'com.google.android.material:material:1.12.0'
|
||||||
}
|
}
|
||||||
|
|
||||||
|
tasks.register('copyFH2M', Copy) {
|
||||||
|
from('../../maps') {
|
||||||
|
include '*.fh2m'
|
||||||
|
}
|
||||||
|
into 'src/main/assets/maps'
|
||||||
|
}
|
||||||
|
|
||||||
tasks.register('copyH2D', Copy) {
|
tasks.register('copyH2D', Copy) {
|
||||||
from('../../files/data') {
|
from('../../files/data') {
|
||||||
include '*.h2d'
|
include '*.h2d'
|
||||||
@@ -118,7 +125,7 @@ tasks.register('copyTranslations', Copy) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
tasks.register('generateAssetsDigest') {
|
tasks.register('generateAssetsDigest') {
|
||||||
dependsOn copyH2D, copyTimidity, copyTranslations
|
dependsOn copyFH2M, copyH2D, copyTimidity, copyTranslations
|
||||||
|
|
||||||
doLast {
|
doLast {
|
||||||
final java.nio.file.Path assetsDirPath = layout.projectDirectory.getAsFile()
|
final java.nio.file.Path assetsDirPath = layout.projectDirectory.getAsFile()
|
||||||
|
|||||||
@@ -48,6 +48,7 @@ public final class GameActivity extends SDLActivity
|
|||||||
if ( isAssetsDigestChanged( "assets.digest", new File( filesDir, "assets.digest" ) ) ) {
|
if ( isAssetsDigestChanged( "assets.digest", new File( filesDir, "assets.digest" ) ) ) {
|
||||||
try {
|
try {
|
||||||
extractAssets( "files", externalFilesDir );
|
extractAssets( "files", externalFilesDir );
|
||||||
|
extractAssets( "maps", externalFilesDir );
|
||||||
// Digest should be updated only after successful extraction of all assets
|
// Digest should be updated only after successful extraction of all assets
|
||||||
extractAssets( "assets.digest", filesDir );
|
extractAssets( "assets.digest", filesDir );
|
||||||
}
|
}
|
||||||
|
|||||||
Binary file not shown.
@@ -31,6 +31,7 @@ Source: "..\..\docs\README.txt"; DestDir: "{app}"
|
|||||||
Source: "..\..\files\data\*.h2d"; DestDir: "{app}\files\data"
|
Source: "..\..\files\data\*.h2d"; DestDir: "{app}\files\data"
|
||||||
Source: "..\..\files\lang\*.mo"; DestDir: "{app}\files\lang"
|
Source: "..\..\files\lang\*.mo"; DestDir: "{app}\files\lang"
|
||||||
Source: "..\..\files\timidity\*"; DestDir: "{app}\files\timidity"; Flags: recursesubdirs
|
Source: "..\..\files\timidity\*"; DestDir: "{app}\files\timidity"; Flags: recursesubdirs
|
||||||
|
Source: "..\..\maps\*.fh2m"; DestDir: "{app}\maps"
|
||||||
Source: "..\demo\*.bat"; DestDir: "{app}"
|
Source: "..\demo\*.bat"; DestDir: "{app}"
|
||||||
Source: "..\demo\*.ps1"; DestDir: "{app}"
|
Source: "..\demo\*.ps1"; DestDir: "{app}"
|
||||||
Source: "..\homm2\*.bat"; DestDir: "{app}"
|
Source: "..\homm2\*.bat"; DestDir: "{app}"
|
||||||
|
|||||||
Vendored
+5
-3
@@ -30,9 +30,11 @@ CCFLAGS := $(CCFLAGS) \
|
|||||||
-sSTRICT
|
-sSTRICT
|
||||||
|
|
||||||
LDFLAGS := $(LDFLAGS) \
|
LDFLAGS := $(LDFLAGS) \
|
||||||
--preload-file ../../../files/data/resurrection.h2d@/files/data/resurrection.h2d \
|
$(patsubst %, --preload-file ../%@/files/data/, $(wildcard ../../files/data/*.h2d)) \
|
||||||
--preload-file ../../../files/lang/@/files/lang/ \
|
$(patsubst %, --preload-file ../%@/files/lang/, $(wildcard ../../files/lang/*.mo)) \
|
||||||
--preload-file ../../../files/timidity/@/files/timidity/ \
|
--preload-file ../../../files/timidity/timidity.cfg@/files/timidity/ \
|
||||||
|
$(patsubst %, --preload-file ../%@/files/timidity/instruments/, $(wildcard ../../files/timidity/instruments/*.pat)) \
|
||||||
|
$(patsubst %, --preload-file ../%@/maps/, $(wildcard ../../maps/*.fh2m)) \
|
||||||
-sALLOW_MEMORY_GROWTH \
|
-sALLOW_MEMORY_GROWTH \
|
||||||
-sASYNCIFY \
|
-sASYNCIFY \
|
||||||
-sASYNCIFY_STACK_SIZE=64kb \
|
-sASYNCIFY_STACK_SIZE=64kb \
|
||||||
|
|||||||
Reference in New Issue
Block a user