diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index ec7ecea9d..2c3216ead 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -56,12 +56,41 @@ jobs: apt-get -y update apt-get -y install nsis makensis -VERSION + - name: Install Wine + run: | + sudo dpkg --add-architecture i386 + apt-get update + apt-get install -y --no-install-recommends wine64 + + - name: Init Wine prefix + env: + WINEPREFIX: ${{ github.workspace }}/.wine + WINEDEBUG: "-all" + run: | + mkdir -p "$WINEPREFIX" + wineboot -u + + - name: Install Resource Hacker + env: + RH_DIR: ${{ github.workspace }}/tools/resourcehacker + RH_ZIP: ${{ github.workspace }}/tools/resourcehacker.zip + RH_URL: https://www.angusj.com/resourcehacker/resource_hacker.zip + run: | + set -euxo pipefail + mkdir -p "$(dirname "$RH_ZIP")" + mkdir -p "$RH_DIR" + + wget -O "$RH_ZIP" "$RH_URL" + unzip -o "$RH_ZIP" -d "$RH_DIR" + + # find exe (sometimes it's in subfolder) + find "$RH_DIR" -maxdepth 3 -type f -iname "ResourceHacker.exe" -print - name: Set up ant run: | apt install -y -qq ant - name: Build run: | - export CICD_TEMP=${{ runner.temp }} + export CICD_TEMP=${{ github.workspace }} chmod a+x ./cicd_scripts/*.sh ./cicd_scripts/before_install.sh ./cicd_scripts/script.sh diff --git a/CHANGELOG.md b/CHANGELOG.md index 0610abba3..a099567dd 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -11,6 +11,7 @@ All notable changes to this project will be documented in this file. - Updated German translation (AI used) - Slovak translation (AI used) - APNG (animated PNG) export for frames, sprites and morphshapes +- Version info in ffdec.exe and on its splashscreen ### Fixed - [#2603] Export Sprite as SWF - sprite frames as timeline frames, without sprite itself diff --git a/README.md b/README.md index f24678fe5..30428c20f 100644 --- a/README.md +++ b/README.md @@ -60,6 +60,7 @@ For creating EXE Installer and ZIP version, there exist Ant tasks "installer","r You must configure installation path of this tool in tools.properties file, which could look like this for windows: ``` nsis.path = c:\\program files (x86)\\NSIS +reshack.path = c:\\Program Files (x86)\\Resource Hacker\\ ``` ### Building libraries diff --git a/build.xml b/build.xml index 5954e1653..673d64cd4 100644 --- a/build.xml +++ b/build.xml @@ -44,9 +44,7 @@ - - - + @@ -264,7 +262,7 @@ - + @@ -405,123 +403,8 @@ - - - - - - - - - - - - - true - gui - ${jar.filename}.jar - ${basedir}/${dist.dir}/${translator_exe.filename}.exe - - -translator - - normal - http://java.com/download - - false - false - false - - - - - ${min.java.version} - - preferJre - 64/32 - ${max.heap.size.percent} - - - ${version.number} - ${version}${version.suffix} - ${translator_product.name} - ${vendor} - ${version.number} - ${version}${version.suffix} - ${translator_product.name} - - ${translator_internal.name} - ${translator_exe.filename}.exe - - - - - - - - - - - - - - - + + @@ -539,7 +422,7 @@ tools.properties NOT found. Please create file named "tools.properties" and add two lines: nsis.path = Path to Nullsoft Install System - launch4j.path = Path to launch4j + reshack.path = Path to Resource Hacker WARNING: You must use double backslash in paths on Windows System or forward slash @@ -548,11 +431,8 @@ - - - - - + + @@ -732,7 +612,88 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/cicd_scripts/before_install.sh b/cicd_scripts/before_install.sh index 1116fa397..877fb4fe9 100644 --- a/cicd_scripts/before_install.sh +++ b/cicd_scripts/before_install.sh @@ -14,7 +14,7 @@ MAKENSIS_FULLPATH=`which makensis` MAKENSIS_PATH=`dirname "$MAKENSIS_FULLPATH"` echo "nsis.path = $MAKENSIS_PATH" > tools.properties -echo "launch4j.path = -" >> tools.properties +echo "reshack.path = $tools_dir/resourcehacker/" >> tools.properties cat tools.properties diff --git a/graphics/splash3.png b/graphics/splash3.png new file mode 100644 index 000000000..66802b9f1 Binary files /dev/null and b/graphics/splash3.png differ diff --git a/graphics/splash3.svg b/graphics/splash3.svg new file mode 100644 index 000000000..71bea8552 --- /dev/null +++ b/graphics/splash3.svg @@ -0,0 +1,677 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + image/svg+xml + + + + + + +   + + + + JPEXS + + Free + Free + + + flash decompiler + flash decompiler + + JPEXS + + + + + + + + + + + + + + + + + dec + dec + + + diff --git a/src/com/jpexs/build/ChangelogUpdater.java b/src/com/jpexs/build/ChangelogUpdater.java index bdee5b743..b66e8a8ec 100644 --- a/src/com/jpexs/build/ChangelogUpdater.java +++ b/src/com/jpexs/build/ChangelogUpdater.java @@ -1,5 +1,5 @@ /* - * Copyright (C) 2021-2026 JPEXS + * Copyright (C) 2010-2026 JPEXS * * 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 diff --git a/src/com/jpexs/build/LocaleConverter.java b/src/com/jpexs/build/LocaleConverter.java index 60c6a163e..442762a1c 100644 --- a/src/com/jpexs/build/LocaleConverter.java +++ b/src/com/jpexs/build/LocaleConverter.java @@ -1,5 +1,5 @@ /* - * Copyright (C) 2021-2026 JPEXS + * Copyright (C) 2010-2026 JPEXS * * 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 diff --git a/src/com/jpexs/build/MetainfoUpdater.java b/src/com/jpexs/build/MetainfoUpdater.java index c548f51f4..5a1790762 100644 --- a/src/com/jpexs/build/MetainfoUpdater.java +++ b/src/com/jpexs/build/MetainfoUpdater.java @@ -1,5 +1,5 @@ /* - * Copyright (C) 2023-2026 JPEXS + * Copyright (C) 2010-2026 JPEXS * * 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 diff --git a/src/com/jpexs/build/SplashScreenGenerator.java b/src/com/jpexs/build/SplashScreenGenerator.java new file mode 100644 index 000000000..e4bb73dcb --- /dev/null +++ b/src/com/jpexs/build/SplashScreenGenerator.java @@ -0,0 +1,53 @@ +/* + * Copyright (C) 2010-2026 JPEXS + * + * 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 . + */ +package com.jpexs.build; + +import com.jpexs.decompiler.flash.ApplicationInfo; +import com.jpexs.decompiler.flash.helpers.BMPFile; +import java.awt.Color; +import java.awt.Font; +import java.awt.Graphics2D; +import java.awt.RenderingHints; +import java.awt.image.BufferedImage; +import java.io.File; +import java.io.IOException; +import javax.imageio.ImageIO; + +/** + * Generates BMP splashscreen with version info for inclusion in ffdec.exe + * + * @author JPEXS + */ +public class SplashScreenGenerator { + + public static void main(String[] args) throws IOException { + BufferedImage img = ImageIO.read(new File("graphics/splash3.png")); + Graphics2D g = img.createGraphics(); + g.setColor(new Color(0, 100, 255, 128)); + g.setFont(new Font("Arial", Font.BOLD, 25)); + int sw = g.getFontMetrics().stringWidth(ApplicationInfo.version); + int x = 190; + int y = 170; + int w = 220; + int h = 25; + g.setRenderingHint(RenderingHints.KEY_RENDERING, RenderingHints.VALUE_RENDER_QUALITY); + g.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON); + g.drawString(ApplicationInfo.version, x + w / 2 - sw / 2, y + h); + + BMPFile.saveBitmap(img, new File("build/splash.bmp")); + } +} diff --git a/versioninfo.rc b/versioninfo.rc new file mode 100644 index 000000000..6379d8b3b --- /dev/null +++ b/versioninfo.rc @@ -0,0 +1,28 @@ +1 VERSIONINFO +FILEVERSION @MAJOR@,@MINOR@,@RELEASE@,@BUILD@ +PRODUCTVERSION @MAJOR@,@MINOR@,@RELEASE@,@BUILD@ +FILEOS 0x40004 +FILETYPE 0x1 +{ +BLOCK "StringFileInfo" +{ + BLOCK "000004B0" + { + VALUE "ProductName", "JPEXS Free Flash Decompiler launcher" + VALUE "FileDescription", "JPEXS Free Flash Decompiler launcher" + VALUE "ProductVersion", "@VERSION@" + VALUE "FileVersion", "@VERSION@" + VALUE "InternalName", "Launch5j" + VALUE "OriginalFilename", "ffdec.exe" + VALUE "LegalCopyright", "JPEXS" + VALUE "CompanyName", "JPEXS" + VALUE "LegalTrademarks", "JPEXS" + VALUE "Comments", "-" + } +} + +BLOCK "VarFileInfo" +{ + VALUE "Translation", 0x0000 0x04B0 +} +}