From f40d09cb8f712e87691af4912f3630d92d692779 Mon Sep 17 00:00:00 2001 From: untodesu Date: Thu, 11 Dec 2025 15:14:26 +0500 Subject: Shuffle stuff around - Use the new and improved hierarchy I figured out when making Prospero chat - Re-add NSIS scripts, again from Prospero - Update most build and utility scripts with their most recent versions --- scripts/build-unix-debug.sh | 5 ++++ scripts/build-unix-release.sh | 5 ++++ scripts/build-win32-debug.bat | 7 +++++ scripts/build-win32-release.bat | 7 +++++ scripts/build-win64-debug.bat | 7 +++++ scripts/build-win64-release.bat | 7 +++++ scripts/generate-thirdparty.py | 60 +++++++++++++++++++++++++++++++++++++++++ scripts/package-unix.sh | 5 ++++ scripts/package-win32-nsis.bat | 7 +++++ scripts/package-win32-zip.bat | 7 +++++ scripts/package-win64-nsis.bat | 7 +++++ scripts/package-win64-zip.bat | 7 +++++ 12 files changed, 131 insertions(+) create mode 100644 scripts/build-unix-debug.sh create mode 100644 scripts/build-unix-release.sh create mode 100644 scripts/build-win32-debug.bat create mode 100644 scripts/build-win32-release.bat create mode 100644 scripts/build-win64-debug.bat create mode 100644 scripts/build-win64-release.bat create mode 100644 scripts/generate-thirdparty.py create mode 100644 scripts/package-unix.sh create mode 100644 scripts/package-win32-nsis.bat create mode 100644 scripts/package-win32-zip.bat create mode 100644 scripts/package-win64-nsis.bat create mode 100644 scripts/package-win64-zip.bat (limited to 'scripts') diff --git a/scripts/build-unix-debug.sh b/scripts/build-unix-debug.sh new file mode 100644 index 0000000..0c8387f --- /dev/null +++ b/scripts/build-unix-debug.sh @@ -0,0 +1,5 @@ +#!/bin/sh +cd "$(dirname $(dirname ${0}))" || exit 1 +cmake -B build/unix-debug -DCMAKE_BUILD_TYPE=Debug || exit 1 +cmake --build build/unix-debug --config Debug --parallel || exit 1 +exit 0 diff --git a/scripts/build-unix-release.sh b/scripts/build-unix-release.sh new file mode 100644 index 0000000..682b99b --- /dev/null +++ b/scripts/build-unix-release.sh @@ -0,0 +1,5 @@ +#!/bin/sh +cd "$(dirname $(dirname ${0}))" || exit 1 +cmake -B build/unix-release -DCMAKE_BUILD_TYPE=Release || exit 1 +cmake --build build/unix-release --config Release --parallel || exit 1 +exit 0 diff --git a/scripts/build-win32-debug.bat b/scripts/build-win32-debug.bat new file mode 100644 index 0000000..2f930f4 --- /dev/null +++ b/scripts/build-win32-debug.bat @@ -0,0 +1,7 @@ +@echo off +cd /D "%~dp0\.." +cmake -B build\win32 -A Win32 +if %errorlevel% neq 0 exit /b %errorlevel% +cmake --build build\win32 --config Debug --parallel +if %errorlevel% neq 0 exit /b %errorlevel% +if /I %0 EQU "%~dpnx0" pause diff --git a/scripts/build-win32-release.bat b/scripts/build-win32-release.bat new file mode 100644 index 0000000..fc5bf09 --- /dev/null +++ b/scripts/build-win32-release.bat @@ -0,0 +1,7 @@ +@echo off +cd /D "%~dp0\.." +cmake -B build\win32 -A Win32 +if %errorlevel% neq 0 exit /b %errorlevel% +cmake --build build\win32 --config Release --parallel +if %errorlevel% neq 0 exit /b %errorlevel% +if /I %0 EQU "%~dpnx0" pause diff --git a/scripts/build-win64-debug.bat b/scripts/build-win64-debug.bat new file mode 100644 index 0000000..c9b4f34 --- /dev/null +++ b/scripts/build-win64-debug.bat @@ -0,0 +1,7 @@ +@echo off +cd /D "%~dp0\.." +cmake -B build\win64 -A x64 +if %errorlevel% neq 0 exit /b %errorlevel% +cmake --build build\win64 --config Debug --parallel +if %errorlevel% neq 0 exit /b %errorlevel% +if /I %0 EQU "%~dpnx0" pause diff --git a/scripts/build-win64-release.bat b/scripts/build-win64-release.bat new file mode 100644 index 0000000..a2fd274 --- /dev/null +++ b/scripts/build-win64-release.bat @@ -0,0 +1,7 @@ +@echo off +cd /D "%~dp0\.." +cmake -B build\win64 -A x64 +if %errorlevel% neq 0 exit /b %errorlevel% +cmake --build build\win64 --config Release --parallel +if %errorlevel% neq 0 exit /b %errorlevel% +if /I %0 EQU "%~dpnx0" pause diff --git a/scripts/generate-thirdparty.py b/scripts/generate-thirdparty.py new file mode 100644 index 0000000..369ac19 --- /dev/null +++ b/scripts/generate-thirdparty.py @@ -0,0 +1,60 @@ +#!/usr/bin/env python3 + +import os + +# It is quite annoying to have to write all the dependency notices +# by hand, so this script goes through the dependency list and generates +# a file with all the licenses automatically during the build process + +def read_description_file(subdirectory): + description_filename = "DESCRIPTION" + description_extensions = [ "", ".txt", ".md", ".rst" ] + for extension in description_extensions: + fill_path = os.path.join(subdirectory, description_filename + extension) + if os.path.exists(fill_path): + with open(fill_path, 'r', encoding='utf-8') as file: + return file.read().rstrip().splitlines()[0] + return None + +def read_license_file(subdirectory): + license_filenames = [ "LICENSE", "COPYING", "NOTICE" ] + license_extensions = [ "", ".txt", ".md", ".rst" ] + for filename in license_filenames: + for extension in license_extensions: + fill_path = os.path.join(subdirectory, filename + extension) + if os.path.exists(fill_path): + with open(fill_path, 'r', encoding='utf-8') as file: + return file.read().rstrip() + return None + +def get_dependencies(directory): + dependencies = [] + for subdirectory in os.listdir(directory): + subdirectory_path = os.path.join(directory, subdirectory) + if os.path.isdir(subdirectory_path): + license = read_license_file(subdirectory_path) + description = read_description_file(subdirectory_path) + if description and len(description) > 80: + description = description[:77] + "..." + if license: + dependencies.append((subdirectory, license, description)) + return dependencies + +assert len(os.sys.argv) > 1, "Please provide the path to the dependencies directory." +dependencies_dir = os.sys.argv[1] +dependencies = get_dependencies(dependencies_dir) +assert len(dependencies) > 0, "No licenses found in the dependencies directory." + +with open("thirdparty.txt", 'w', encoding='utf-8') as out_file: + out_file.write("Voxelius uses third-party code for certain functions. All the\n") + out_file.write("license texts are included below using an automated script; this generated\n") + out_file.write("file is to be included in binary distributions of the project.\n\n") + + for name, license, description in dependencies: + out_file.write(f"{'=' * 80}\n") + if description and len(description) > 0: + out_file.write(f"{name} - {description}\n") + else: + out_file.write(f"{name}\n") + out_file.write(f"{'=' * 80}\n\n") + out_file.write(f"{license}\n\n\n") diff --git a/scripts/package-unix.sh b/scripts/package-unix.sh new file mode 100644 index 0000000..f2a8f42 --- /dev/null +++ b/scripts/package-unix.sh @@ -0,0 +1,5 @@ +#!/bin/sh +cd "$(dirname $(dirname ${0}))" || exit 1 +${SHELL} scripts/build-unix-release.sh || exit 1 +cpack -G ${1:-TGZ} --config build/unix-release/CPackConfig.cmake || exit 1 +exit 0 diff --git a/scripts/package-win32-nsis.bat b/scripts/package-win32-nsis.bat new file mode 100644 index 0000000..cc21a4f --- /dev/null +++ b/scripts/package-win32-nsis.bat @@ -0,0 +1,7 @@ +@echo off +cd /D "%~dp0\.." +call scripts\build-win32-release.bat +if %errorlevel% neq 0 exit /b %errorlevel% +cpack -G NSIS --config build\win32\CPackConfig.cmake +if %errorlevel% neq 0 exit /b %errorlevel% +if /I %0 EQU "%~dpnx0" pause diff --git a/scripts/package-win32-zip.bat b/scripts/package-win32-zip.bat new file mode 100644 index 0000000..4ac435f --- /dev/null +++ b/scripts/package-win32-zip.bat @@ -0,0 +1,7 @@ +@echo off +cd /D "%~dp0\.." +call scripts\build-win32-release.bat +if %errorlevel% neq 0 exit /b %errorlevel% +cpack -G ZIP --config build\win32\CPackConfig.cmake +if %errorlevel% neq 0 exit /b %errorlevel% +if /I %0 EQU "%~dpnx0" pause diff --git a/scripts/package-win64-nsis.bat b/scripts/package-win64-nsis.bat new file mode 100644 index 0000000..e4f8324 --- /dev/null +++ b/scripts/package-win64-nsis.bat @@ -0,0 +1,7 @@ +@echo off +cd /D "%~dp0\.." +call scripts\build-win64-release.bat +if %errorlevel% neq 0 exit /b %errorlevel% +cpack -G NSIS --config build\win64\CPackConfig.cmake +if %errorlevel% neq 0 exit /b %errorlevel% +if /I %0 EQU "%~dpnx0" pause diff --git a/scripts/package-win64-zip.bat b/scripts/package-win64-zip.bat new file mode 100644 index 0000000..1f9633c --- /dev/null +++ b/scripts/package-win64-zip.bat @@ -0,0 +1,7 @@ +@echo off +cd /D "%~dp0\.." +call scripts\build-win64-release.bat +if %errorlevel% neq 0 exit /b %errorlevel% +cpack -G ZIP --config build\win64\CPackConfig.cmake +if %errorlevel% neq 0 exit /b %errorlevel% +if /I %0 EQU "%~dpnx0" pause -- cgit