From c9f6f428ef59092f691438c7b01d6e7ec4c27b70 Mon Sep 17 00:00:00 2001 From: LoRd_MuldeR Date: Sat, 3 Oct 2020 19:28:18 +0200 Subject: [PATCH] Refactored path parameters into a separate configuration file. --- .gitignore | 1 + README.md | 1 + build.EXAMPLE.cfg | 4 ++++ build.cmd | 26 ++++++++++++++++++++++---- package.cmd | 2 +- res/common.rc | 2 +- src/head.c | 22 +++++++++++++--------- 7 files changed, 43 insertions(+), 15 deletions(-) create mode 100644 build.EXAMPLE.cfg diff --git a/.gitignore b/.gitignore index 97057f6..3d6dbeb 100644 --- a/.gitignore +++ b/.gitignore @@ -1,4 +1,5 @@ /*.html /bin +/build.cfg /obj /out diff --git a/README.md b/README.md index 4340c3b..8faa1a4 100644 --- a/README.md +++ b/README.md @@ -48,6 +48,7 @@ Launch5j executables come in a number of variants, allowing you to pick the most - [Oracle JDK (JavaSoft)](https://www.oracle.com/java/technologies/javase-downloads.html) - [AdoptOpenJDK](https://adoptopenjdk.net/) - [Liberica OpenJDK](https://bell-sw.com/) + - [Zulu OpenJDK](https://www.azul.com/downloads/zulu-community/) Regarding the different available distributions of Java, please refer to this document: [*Java Is Still Free*](https://docs.google.com/document/d/1nFGazvrCvHMZJgFstlbzoHjpAVwv5DEdnaBr_5pKuHo/preview) diff --git a/build.EXAMPLE.cfg b/build.EXAMPLE.cfg new file mode 100644 index 0000000..3631209 --- /dev/null +++ b/build.EXAMPLE.cfg @@ -0,0 +1,4 @@ +MSYS2_DIR=C:\msys64 +JAVA_HOME=C:\Program Files\BellSoft\LibericaJDK-8 +ANT_HOME=C:\Program Files (x86)\Ant +PANDOC_DIR=C:\Program Files (x86)\Pandoc diff --git a/build.cmd b/build.cmd index 4c61f68..1f5cca9 100644 --- a/build.cmd +++ b/build.cmd @@ -2,10 +2,28 @@ setlocal enabledelayedexpansion cd /d "%~dp0" -set "MSYS2_DIR=C:\msys64" -set "JAVA_HOME=C:\Java\jdk-8.0.265.01-hotspot" -set "ANT_HOME=C:\Program Files (x86)\Ant" -set "PANDOC_DIR=C:\Program Files (x86)\Pandoc" +REM ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +REM Read configuration +REM ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +set MSYS2_DIR= +set JAVA_HOME= +set ANT_HOME= +set PANDOC_DIR= + +if not exist "%~dp0.\build.cfg" ( + echo Configuration file "build.cfg" not found. Please create^^! + pause + goto:eof +) + +for /F "usebackq tokens=1,* delims==" %%a in ("%~dp0.\build.cfg") do ( + set "%%~a=%%~b" +) + +REM ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +REM Verify paths +REM ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ if not exist "%MSYS2_DIR%\msys2_shell.cmd" ( echo MSYS2 SHELL not found. Please check MSYS2_DIR and try again^^! diff --git a/package.cmd b/package.cmd index d3b6e8d..3952b6f 100644 --- a/package.cmd +++ b/package.cmd @@ -6,7 +6,7 @@ REM ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ REM Get current date REM ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -set "ISO_DATE=" +set ISO_DATE= for /F "usebackq tokens=1" %%a in (`start /WAIT /B "" "%~dp0.\etc\utils\core-utils\date.exe" +"%%Y-%%m-%%d"`) do ( set "ISO_DATE=%%a" diff --git a/res/common.rc b/res/common.rc index c271203..dfef3cb 100644 --- a/res/common.rc +++ b/res/common.rc @@ -48,7 +48,7 @@ END // Version ///////////////////////////////////////////////////////////////////////////// -#define L5J_VERSION_GLUE1(W,X,Y,Z) #W "." #X "." #Y "_r" #Z +#define L5J_VERSION_GLUE1(W,X,Y,Z) #W "." #X "." #Y " [build " #Z "]" #define L5J_VERSION_GLUE2(W,X,Y,Z) L5J_VERSION_GLUE1(W,X,Y,Z) #define L5J_VERSION_STR L5J_VERSION_GLUE2(L5J_VERSION_MAJOR,L5J_VERSION_MINOR,L5J_VERSION_PATCH,L5J_BUILDNO) diff --git a/src/head.c b/src/head.c index 0fd8c17..4a45266 100644 --- a/src/head.c +++ b/src/head.c @@ -285,21 +285,25 @@ static const wchar_t *url_encode_str(const CHAR *const input) /* System information */ /* ======================================================================== */ -typedef BOOL (WINAPI *LPFN_ISWOW64PROCESS) (HANDLE, PBOOL); +typedef BOOL (WINAPI *LPFN_ISWOW64PROCESS) (HANDLE hProcess, PBOOL wow64Process); static BOOL running_on_64bit(void) { #ifndef _M_X64 - BOOL is_wow64_flag = FALSE; - const LPFN_ISWOW64PROCESS is_wow64_process = (LPFN_ISWOW64PROCESS) GetProcAddress(GetModuleHandleW(L"kernel32"),"IsWow64Process"); - if (is_wow64_process) + const HMODULE kernel32 = GetModuleHandleW(L"kernel32"); + if (kernel32) { - if (!is_wow64_process(GetCurrentProcess(), &is_wow64_flag)) + const LPFN_ISWOW64PROCESS ptr_is_wow64_process = (LPFN_ISWOW64PROCESS) GetProcAddress(kernel32,"IsWow64Process"); + if (ptr_is_wow64_process) { - is_wow64_flag = FALSE; + BOOL is_wow64_flag = FALSE; + if (ptr_is_wow64_process(GetCurrentProcess(), &is_wow64_flag)) + { + return is_wow64_flag; + } } } - return is_wow64_flag; + return FALSE; #else return TRUE; #endif @@ -1006,8 +1010,8 @@ static const wchar_t *detect_java_runtime(const DWORD required_bitness, const UL { { 1U, L"SOFTWARE\\JavaSoft\\Java Runtime Environment" }, { 1U, L"SOFTWARE\\JavaSoft\\JRE" }, { 2U, L"SOFTWARE\\AdoptOpenJDK\\JRE" }, { 1U, L"SOFTWARE\\JavaSoft\\Java Development Kit" }, { 1U, L"SOFTWARE\\JavaSoft\\JDK" }, { 2U, L"SOFTWARE\\AdoptOpenJDK\\JDK" }, - { 3U, L"SOFTWARE\\BellSoft\\Liberica"}, - { 0U, NULL } + { 3U, L"SOFTWARE\\BellSoft\\Liberica" }, + { 3U, L"SOFTWARE\\Azul Systems\\Zulu" }, { 0U, NULL } }; const wchar_t *runtime_path = NULL;