summaryrefslogtreecommitdiffstats
path: root/scripts
diff options
context:
space:
mode:
authoruntodesu <kirill@untode.su>2025-12-11 15:14:26 +0500
committeruntodesu <kirill@untode.su>2025-12-11 15:14:26 +0500
commitf40d09cb8f712e87691af4912f3630d92d692779 (patch)
tree7ac3a4168ff722689372fd489c6f94d0a2546e8f /scripts
parent8bcbd2729388edc63c82d77d314b583af1447c49 (diff)
downloadvoxelius-f40d09cb8f712e87691af4912f3630d92d692779.tar.bz2
voxelius-f40d09cb8f712e87691af4912f3630d92d692779.zip
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
Diffstat (limited to 'scripts')
-rw-r--r--scripts/build-unix-debug.sh5
-rw-r--r--scripts/build-unix-release.sh5
-rw-r--r--scripts/build-win32-debug.bat7
-rw-r--r--scripts/build-win32-release.bat7
-rw-r--r--scripts/build-win64-debug.bat7
-rw-r--r--scripts/build-win64-release.bat7
-rw-r--r--scripts/generate-thirdparty.py60
-rw-r--r--scripts/package-unix.sh5
-rw-r--r--scripts/package-win32-nsis.bat7
-rw-r--r--scripts/package-win32-zip.bat7
-rw-r--r--scripts/package-win64-nsis.bat7
-rw-r--r--scripts/package-win64-zip.bat7
12 files changed, 131 insertions, 0 deletions
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