diff --git a/nix/README.md b/nix/README.md index dcfedcd..9010adb 100644 --- a/nix/README.md +++ b/nix/README.md @@ -5,18 +5,17 @@ The Nix configuration builds nim-sds by calling nimble tasks directly (no Makefi ## Architecture ``` -flake.nix — Entry point, defines packages and dev shell +flake.nix — Entry point, defines packages, dev shell, and utility apps ├── nix/default.nix — Build derivation: configures env, runs nim sds.nims ├── nix/shell.nix — Dev shell: sets up NIMBLE_DIR, nimble-links, NIM_LIB_DIR └── nix/tools.nix — Helper: extracts version from sds.nimble ``` -The `nimbusBuildSystem` flake input is used **only** for its pinned Nim compiler. +The Nim compiler comes from nixpkgs (pinned to 24.11, Nim 2.2.4). All build logic lives in `sds.nimble` (nimble tasks). ## Shell -A development shell can be started using: ```sh nix develop '.?submodules=1' ``` @@ -34,15 +33,10 @@ nix build '.?submodules=1#libsds-android-arm64' ``` The `?submodules=1` part is required because vendored dependencies are git submodules. -For more details see: https://github.com/NixOS/nix/issues/4423 -## Testing +## Utility apps ```sh -nix flake check '.?submodules=1' -``` - -Or inside the dev shell: -```sh -nimble test +nix run '.#setup' # Initialize git submodules (run once after clone) +nix run '.#clean' # Garbage-collect the Nix store ``` diff --git a/scripts/build_windows.sh b/scripts/build_windows.sh deleted file mode 100644 index 24987ab..0000000 --- a/scripts/build_windows.sh +++ /dev/null @@ -1,42 +0,0 @@ -#!/bin/sh - -echo "- - - - - - - - - - Windows Setup Script - - - - - - - - - -" - -success_count=0 -failure_count=0 - -# Function to execute a command and check its status -execute_command() { - echo "Executing: $1" - if eval "$1"; then - echo -e "✓ Command succeeded \n" - ((success_count++)) - else - echo -e "✗ Command failed \n" - ((failure_count++)) - fi -} - -echo "1. -.-.-.-- Set PATH -.-.-.-" -export PATH="/c/msys64/usr/bin:/c/msys64/mingw64/bin:/c/msys64/usr/lib:/c/msys64/mingw64/lib:$PATH" - -echo "2. -.-.-.- Verify dependencies -.-.-.-" -execute_command "which gcc g++ make cmake cargo upx rustc python" - -echo "3. -.-.-.- Updating submodules -.-.-.-" -execute_command "git submodule update --init --recursive" - -echo "4. -.-.-.- Creating tmp directory -.-.-.-" -execute_command "mkdir -p tmp" - -echo "5. -.-.-.- Building Nim -.-.-.-" -cd vendor/nimbus-build-system/vendor/Nim -execute_command "./build_all.bat" -cd ../../../.. - -echo "6. -.-.-.- Building libsds -.-.-.- " -execute_command "make libsds STATIC=0 V=3 -j8" - -echo "Windows setup completed successfully!" -echo "✓ Successful commands: $success_count" -echo "✗ Failed commands: $failure_count" diff --git a/scripts/generate_nimble_links.sh b/scripts/generate_nimble_links.sh index 3f3f6b6..b61543e 100755 --- a/scripts/generate_nimble_links.sh +++ b/scripts/generate_nimble_links.sh @@ -1,8 +1,7 @@ #!/usr/bin/env bash -# This script creates nimble-link files for all vendored Nim submodules. -# It replaces the dependency on nimbus-build-system's create_nimble_link.sh -# by inlining the same logic. +# This script creates nimble-link files for all vendored Nim submodules, +# allowing Nim's import resolver to find them. # # Required env vars: # NIMBLE_DIR — directory where nimble-link packages are created