new module approach for flexilib
All checks were successful
AWS-Zig Build / build-zig-0.11.0-amd64-host (push) Successful in 1m19s
All checks were successful
AWS-Zig Build / build-zig-0.11.0-amd64-host (push) Successful in 1m19s
This commit is contained in:
parent
e5396cb0e5
commit
72d143c976
|
@ -9,23 +9,6 @@ const builtin = @import("builtin");
|
||||||
pub fn configureBuild(b: *std.build.Builder, cs: *std.Build.Step.Compile, build_root_src: []const u8) !void {
|
pub fn configureBuild(b: *std.build.Builder, cs: *std.Build.Step.Compile, build_root_src: []const u8) !void {
|
||||||
const package_step = b.step("flexilib", "Create a flexilib dynamic library");
|
const package_step = b.step("flexilib", "Create a flexilib dynamic library");
|
||||||
|
|
||||||
// We'll need to add the interface module here as well
|
|
||||||
const flexilib_dep = b.dependency("flexilib", .{
|
|
||||||
.target = cs.target,
|
|
||||||
.optimize = cs.optimize,
|
|
||||||
});
|
|
||||||
const flexilib_module = flexilib_dep.module("flexilib-interface");
|
|
||||||
cs.addModule("flexilib-interface", flexilib_module);
|
|
||||||
|
|
||||||
// const exe = b.addExecutable(.{
|
|
||||||
// .name = "universal-lambda-example",
|
|
||||||
// // In this case the main source file is merely a path, however, in more
|
|
||||||
// // complicated build scripts, this could be a generated file.
|
|
||||||
// .root_source_file = .{ .path = "src/main.zig" },
|
|
||||||
// .target = target,
|
|
||||||
// .optimize = optimize,
|
|
||||||
// });
|
|
||||||
//
|
|
||||||
const lib = b.addSharedLibrary(.{
|
const lib = b.addSharedLibrary(.{
|
||||||
.name = cs.name,
|
.name = cs.name,
|
||||||
.root_source_file = .{ .path = b.pathJoin(&[_][]const u8{ build_root_src, "flexilib.zig" }) },
|
.root_source_file = .{ .path = b.pathJoin(&[_][]const u8{ build_root_src, "flexilib.zig" }) },
|
||||||
|
|
|
@ -16,24 +16,52 @@ pub var module_root: ?[]const u8 = null;
|
||||||
|
|
||||||
pub fn configureBuild(b: *std.Build, cs: *std.Build.Step.Compile) !void {
|
pub fn configureBuild(b: *std.Build, cs: *std.Build.Step.Compile) !void {
|
||||||
const file_location = try findFileLocation(b);
|
const file_location = try findFileLocation(b);
|
||||||
|
/////////////////////////////////////////////////////////////////////////
|
||||||
|
// Add modules
|
||||||
|
//
|
||||||
|
// We will create the following modules for downstream consumption:
|
||||||
|
//
|
||||||
|
// * build_options
|
||||||
|
// * flexilib-interface
|
||||||
|
// * universal_lambda_handler
|
||||||
|
//
|
||||||
|
/////////////////////////////////////////////////////////////////////////
|
||||||
|
const options_module = try createOptionsModule(b, cs);
|
||||||
|
|
||||||
|
// We need to add the interface module here as well, so universal_lambda.zig
|
||||||
|
// can reference it. Unfortunately, this creates an issue that the consuming
|
||||||
|
// build.zig.zon must have flexilib included, even if they're not building
|
||||||
|
// flexilib. TODO: Accept for now, but we need to think through this situation
|
||||||
|
const flexilib_dep = b.dependency("flexilib", .{
|
||||||
|
.target = cs.target,
|
||||||
|
.optimize = cs.optimize,
|
||||||
|
});
|
||||||
|
const flexilib_module = flexilib_dep.module("flexilib-interface");
|
||||||
|
// Make the interface available for consumption
|
||||||
|
cs.addModule("flexilib-interface", flexilib_module);
|
||||||
// Add module
|
// Add module
|
||||||
cs.addAnonymousModule("universal_lambda_handler", .{
|
cs.addAnonymousModule("universal_lambda_handler", .{
|
||||||
// Source file can be anywhere on disk, does not need to be a subdirectory
|
// Source file can be anywhere on disk, does not need to be a subdirectory
|
||||||
.source_file = .{ .path = b.pathJoin(&[_][]const u8{ file_location, "universal_lambda.zig" }) },
|
.source_file = .{ .path = b.pathJoin(&[_][]const u8{ file_location, "universal_lambda.zig" }) },
|
||||||
.dependencies = &[_]std.Build.ModuleDependency{.{
|
// We alsso need the interface module available here
|
||||||
.name = "build_options",
|
.dependencies = &[_]std.Build.ModuleDependency{
|
||||||
.module = try createOptionsModule(b, cs),
|
// Add options module so we can let our universal_lambda know what
|
||||||
}},
|
// type of interface is necessary
|
||||||
|
.{
|
||||||
|
.name = "build_options",
|
||||||
|
.module = options_module,
|
||||||
|
},
|
||||||
|
.{
|
||||||
|
.name = "flexilib-interface",
|
||||||
|
.module = flexilib_module,
|
||||||
|
},
|
||||||
|
},
|
||||||
});
|
});
|
||||||
|
|
||||||
// Add steps
|
// Add steps
|
||||||
try @import("lambda_build.zig").configureBuild(b, cs);
|
try @import("lambda_build.zig").configureBuild(b, cs);
|
||||||
try @import("standalone_server_build.zig").configureBuild(b, cs);
|
try @import("standalone_server_build.zig").configureBuild(b, cs);
|
||||||
try @import("flexilib_build.zig").configureBuild(b, cs, file_location);
|
try @import("flexilib_build.zig").configureBuild(b, cs, file_location);
|
||||||
|
|
||||||
// Add options module so we can let our universal_lambda know what
|
|
||||||
// type of interface is necessary
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/// This function relies on internal implementation of the build runner
|
/// This function relies on internal implementation of the build runner
|
||||||
|
|
Loading…
Reference in New Issue
Block a user