summaryrefslogtreecommitdiff
path: root/archived/projt-launcher/ci/eval/attrpaths.nix
diff options
context:
space:
mode:
authorMehmet Samet Duman <yongdohyun@projecttick.org>2026-04-02 18:51:45 +0300
committerMehmet Samet Duman <yongdohyun@projecttick.org>2026-04-02 18:51:45 +0300
commitd3261e64152397db2dca4d691a990c6bc2a6f4dd (patch)
treefac2f7be638651181a72453d714f0f96675c2b8b /archived/projt-launcher/ci/eval/attrpaths.nix
parent31b9a8949ed0a288143e23bf739f2eb64fdc63be (diff)
downloadProject-Tick-d3261e64152397db2dca4d691a990c6bc2a6f4dd.tar.gz
Project-Tick-d3261e64152397db2dca4d691a990c6bc2a6f4dd.zip
NOISSUE add archived projects
Signed-off-by: Mehmet Samet Duman <yongdohyun@projecttick.org>
Diffstat (limited to 'archived/projt-launcher/ci/eval/attrpaths.nix')
-rw-r--r--archived/projt-launcher/ci/eval/attrpaths.nix147
1 files changed, 147 insertions, 0 deletions
diff --git a/archived/projt-launcher/ci/eval/attrpaths.nix b/archived/projt-launcher/ci/eval/attrpaths.nix
new file mode 100644
index 0000000000..faa69817bf
--- /dev/null
+++ b/archived/projt-launcher/ci/eval/attrpaths.nix
@@ -0,0 +1,147 @@
+# =============================================================================
+# ProjT Launcher - Build Configuration Paths
+# =============================================================================
+# Lists all configurable build paths and options for the project.
+# Used by CI to validate that all configurations are buildable.
+#
+# Usage:
+# nix-instantiate --eval --strict --json ci/eval/attrpaths.nix -A names
+# =============================================================================
+
+{
+ lib ? import (path + "/lib"),
+ path ? ./../..,
+}:
+
+let
+ # Build configurations available in the project
+ buildConfigs = {
+ # Platform presets from CMakePresets.json
+ presets = [
+ "linux"
+ "windows_mingw"
+ "windows_msvc"
+ "macos_universal"
+ ];
+
+ # Build types
+ buildTypes = [
+ "Debug"
+ "Release"
+ "RelWithDebInfo"
+ "MinSizeRel"
+ ];
+
+ # Compiler options
+ compilers = {
+ linux = [
+ "gcc"
+ "clang"
+ ];
+ macos = [
+ "clang"
+ "apple-clang"
+ ];
+ windows = [
+ "msvc"
+ "mingw-gcc"
+ "clang-cl"
+ ];
+ };
+
+ # Qt versions supported
+ qtVersions = [
+ "6.6"
+ "6.7"
+ "6.8"
+ ];
+
+ # Feature flags
+ features = [
+ "LAUNCHER_ENABLE_UPDATER"
+ "LAUNCHER_FORCE_BUNDLED_LIBS"
+ "LAUNCHER_BUILD_TESTS"
+ ];
+ };
+
+ # Generate all possible build configuration paths
+ generatePaths =
+ let
+ presetPaths = map (p: [
+ "preset"
+ p
+ ]) buildConfigs.presets;
+ buildTypePaths = map (b: [
+ "buildType"
+ b
+ ]) buildConfigs.buildTypes;
+ qtPaths = map (q: [
+ "qt"
+ q
+ ]) buildConfigs.qtVersions;
+ featurePaths = map (f: [
+ "feature"
+ f
+ ]) buildConfigs.features;
+ in
+ presetPaths ++ buildTypePaths ++ qtPaths ++ featurePaths;
+
+ # Build component paths
+ componentPaths = [
+ [
+ "launcher"
+ "core"
+ ]
+ [
+ "launcher"
+ "ui"
+ ]
+ [
+ "launcher"
+ "minecraft"
+ ]
+ [
+ "launcher"
+ "modplatform"
+ ]
+ [
+ "launcher"
+ "java"
+ ]
+ [
+ "launcher"
+ "net"
+ ]
+ [
+ "rainbow"
+ ]
+ [
+ "tomlplusplus"
+ ]
+ [
+ "libnbtplusplus"
+ ]
+ [
+ "LocalPeer"
+ ]
+ [
+ "qdcss"
+ ]
+ [
+ "katabasis"
+ ]
+ ];
+
+ # All paths combined
+ paths = generatePaths ++ componentPaths;
+
+ # Convert paths to dotted names
+ names = map (p: lib.concatStringsSep "." p) paths;
+
+in
+{
+ inherit paths names;
+
+ # Export build configs for other tools
+ inherit buildConfigs;
+}