forked from lobo/lambda-zig
		
	update build.zig to be mostly stock
This commit is contained in:
		
							parent
							
								
									39889f4269
								
							
						
					
					
						commit
						28e9944596
					
				
					 1 changed files with 42 additions and 10 deletions
				
			
		
							
								
								
									
										52
									
								
								build.zig
									
										
									
									
									
								
							
							
						
						
									
										52
									
								
								build.zig
									
										
									
									
									
								
							|  | @ -1,13 +1,50 @@ | |||
| const builtin = @import("builtin"); | ||||
| const std = @import("std"); | ||||
| 
 | ||||
| pub fn build(b: *std.build.Builder) !void { | ||||
|     // Standard release options allow the person running `zig build` to select | ||||
|     // between Debug, ReleaseSafe, ReleaseFast, and ReleaseSmall. | ||||
|     // const mode = b.standardReleaseOptions(); | ||||
| // Although this function looks imperative, note that its job is to | ||||
| // declaratively construct a build graph that will be executed by an external | ||||
| // runner. | ||||
| pub fn build(b: *std.Build) !void { | ||||
|     // Standard target options allows the person running `zig build` to choose | ||||
|     // what target to build for. Here we do not override the defaults, which | ||||
|     // means any target is allowed, and the default is native. Other options | ||||
|     // for restricting supported target set are available. | ||||
|     const target = b.standardTargetOptions(.{}); | ||||
| 
 | ||||
|     // Standard optimization options allow the person running `zig build` to select | ||||
|     // between Debug, ReleaseSafe, ReleaseFast, and ReleaseSmall. Here we do not | ||||
|     // set a preferred release mode, allowing the user to decide how to optimize. | ||||
|     const optimize = b.standardOptimizeOption(.{}); | ||||
| 
 | ||||
|     const lib = b.addStaticLibrary(.{ | ||||
|         .name = "lambda-zig", | ||||
|         // 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/lambda.zig" }, | ||||
|         .target = target, | ||||
|         .optimize = optimize, | ||||
|     }); | ||||
| 
 | ||||
|     // This declares intent for the library to be installed into the standard | ||||
|     // location when the user invokes the "install" step (the default step when | ||||
|     // running `zig build`). | ||||
|     b.installArtifact(lib); | ||||
| 
 | ||||
|     // Creates a step for unit testing. This only builds the test executable | ||||
|     // but does not run it. | ||||
|     const main_tests = b.addTest(.{ | ||||
|         .root_source_file = .{ .path = "src/lambda.zig" }, | ||||
|         .target = target, | ||||
|         .optimize = optimize, | ||||
|     }); | ||||
| 
 | ||||
|     const run_main_tests = b.addRunArtifact(main_tests); | ||||
| 
 | ||||
|     // This creates a build step. It will be visible in the `zig build --help` menu, | ||||
|     // and can be selected like this: `zig build test` | ||||
|     // This will evaluate the `test` step rather than the default, which is "install". | ||||
|     const test_step = b.step("test", "Run library tests"); | ||||
|     test_step.dependOn(&run_main_tests.step); | ||||
| 
 | ||||
|     var exe = b.addExecutable(.{ | ||||
|         .name = "custom", | ||||
|         .root_source_file = .{ .path = "src/sample-main.zig" }, | ||||
|  | @ -16,12 +53,7 @@ pub fn build(b: *std.build.Builder) !void { | |||
|     }); | ||||
| 
 | ||||
|     b.installArtifact(exe); | ||||
| 
 | ||||
|     try lambdaBuildOptions(b, exe); | ||||
| 
 | ||||
|     // TODO: We can cross-compile of course, but stripping and zip commands | ||||
|     // may vary | ||||
|     // TODO: Add test | ||||
| } | ||||
| 
 | ||||
| /// lambdaBuildOptions will add three build options to the build (if compiling | ||||
|  |  | |||
		Loading…
	
	Add table
		
		Reference in a new issue