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"); | const std = @import("std"); | ||||||
| 
 | 
 | ||||||
| pub fn build(b: *std.build.Builder) !void { | // Although this function looks imperative, note that its job is to | ||||||
|     // Standard release options allow the person running `zig build` to select | // declaratively construct a build graph that will be executed by an external | ||||||
|     // between Debug, ReleaseSafe, ReleaseFast, and ReleaseSmall. | // runner. | ||||||
|     // const mode = b.standardReleaseOptions(); | 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(.{}); |     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 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(.{ |     var exe = b.addExecutable(.{ | ||||||
|         .name = "custom", |         .name = "custom", | ||||||
|         .root_source_file = .{ .path = "src/sample-main.zig" }, |         .root_source_file = .{ .path = "src/sample-main.zig" }, | ||||||
|  | @ -16,12 +53,7 @@ pub fn build(b: *std.build.Builder) !void { | ||||||
|     }); |     }); | ||||||
| 
 | 
 | ||||||
|     b.installArtifact(exe); |     b.installArtifact(exe); | ||||||
| 
 |  | ||||||
|     try lambdaBuildOptions(b, 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 | /// lambdaBuildOptions will add three build options to the build (if compiling | ||||||
|  |  | ||||||
		Loading…
	
	Add table
		
		Reference in a new issue