diff --git a/build/build.zig b/build/build.zig index 272bd69..7402a72 100644 --- a/build/build.zig +++ b/build/build.zig @@ -182,7 +182,7 @@ fn get_declared_bsps() []const ImportedBSP { pub const EnvironmentInfo = struct { /// package name of the build package (optional) - self: []const u8 = "microzig", + self: []const u8 = "microzig-build", /// package name of the core package (optional) core: []const u8 = "microzig-core", diff --git a/examples/espressif-esp/build.zig.zon b/examples/espressif-esp/build.zig.zon index a729ce6..5fc8d30 100644 --- a/examples/espressif-esp/build.zig.zon +++ b/examples/espressif-esp/build.zig.zon @@ -1,14 +1,18 @@ .{ - .name = "microzig-espressif-esp-examples", + .name = "microzig-nxp-lpc-examples", .version = "0.1.0", .dependencies = .{ .microzig = .{ - .url = "https://github.com/ZigEmbeddedGroup/microzig/archive/c6c9ec4516f57638e751141085c9d76120990312.tar.gz", - .hash = "1220af58bdaa721b8189f3a7adfda660517dd354463463388e96d69fe4ceccf80b92", + .url = "https://public.devspace.random-projects.net/packages/microzig-build.tar.gz", + .hash = "1220db1de385b765aa45a04719c199d7ab8306fcca6ac1a12b487ed589a69d05a665", }, - .esp = .{ - .url = "https://github.com/ZigEmbeddedGroup/espressif-esp/archive/59b8ca028915c0d6224ec88dbf4db19afbb559c0.tar.gz", - .hash = "1220f6e5f22416fdc63442cd8869fcaa35f9abf30d878ea3d80073176677dc6f8a65", + .@"microzig-core" = .{ + .url = "https://public.devspace.random-projects.net/packages/microzig-core.tar.gz", + .hash = "1220f72de650278d4184dd4a43992189246b520a5c137b54fca05d7a44df8b828267", + }, + .@"microzig-bsp-rp2040" = .{ + .url = "https://public.devspace.random-projects.net/packages/board-support/raspberrypi/rp2040.tar.gz", + .hash = "1220b170e56d2bd85b96bd8b7f40f2890cf9926da2fcb86967e466a3c87486f31c43", }, }, } diff --git a/examples/next-gen/build.zig b/examples/next-gen/build.zig index 2c500c3..fe531f9 100644 --- a/examples/next-gen/build.zig +++ b/examples/next-gen/build.zig @@ -1,5 +1,5 @@ const std = @import("std"); -const MicroZig = @import("microzig"); +const MicroZig = @import("microzig-build"); pub fn build(b: *std.Build) void { const microzig = MicroZig.createBuildEnvironment(b, .{}); diff --git a/examples/next-gen/build.zig.zon b/examples/next-gen/build.zig.zon index d587aec..70de7cc 100644 --- a/examples/next-gen/build.zig.zon +++ b/examples/next-gen/build.zig.zon @@ -2,21 +2,21 @@ .name = "microzig-nxp-lpc-examples", .version = "0.1.0", .dependencies = .{ - .microzig = .{ - .url = "https://public.devspace.random-projects.net/microzig-build.tar.gz", - .hash = "122001f3340f37dd4d80e0942407a503e6a429d7c92a05221a3e301b947782933bdb", + .@"microzig-build" = .{ + .url = "https://public.devspace.random-projects.net/packages/microzig-build.tar.gz", + .hash = "1220e1f1446176832d84fa9b132022a45ea8c21fbaba8a51d787c6b4e0f1d455f4ed", }, .@"microzig-core" = .{ - .url = "https://public.devspace.random-projects.net/microzig-core.tar.gz", - .hash = "1220460c2625fb17a075b17f720f275d814544e1f20a8f89e7e542ff3e0d697111bc", + .url = "https://public.devspace.random-projects.net/packages/microzig-core.tar.gz", + .hash = "12207d2604083d414ff3ca7c31c5dc76ee8ac3f1292a22e40ffe8b87fcadbd2e3c7d", }, .@"microzig-bsp-nxp" = .{ - .url = "https://public.devspace.random-projects.net/board-support/nxp/lpc.tar.gz", - .hash = "122005a181f1d51aaffd02748ab5d910597f328a12b37e68dc5a1993716d9888ccc5", + .url = "https://public.devspace.random-projects.net/packages/board-support/nxp/lpc.tar.gz", + .hash = "1220ac0aa694eaa23cda453bb5a2711b22d8f58f10a9e0389502439cbb881987fa95", }, .@"microzig-bsp-rp2040" = .{ - .url = "https://public.devspace.random-projects.net/board-support/raspberrypi/rp2040.tar.gz", - .hash = "122094dceb25e3664b96a6b482529fdc254582048d82fcec7126678e5e021b26af2c", + .url = "https://public.devspace.random-projects.net/packages/board-support/raspberrypi/rp2040.tar.gz", + .hash = "12204d3998590f27f19aa31a8a250576b4314b29bbeb97628e264b42cb488ee6fad7", }, }, } \ No newline at end of file diff --git a/tools/bundle.py b/tools/bundle.py index eebb215..4878ccb 100755 --- a/tools/bundle.py +++ b/tools/bundle.py @@ -21,6 +21,7 @@ import tarfile from marshmallow import fields as mm_fields from typing import Optional, Any +LEGAL_PACKAGE_NAME = re.compile("^[A-Za-z]$") VERBOSE = False ALL_FILES_DIR=".data" @@ -41,6 +42,7 @@ class PackageType(StrEnum): build = "build" core = "core" board_support = "board-support" + example = "example" @dataclass_json @dataclass @@ -290,6 +292,9 @@ def main(): packages = {} validation_ok = True + PACKAGES_ROOT = PurePosixPath("packages") + EXAMPLES_ROOT = PurePosixPath("examples") + for meta_path in REPO_ROOT.rglob("microzig-package.json"): assert meta_path.is_file() @@ -305,25 +310,39 @@ def main(): if pkg.package_type == PackageType.build: - pkg.out_rel_dir = PurePosixPath(".") + pkg.out_rel_dir = PACKAGES_ROOT pkg.out_basename = pkg.package_name elif pkg.package_type == PackageType.core: - pkg.out_rel_dir = PurePosixPath(".") + pkg.out_rel_dir = PACKAGES_ROOT pkg.out_basename = pkg.package_name # Implicit dependencies: pkg.inner_dependencies.add("microzig-build") # core requires the build types elif pkg.package_type == PackageType.board_support: - parsed_pkg_name = PurePosixPath(pkg.package_name) + parsed_pkg_name = PurePosixPath( pkg.package_name) - pkg.out_rel_dir = "board-support" / parsed_pkg_name.parent + pkg.out_rel_dir = PACKAGES_ROOT / "board-support" / parsed_pkg_name.parent pkg.out_basename = parsed_pkg_name.name # Implicit dependencies: pkg.inner_dependencies.add("microzig-build") # BSPs also require build types pkg.inner_dependencies.add("microzig-core") # but also the core types (?) + + + elif pkg.package_type == PackageType.example: + parsed_pkg_name = PurePosixPath( pkg.package_name) + + pkg.package_name = "examples:" + pkg.package_name # patch the name so we can use the same name for BSP and Example + + pkg.out_rel_dir = EXAMPLES_ROOT / parsed_pkg_name.parent + pkg.out_basename = parsed_pkg_name.name + + # Implicit dependencies: + pkg.inner_dependencies.add("microzig-build") # BSPs also require build types + pkg.inner_dependencies.add("microzig-core") # but also the core types (?) + else: assert False diff --git a/tools/create-pkg-descriptor.zig b/tools/create-pkg-descriptor.zig index 70985d8..13dd899 100644 --- a/tools/create-pkg-descriptor.zig +++ b/tools/create-pkg-descriptor.zig @@ -38,6 +38,7 @@ const MetaData = struct { @"board-support", core, build, + example, }; package_name: []const u8,