~starkingdoms/starkingdoms

04e724cf1f04571e3f25bdcff229cf8bbf4bfd99 — c0repwn3r 2 years ago 10380c3
replace justfile with spacetime
2 files changed, 61 insertions(+), 8 deletions(-)

M spacetime/spacetime.py
M st
M spacetime/spacetime.py => spacetime/spacetime.py +24 -5
@@ 58,11 58,15 @@ def gen_inkscape_rules_for_asset(root, asset, writer, files_375, files_full, fil
    writer.build([out_375], rule_375, [in_file])
    writer.build([out_125], rule_125, [in_file])


def gen_rules_for_client(root, env, writer):
    if env == 'dev':
        writer.rule('cargo-client', 'wasm-pack build --target web client', depfile=f'{root}/target/wasm32-unknown-unknown/release/starkingdoms_client.d', pool='console')
        writer.rule('cargo-client', 'wasm-pack build --target web client',
                    depfile=f'{root}/target/wasm32-unknown-unknown/release/starkingdoms_client.d', pool='console')
    elif env == 'prod':
        writer.rule('cargo-client', 'wasm-pack build --target web client --no-default-features --features textures-fast', depfile=f'{root}/target/wasm32-unknown-unknown/release/starkingdoms_client.d', pool='console')
        writer.rule('cargo-client',
                    'wasm-pack build --target web client --no-default-features --features textures-fast',
                    depfile=f'{root}/target/wasm32-unknown-unknown/release/starkingdoms_client.d', pool='console')
    writer.build(
        [
            f'{root}/client/pkg/.gitignore',


@@ 112,6 116,20 @@ def gen_rules_for_client(root, env, writer):
    writer.build(['client'], 'phony', [f'{root}/web/dist/starkingdoms_client.js'])


def gen_rules_for_server(root, env, writer):
    if env == 'dev':
        out_dir = 'debug'
        writer.rule('cargo-server', 'cargo build --bin starkingdoms-server',
                    depfile=f'{root}/target/debug/starkingdoms-server.d', pool='console')
    elif env == 'prod':
        out_dir = 'release'
        writer.rule('cargo-server', 'cargo build --bin starkingdoms-server --release',
                    depfile=f'{root}/target/release/starkingdoms-server.d', pool='console')

    writer.build([f'{root}/target/{out_dir}/starkingdoms-server'], 'cargo-server', ['server/Cargo.toml'])
    writer.build(['server'], 'phony', [f'{root}/target/{out_dir}/starkingdoms-server'])


def gen_inkscape(root, assets, writer, files_375, files_full, files_125):
    gen_inkscape_rules_for_asset_sizes(writer)



@@ 167,9 185,10 @@ def main():
            assets = scan_assets(root)
            generate_assets_build_command(root, assets, writer)

        gen_rules_for_client(root, env, writer)


        if target == 'client':
            gen_rules_for_client(root, env, writer)
        elif target == 'server':
            gen_rules_for_server(root, env, writer)

    print(f'[spacetime] Configured build')


M st => st +37 -3
@@ 24,8 24,10 @@ sub_help() {
  echo "    help - Show this help screen" # done
  echo "    run_http - Compile the client and run a development http server for testing it" # done
  echo "    run_http_prod - Compile the client in production mode and run a development http server for testing it" # done
  echo "    run_server (default) - Compile and run the game server"
  echo "    build_server - Compile the game server"
  echo "    run_server (default) - Compile and run the game server" # done
  echo "    build_server - Compile the game server" # done
  echo "    run_server_prod - Compile and run the game server with optimizations enabled" # done
  echo "    build_server_prod - Compile the game server with optimizations enabled" # done
  echo "    build_client_bundle - Compile an optimized WebAssembly client bundle" # done
  echo "    build_client_bundle_prod - Compile an optimized WebAssembly client bundle using textures-fast" # done
  echo "    install_tooling - Install the compilation utilities required for compiling StarKingdoms" # done


@@ 33,7 35,7 @@ sub_help() {
  echo "    build_assets_full - Compile spritesheets in full size for textures-fast" # done
  echo "    build_assets_375 - Commpile 37.5% spritesheets for textures-fast" # done
  echo "    build_assets_125 - Compile 12.5% spritesheets for textures-fast" # done
  echo "    clean - Remove all generated files"
  echo "    clean - Remove all generated files" # done
}

check_install_cargo() {


@@ 60,6 62,14 @@ check_all() {
  check inkscape
}

sub_clean() {
  rm -rf web/dist
  rm -rf assets/dist
  rm -rf assets/final
  rm -rf target
  rm -rf client/pkg
}

sub_install_tooling() {
  check_install_cargo wasm-pack wasm-pack --no-default-features
  check_install_cargo sheep sheep_cli


@@ 93,6 103,30 @@ sub_run_http_prod() {
  cd web && python3 -m http.server
}

sub_build_server() {
  check_all
  exec_spacetime server dev "$SCRIPT_DIR"
  exec_ninja server
}
sub_run_server() {
  check_all
  exec_spacetime server dev "$SCRIPT_DIR"
  exec_ninja server
  exec "$SCRIPT_DIR/target/debug/starkingdoms-server"
}

sub_build_server_prod() {
  check_all
  exec_spacetime server prod "$SCRIPT_DIR"
  exec_ninja server
}
sub_run_server_prod() {
  check_all
  exec_spacetime server prod "$SCRIPT_DIR"
  exec_ninja server
  exec "$SCRIPT_DIR/target/release/starkingdoms-server"
}

sub_build_assets() {
  check_all
  exec_spacetime asset dev "$SCRIPT_DIR"