mirror of
https://codeberg.org/ziglang/zig.git
synced 2025-12-06 05:44:20 +00:00
Migrate from deprecated Step.Compile APIs
This commit is contained in:
parent
413179ccfc
commit
154bd2fd05
14 changed files with 527 additions and 517 deletions
|
|
@ -4,8 +4,10 @@ pub fn build(b: *std.Build) void {
|
||||||
const optimize = b.standardOptimizeOption(.{});
|
const optimize = b.standardOptimizeOption(.{});
|
||||||
const exe = b.addExecutable(.{
|
const exe = b.addExecutable(.{
|
||||||
.name = "example",
|
.name = "example",
|
||||||
|
.root_module = b.createModule(.{
|
||||||
.root_source_file = b.path("example.zig"),
|
.root_source_file = b.path("example.zig"),
|
||||||
.optimize = optimize,
|
.optimize = optimize,
|
||||||
|
}),
|
||||||
});
|
});
|
||||||
b.default_step.dependOn(&exe.step);
|
b.default_step.dependOn(&exe.step);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -4,15 +4,19 @@ pub fn build(b: *std.Build) void {
|
||||||
const lib = b.addLibrary(.{
|
const lib = b.addLibrary(.{
|
||||||
.linkage = .dynamic,
|
.linkage = .dynamic,
|
||||||
.name = "mathtest",
|
.name = "mathtest",
|
||||||
|
.root_module = b.createModule(.{
|
||||||
.root_source_file = b.path("mathtest.zig"),
|
.root_source_file = b.path("mathtest.zig"),
|
||||||
|
}),
|
||||||
.version = .{ .major = 1, .minor = 0, .patch = 0 },
|
.version = .{ .major = 1, .minor = 0, .patch = 0 },
|
||||||
});
|
});
|
||||||
const exe = b.addExecutable(.{
|
const exe = b.addExecutable(.{
|
||||||
.name = "test",
|
.name = "test",
|
||||||
|
.root_module = b.createModule(.{
|
||||||
|
.link_libc = true,
|
||||||
|
}),
|
||||||
});
|
});
|
||||||
exe.addCSourceFile(.{ .file = b.path("test.c"), .flags = &.{"-std=c99"} });
|
exe.root_module.addCSourceFile(.{ .file = b.path("test.c"), .flags = &.{"-std=c99"} });
|
||||||
exe.linkLibrary(lib);
|
exe.root_module.linkLibrary(lib);
|
||||||
exe.linkSystemLibrary("c");
|
|
||||||
|
|
||||||
b.default_step.dependOn(&exe.step);
|
b.default_step.dependOn(&exe.step);
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -3,15 +3,19 @@ const std = @import("std");
|
||||||
pub fn build(b: *std.Build) void {
|
pub fn build(b: *std.Build) void {
|
||||||
const obj = b.addObject(.{
|
const obj = b.addObject(.{
|
||||||
.name = "base64",
|
.name = "base64",
|
||||||
|
.root_module = b.createModule(.{
|
||||||
.root_source_file = b.path("base64.zig"),
|
.root_source_file = b.path("base64.zig"),
|
||||||
|
}),
|
||||||
});
|
});
|
||||||
|
|
||||||
const exe = b.addExecutable(.{
|
const exe = b.addExecutable(.{
|
||||||
.name = "test",
|
.name = "test",
|
||||||
|
.root_module = b.createModule(.{
|
||||||
|
.link_libc = true,
|
||||||
|
}),
|
||||||
});
|
});
|
||||||
exe.addCSourceFile(.{ .file = b.path("test.c"), .flags = &.{"-std=c99"} });
|
exe.root_module.addCSourceFile(.{ .file = b.path("test.c"), .flags = &.{"-std=c99"} });
|
||||||
exe.addObject(obj);
|
exe.root_module.addObject(obj);
|
||||||
exe.linkSystemLibrary("c");
|
|
||||||
b.installArtifact(exe);
|
b.installArtifact(exe);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
File diff suppressed because it is too large
Load diff
|
|
@ -140,20 +140,20 @@ pub fn addRunArtifact(comp: *Compile) *Run {
|
||||||
pub fn addCSourceBytes(comp: *Compile, bytes: []const u8, flags: []const []const u8) void {
|
pub fn addCSourceBytes(comp: *Compile, bytes: []const u8, flags: []const []const u8) void {
|
||||||
const b = comp.step.owner;
|
const b = comp.step.owner;
|
||||||
const file = WriteFile.create(b).add("a.c", bytes);
|
const file = WriteFile.create(b).add("a.c", bytes);
|
||||||
comp.addCSourceFile(.{ .file = file, .flags = flags });
|
comp.root_module.addCSourceFile(.{ .file = file, .flags = flags });
|
||||||
}
|
}
|
||||||
|
|
||||||
pub fn addCppSourceBytes(comp: *Compile, bytes: []const u8, flags: []const []const u8) void {
|
pub fn addCppSourceBytes(comp: *Compile, bytes: []const u8, flags: []const []const u8) void {
|
||||||
const b = comp.step.owner;
|
const b = comp.step.owner;
|
||||||
const file = WriteFile.create(b).add("a.cpp", bytes);
|
const file = WriteFile.create(b).add("a.cpp", bytes);
|
||||||
comp.addCSourceFile(.{ .file = file, .flags = flags });
|
comp.root_module.addCSourceFile(.{ .file = file, .flags = flags });
|
||||||
}
|
}
|
||||||
|
|
||||||
pub fn addAsmSourceBytes(comp: *Compile, bytes: []const u8) void {
|
pub fn addAsmSourceBytes(comp: *Compile, bytes: []const u8) void {
|
||||||
const b = comp.step.owner;
|
const b = comp.step.owner;
|
||||||
const actual_bytes = std.fmt.allocPrint(b.allocator, "{s}\n", .{bytes}) catch @panic("OOM");
|
const actual_bytes = std.fmt.allocPrint(b.allocator, "{s}\n", .{bytes}) catch @panic("OOM");
|
||||||
const file = WriteFile.create(b).add("a.s", actual_bytes);
|
const file = WriteFile.create(b).add("a.s", actual_bytes);
|
||||||
comp.addAssemblyFile(file);
|
comp.root_module.addAssemblyFile(file);
|
||||||
}
|
}
|
||||||
|
|
||||||
pub fn expectLinkErrors(comp: *Compile, test_step: *Step, expected_errors: Compile.ExpectedCompileErrors) void {
|
pub fn expectLinkErrors(comp: *Compile, test_step: *Step, expected_errors: Compile.ExpectedCompileErrors) void {
|
||||||
|
|
|
||||||
|
|
@ -127,7 +127,7 @@ fn testDeadStrip(b: *Build, opts: Options) *Step {
|
||||||
|
|
||||||
{
|
{
|
||||||
const exe = addExecutable(b, opts, .{ .name = "no_dead_strip" });
|
const exe = addExecutable(b, opts, .{ .name = "no_dead_strip" });
|
||||||
exe.addObject(obj);
|
exe.root_module.addObject(obj);
|
||||||
exe.link_gc_sections = false;
|
exe.link_gc_sections = false;
|
||||||
|
|
||||||
const check = exe.checkObject();
|
const check = exe.checkObject();
|
||||||
|
|
@ -156,7 +156,7 @@ fn testDeadStrip(b: *Build, opts: Options) *Step {
|
||||||
|
|
||||||
{
|
{
|
||||||
const exe = addExecutable(b, opts, .{ .name = "yes_dead_strip" });
|
const exe = addExecutable(b, opts, .{ .name = "yes_dead_strip" });
|
||||||
exe.addObject(obj);
|
exe.root_module.addObject(obj);
|
||||||
exe.link_gc_sections = true;
|
exe.link_gc_sections = true;
|
||||||
|
|
||||||
const check = exe.checkObject();
|
const check = exe.checkObject();
|
||||||
|
|
@ -206,7 +206,7 @@ fn testDuplicateDefinitions(b: *Build, opts: Options) *Step {
|
||||||
\\ strong();
|
\\ strong();
|
||||||
\\}
|
\\}
|
||||||
});
|
});
|
||||||
exe.addObject(obj);
|
exe.root_module.addObject(obj);
|
||||||
|
|
||||||
expectLinkErrors(exe, test_step, .{ .exact = &.{
|
expectLinkErrors(exe, test_step, .{ .exact = &.{
|
||||||
"error: duplicate symbol definition: _strong",
|
"error: duplicate symbol definition: _strong",
|
||||||
|
|
@ -235,7 +235,7 @@ fn testDeadStripDylibs(b: *Build, opts: Options) *Step {
|
||||||
|
|
||||||
{
|
{
|
||||||
const exe = addExecutable(b, opts, .{ .name = "main1" });
|
const exe = addExecutable(b, opts, .{ .name = "main1" });
|
||||||
exe.addObject(main_o);
|
exe.root_module.addObject(main_o);
|
||||||
exe.root_module.linkFramework("Cocoa", .{});
|
exe.root_module.linkFramework("Cocoa", .{});
|
||||||
|
|
||||||
const check = exe.checkObject();
|
const check = exe.checkObject();
|
||||||
|
|
@ -254,7 +254,7 @@ fn testDeadStripDylibs(b: *Build, opts: Options) *Step {
|
||||||
|
|
||||||
{
|
{
|
||||||
const exe = addExecutable(b, opts, .{ .name = "main2" });
|
const exe = addExecutable(b, opts, .{ .name = "main2" });
|
||||||
exe.addObject(main_o);
|
exe.root_module.addObject(main_o);
|
||||||
exe.root_module.linkFramework("Cocoa", .{});
|
exe.root_module.linkFramework("Cocoa", .{});
|
||||||
exe.dead_strip_dylibs = true;
|
exe.dead_strip_dylibs = true;
|
||||||
|
|
||||||
|
|
@ -350,7 +350,7 @@ fn testEmptyObject(b: *Build, opts: Options) *Step {
|
||||||
\\ printf("Hello world!");
|
\\ printf("Hello world!");
|
||||||
\\}
|
\\}
|
||||||
});
|
});
|
||||||
exe.addObject(empty);
|
exe.root_module.addObject(empty);
|
||||||
|
|
||||||
const run = addRunArtifact(exe);
|
const run = addRunArtifact(exe);
|
||||||
run.expectStdOutEqual("Hello world!");
|
run.expectStdOutEqual("Hello world!");
|
||||||
|
|
@ -451,7 +451,7 @@ fn testEntryPointDylib(b: *Build, opts: Options) *Step {
|
||||||
\\ return 0;
|
\\ return 0;
|
||||||
\\}
|
\\}
|
||||||
, &.{});
|
, &.{});
|
||||||
exe.linkLibrary(dylib);
|
exe.root_module.linkLibrary(dylib);
|
||||||
exe.entry = .{ .symbol_name = "_bootstrap" };
|
exe.entry = .{ .symbol_name = "_bootstrap" };
|
||||||
exe.forceUndefinedSymbol("_my_main");
|
exe.forceUndefinedSymbol("_my_main");
|
||||||
|
|
||||||
|
|
@ -604,11 +604,11 @@ fn testHeaderWeakFlags(b: *Build, opts: Options) *Step {
|
||||||
});
|
});
|
||||||
|
|
||||||
const lib = addSharedLibrary(b, opts, .{ .name = "a" });
|
const lib = addSharedLibrary(b, opts, .{ .name = "a" });
|
||||||
lib.addObject(obj1);
|
lib.root_module.addObject(obj1);
|
||||||
|
|
||||||
{
|
{
|
||||||
const exe = addExecutable(b, opts, .{ .name = "main1", .c_source_bytes = "int main() { return 0; }" });
|
const exe = addExecutable(b, opts, .{ .name = "main1", .c_source_bytes = "int main() { return 0; }" });
|
||||||
exe.addObject(obj1);
|
exe.root_module.addObject(obj1);
|
||||||
|
|
||||||
const check = exe.checkObject();
|
const check = exe.checkObject();
|
||||||
check.checkInHeaders();
|
check.checkInHeaders();
|
||||||
|
|
@ -642,8 +642,8 @@ fn testHeaderWeakFlags(b: *Build, opts: Options) *Step {
|
||||||
}
|
}
|
||||||
|
|
||||||
const exe = addExecutable(b, opts, .{ .name = "main2" });
|
const exe = addExecutable(b, opts, .{ .name = "main2" });
|
||||||
exe.linkLibrary(lib);
|
exe.root_module.linkLibrary(lib);
|
||||||
exe.addObject(obj);
|
exe.root_module.addObject(obj);
|
||||||
|
|
||||||
const check = exe.checkObject();
|
const check = exe.checkObject();
|
||||||
check.checkInHeaders();
|
check.checkInHeaders();
|
||||||
|
|
@ -665,7 +665,7 @@ fn testHeaderWeakFlags(b: *Build, opts: Options) *Step {
|
||||||
\\_main:
|
\\_main:
|
||||||
\\ ret
|
\\ ret
|
||||||
});
|
});
|
||||||
exe.linkLibrary(lib);
|
exe.root_module.linkLibrary(lib);
|
||||||
|
|
||||||
const check = exe.checkObject();
|
const check = exe.checkObject();
|
||||||
check.checkInHeaders();
|
check.checkInHeaders();
|
||||||
|
|
@ -910,7 +910,7 @@ fn testLinkingStaticLib(b: *Build, opts: Options) *Step {
|
||||||
\\}
|
\\}
|
||||||
,
|
,
|
||||||
});
|
});
|
||||||
lib.addObject(obj);
|
lib.root_module.addObject(obj);
|
||||||
|
|
||||||
const exe = addExecutable(b, opts, .{
|
const exe = addExecutable(b, opts, .{
|
||||||
.name = "testlib",
|
.name = "testlib",
|
||||||
|
|
@ -923,7 +923,7 @@ fn testLinkingStaticLib(b: *Build, opts: Options) *Step {
|
||||||
\\}
|
\\}
|
||||||
,
|
,
|
||||||
});
|
});
|
||||||
exe.linkLibrary(lib);
|
exe.root_module.linkLibrary(lib);
|
||||||
|
|
||||||
const run = addRunArtifact(exe);
|
const run = addRunArtifact(exe);
|
||||||
run.expectStdErrEqual("0\n");
|
run.expectStdErrEqual("0\n");
|
||||||
|
|
@ -1051,28 +1051,28 @@ fn testMergeLiteralsX64(b: *Build, opts: Options) *Step {
|
||||||
|
|
||||||
{
|
{
|
||||||
const exe = addExecutable(b, opts, .{ .name = "main1" });
|
const exe = addExecutable(b, opts, .{ .name = "main1" });
|
||||||
exe.addObject(a_o);
|
exe.root_module.addObject(a_o);
|
||||||
exe.addObject(b_o);
|
exe.root_module.addObject(b_o);
|
||||||
exe.addObject(main_o);
|
exe.root_module.addObject(main_o);
|
||||||
runWithChecks(test_step, exe);
|
runWithChecks(test_step, exe);
|
||||||
}
|
}
|
||||||
|
|
||||||
{
|
{
|
||||||
const exe = addExecutable(b, opts, .{ .name = "main2" });
|
const exe = addExecutable(b, opts, .{ .name = "main2" });
|
||||||
exe.addObject(b_o);
|
exe.root_module.addObject(b_o);
|
||||||
exe.addObject(a_o);
|
exe.root_module.addObject(a_o);
|
||||||
exe.addObject(main_o);
|
exe.root_module.addObject(main_o);
|
||||||
runWithChecks(test_step, exe);
|
runWithChecks(test_step, exe);
|
||||||
}
|
}
|
||||||
|
|
||||||
{
|
{
|
||||||
const c_o = addObject(b, opts, .{ .name = "c" });
|
const c_o = addObject(b, opts, .{ .name = "c" });
|
||||||
c_o.addObject(a_o);
|
c_o.root_module.addObject(a_o);
|
||||||
c_o.addObject(b_o);
|
c_o.root_module.addObject(b_o);
|
||||||
c_o.addObject(main_o);
|
c_o.root_module.addObject(main_o);
|
||||||
|
|
||||||
const exe = addExecutable(b, opts, .{ .name = "main3" });
|
const exe = addExecutable(b, opts, .{ .name = "main3" });
|
||||||
exe.addObject(c_o);
|
exe.root_module.addObject(c_o);
|
||||||
runWithChecks(test_step, exe);
|
runWithChecks(test_step, exe);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -1167,28 +1167,28 @@ fn testMergeLiteralsArm64(b: *Build, opts: Options) *Step {
|
||||||
|
|
||||||
{
|
{
|
||||||
const exe = addExecutable(b, opts, .{ .name = "main1" });
|
const exe = addExecutable(b, opts, .{ .name = "main1" });
|
||||||
exe.addObject(a_o);
|
exe.root_module.addObject(a_o);
|
||||||
exe.addObject(b_o);
|
exe.root_module.addObject(b_o);
|
||||||
exe.addObject(main_o);
|
exe.root_module.addObject(main_o);
|
||||||
runWithChecks(test_step, exe);
|
runWithChecks(test_step, exe);
|
||||||
}
|
}
|
||||||
|
|
||||||
{
|
{
|
||||||
const exe = addExecutable(b, opts, .{ .name = "main2" });
|
const exe = addExecutable(b, opts, .{ .name = "main2" });
|
||||||
exe.addObject(b_o);
|
exe.root_module.addObject(b_o);
|
||||||
exe.addObject(a_o);
|
exe.root_module.addObject(a_o);
|
||||||
exe.addObject(main_o);
|
exe.root_module.addObject(main_o);
|
||||||
runWithChecks(test_step, exe);
|
runWithChecks(test_step, exe);
|
||||||
}
|
}
|
||||||
|
|
||||||
{
|
{
|
||||||
const c_o = addObject(b, opts, .{ .name = "c" });
|
const c_o = addObject(b, opts, .{ .name = "c" });
|
||||||
c_o.addObject(a_o);
|
c_o.root_module.addObject(a_o);
|
||||||
c_o.addObject(b_o);
|
c_o.root_module.addObject(b_o);
|
||||||
c_o.addObject(main_o);
|
c_o.root_module.addObject(main_o);
|
||||||
|
|
||||||
const exe = addExecutable(b, opts, .{ .name = "main3" });
|
const exe = addExecutable(b, opts, .{ .name = "main3" });
|
||||||
exe.addObject(c_o);
|
exe.root_module.addObject(c_o);
|
||||||
runWithChecks(test_step, exe);
|
runWithChecks(test_step, exe);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -1259,9 +1259,9 @@ fn testMergeLiteralsArm642(b: *Build, opts: Options) *Step {
|
||||||
});
|
});
|
||||||
|
|
||||||
const exe = addExecutable(b, opts, .{ .name = "main1" });
|
const exe = addExecutable(b, opts, .{ .name = "main1" });
|
||||||
exe.addObject(a_o);
|
exe.root_module.addObject(a_o);
|
||||||
exe.addObject(b_o);
|
exe.root_module.addObject(b_o);
|
||||||
exe.addObject(main_o);
|
exe.root_module.addObject(main_o);
|
||||||
|
|
||||||
const check = exe.checkObject();
|
const check = exe.checkObject();
|
||||||
check.dumpSection("__TEXT,__const");
|
check.dumpSection("__TEXT,__const");
|
||||||
|
|
@ -1335,17 +1335,17 @@ fn testMergeLiteralsAlignment(b: *Build, opts: Options) *Step {
|
||||||
|
|
||||||
{
|
{
|
||||||
const exe = addExecutable(b, opts, .{ .name = "main1" });
|
const exe = addExecutable(b, opts, .{ .name = "main1" });
|
||||||
exe.addObject(a_o);
|
exe.root_module.addObject(a_o);
|
||||||
exe.addObject(b_o);
|
exe.root_module.addObject(b_o);
|
||||||
exe.addObject(main_o);
|
exe.root_module.addObject(main_o);
|
||||||
runWithChecks(test_step, exe);
|
runWithChecks(test_step, exe);
|
||||||
}
|
}
|
||||||
|
|
||||||
{
|
{
|
||||||
const exe = addExecutable(b, opts, .{ .name = "main2" });
|
const exe = addExecutable(b, opts, .{ .name = "main2" });
|
||||||
exe.addObject(b_o);
|
exe.root_module.addObject(b_o);
|
||||||
exe.addObject(a_o);
|
exe.root_module.addObject(a_o);
|
||||||
exe.addObject(main_o);
|
exe.root_module.addObject(main_o);
|
||||||
runWithChecks(test_step, exe);
|
runWithChecks(test_step, exe);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -1414,27 +1414,27 @@ fn testMergeLiteralsObjc(b: *Build, opts: Options) *Step {
|
||||||
|
|
||||||
{
|
{
|
||||||
const exe = addExecutable(b, opts, .{ .name = "main1" });
|
const exe = addExecutable(b, opts, .{ .name = "main1" });
|
||||||
exe.addObject(main_o);
|
exe.root_module.addObject(main_o);
|
||||||
exe.addObject(a_o);
|
exe.root_module.addObject(a_o);
|
||||||
exe.root_module.linkFramework("Foundation", .{});
|
exe.root_module.linkFramework("Foundation", .{});
|
||||||
runWithChecks(test_step, exe);
|
runWithChecks(test_step, exe);
|
||||||
}
|
}
|
||||||
|
|
||||||
{
|
{
|
||||||
const exe = addExecutable(b, opts, .{ .name = "main2" });
|
const exe = addExecutable(b, opts, .{ .name = "main2" });
|
||||||
exe.addObject(a_o);
|
exe.root_module.addObject(a_o);
|
||||||
exe.addObject(main_o);
|
exe.root_module.addObject(main_o);
|
||||||
exe.root_module.linkFramework("Foundation", .{});
|
exe.root_module.linkFramework("Foundation", .{});
|
||||||
runWithChecks(test_step, exe);
|
runWithChecks(test_step, exe);
|
||||||
}
|
}
|
||||||
|
|
||||||
{
|
{
|
||||||
const b_o = addObject(b, opts, .{ .name = "b" });
|
const b_o = addObject(b, opts, .{ .name = "b" });
|
||||||
b_o.addObject(a_o);
|
b_o.root_module.addObject(a_o);
|
||||||
b_o.addObject(main_o);
|
b_o.root_module.addObject(main_o);
|
||||||
|
|
||||||
const exe = addExecutable(b, opts, .{ .name = "main3" });
|
const exe = addExecutable(b, opts, .{ .name = "main3" });
|
||||||
exe.addObject(b_o);
|
exe.root_module.addObject(b_o);
|
||||||
exe.root_module.linkFramework("Foundation", .{});
|
exe.root_module.linkFramework("Foundation", .{});
|
||||||
runWithChecks(test_step, exe);
|
runWithChecks(test_step, exe);
|
||||||
}
|
}
|
||||||
|
|
@ -1610,7 +1610,7 @@ fn testObjcpp(b: *Build, opts: Options) *Step {
|
||||||
\\@end
|
\\@end
|
||||||
});
|
});
|
||||||
foo_o.root_module.addIncludePath(foo_h.dirname());
|
foo_o.root_module.addIncludePath(foo_h.dirname());
|
||||||
foo_o.linkLibCpp();
|
foo_o.root_module.link_libcpp = true;
|
||||||
|
|
||||||
const exe = addExecutable(b, opts, .{ .name = "main", .objcpp_source_bytes =
|
const exe = addExecutable(b, opts, .{ .name = "main", .objcpp_source_bytes =
|
||||||
\\#import "Foo.h"
|
\\#import "Foo.h"
|
||||||
|
|
@ -1628,8 +1628,8 @@ fn testObjcpp(b: *Build, opts: Options) *Step {
|
||||||
\\}
|
\\}
|
||||||
});
|
});
|
||||||
exe.root_module.addIncludePath(foo_h.dirname());
|
exe.root_module.addIncludePath(foo_h.dirname());
|
||||||
exe.addObject(foo_o);
|
exe.root_module.addObject(foo_o);
|
||||||
exe.linkLibCpp();
|
exe.root_module.link_libcpp = true;
|
||||||
exe.root_module.linkFramework("Foundation", .{});
|
exe.root_module.linkFramework("Foundation", .{});
|
||||||
|
|
||||||
const run = addRunArtifact(exe);
|
const run = addRunArtifact(exe);
|
||||||
|
|
@ -1693,7 +1693,7 @@ fn testReexportsZig(b: *Build, opts: Options) *Step {
|
||||||
\\ return bar() - foo();
|
\\ return bar() - foo();
|
||||||
\\}
|
\\}
|
||||||
});
|
});
|
||||||
exe.linkLibrary(lib);
|
exe.root_module.linkLibrary(lib);
|
||||||
|
|
||||||
const run = addRunArtifact(exe);
|
const run = addRunArtifact(exe);
|
||||||
run.expectExitCode(0);
|
run.expectExitCode(0);
|
||||||
|
|
@ -1711,7 +1711,7 @@ fn testRelocatable(b: *Build, opts: Options) *Step {
|
||||||
\\ throw std::runtime_error("Oh no!");
|
\\ throw std::runtime_error("Oh no!");
|
||||||
\\}
|
\\}
|
||||||
});
|
});
|
||||||
a_o.linkLibCpp();
|
a_o.root_module.link_libcpp = true;
|
||||||
|
|
||||||
const b_o = addObject(b, opts, .{ .name = "b", .cpp_source_bytes =
|
const b_o = addObject(b, opts, .{ .name = "b", .cpp_source_bytes =
|
||||||
\\extern int try_me();
|
\\extern int try_me();
|
||||||
|
|
@ -1733,19 +1733,19 @@ fn testRelocatable(b: *Build, opts: Options) *Step {
|
||||||
\\ return 0;
|
\\ return 0;
|
||||||
\\}
|
\\}
|
||||||
});
|
});
|
||||||
main_o.linkLibCpp();
|
main_o.root_module.link_libcpp = true;
|
||||||
|
|
||||||
const exp_stdout = "exception=Oh no!";
|
const exp_stdout = "exception=Oh no!";
|
||||||
|
|
||||||
{
|
{
|
||||||
const c_o = addObject(b, opts, .{ .name = "c" });
|
const c_o = addObject(b, opts, .{ .name = "c" });
|
||||||
c_o.addObject(a_o);
|
c_o.root_module.addObject(a_o);
|
||||||
c_o.addObject(b_o);
|
c_o.root_module.addObject(b_o);
|
||||||
|
|
||||||
const exe = addExecutable(b, opts, .{ .name = "main1" });
|
const exe = addExecutable(b, opts, .{ .name = "main1" });
|
||||||
exe.addObject(main_o);
|
exe.root_module.addObject(main_o);
|
||||||
exe.addObject(c_o);
|
exe.root_module.addObject(c_o);
|
||||||
exe.linkLibCpp();
|
exe.root_module.link_libcpp = true;
|
||||||
|
|
||||||
const run = addRunArtifact(exe);
|
const run = addRunArtifact(exe);
|
||||||
run.expectStdOutEqual(exp_stdout);
|
run.expectStdOutEqual(exp_stdout);
|
||||||
|
|
@ -1754,13 +1754,13 @@ fn testRelocatable(b: *Build, opts: Options) *Step {
|
||||||
|
|
||||||
{
|
{
|
||||||
const d_o = addObject(b, opts, .{ .name = "d" });
|
const d_o = addObject(b, opts, .{ .name = "d" });
|
||||||
d_o.addObject(a_o);
|
d_o.root_module.addObject(a_o);
|
||||||
d_o.addObject(b_o);
|
d_o.root_module.addObject(b_o);
|
||||||
d_o.addObject(main_o);
|
d_o.root_module.addObject(main_o);
|
||||||
|
|
||||||
const exe = addExecutable(b, opts, .{ .name = "main2" });
|
const exe = addExecutable(b, opts, .{ .name = "main2" });
|
||||||
exe.addObject(d_o);
|
exe.root_module.addObject(d_o);
|
||||||
exe.linkLibCpp();
|
exe.root_module.link_libcpp = true;
|
||||||
|
|
||||||
const run = addRunArtifact(exe);
|
const run = addRunArtifact(exe);
|
||||||
run.expectStdOutEqual(exp_stdout);
|
run.expectStdOutEqual(exp_stdout);
|
||||||
|
|
@ -1805,12 +1805,12 @@ fn testRelocatableZig(b: *Build, opts: Options) *Step {
|
||||||
});
|
});
|
||||||
|
|
||||||
const c_o = addObject(b, opts, .{ .name = "c" });
|
const c_o = addObject(b, opts, .{ .name = "c" });
|
||||||
c_o.addObject(a_o);
|
c_o.root_module.addObject(a_o);
|
||||||
c_o.addObject(b_o);
|
c_o.root_module.addObject(b_o);
|
||||||
c_o.addObject(main_o);
|
c_o.root_module.addObject(main_o);
|
||||||
|
|
||||||
const exe = addExecutable(b, opts, .{ .name = "main" });
|
const exe = addExecutable(b, opts, .{ .name = "main" });
|
||||||
exe.addObject(c_o);
|
exe.root_module.addObject(c_o);
|
||||||
|
|
||||||
const run = addRunArtifact(exe);
|
const run = addRunArtifact(exe);
|
||||||
run.addCheck(.{ .expect_stderr_match = b.dupe("incrFoo=1") });
|
run.addCheck(.{ .expect_stderr_match = b.dupe("incrFoo=1") });
|
||||||
|
|
@ -1833,10 +1833,10 @@ fn testSearchStrategy(b: *Build, opts: Options) *Step {
|
||||||
});
|
});
|
||||||
|
|
||||||
const liba = addStaticLibrary(b, opts, .{ .name = "a" });
|
const liba = addStaticLibrary(b, opts, .{ .name = "a" });
|
||||||
liba.addObject(obj);
|
liba.root_module.addObject(obj);
|
||||||
|
|
||||||
const dylib = addSharedLibrary(b, opts, .{ .name = "a" });
|
const dylib = addSharedLibrary(b, opts, .{ .name = "a" });
|
||||||
dylib.addObject(obj);
|
dylib.root_module.addObject(obj);
|
||||||
|
|
||||||
const main_o = addObject(b, opts, .{ .name = "main", .c_source_bytes =
|
const main_o = addObject(b, opts, .{ .name = "main", .c_source_bytes =
|
||||||
\\#include<stdio.h>
|
\\#include<stdio.h>
|
||||||
|
|
@ -1850,7 +1850,7 @@ fn testSearchStrategy(b: *Build, opts: Options) *Step {
|
||||||
|
|
||||||
{
|
{
|
||||||
const exe = addExecutable(b, opts, .{ .name = "main" });
|
const exe = addExecutable(b, opts, .{ .name = "main" });
|
||||||
exe.addObject(main_o);
|
exe.root_module.addObject(main_o);
|
||||||
exe.root_module.linkSystemLibrary("a", .{ .use_pkg_config = .no, .search_strategy = .mode_first });
|
exe.root_module.linkSystemLibrary("a", .{ .use_pkg_config = .no, .search_strategy = .mode_first });
|
||||||
exe.root_module.addLibraryPath(liba.getEmittedBinDirectory());
|
exe.root_module.addLibraryPath(liba.getEmittedBinDirectory());
|
||||||
exe.root_module.addLibraryPath(dylib.getEmittedBinDirectory());
|
exe.root_module.addLibraryPath(dylib.getEmittedBinDirectory());
|
||||||
|
|
@ -1869,7 +1869,7 @@ fn testSearchStrategy(b: *Build, opts: Options) *Step {
|
||||||
|
|
||||||
{
|
{
|
||||||
const exe = addExecutable(b, opts, .{ .name = "main" });
|
const exe = addExecutable(b, opts, .{ .name = "main" });
|
||||||
exe.addObject(main_o);
|
exe.root_module.addObject(main_o);
|
||||||
exe.root_module.linkSystemLibrary("a", .{ .use_pkg_config = .no, .search_strategy = .paths_first });
|
exe.root_module.linkSystemLibrary("a", .{ .use_pkg_config = .no, .search_strategy = .paths_first });
|
||||||
exe.root_module.addLibraryPath(liba.getEmittedBinDirectory());
|
exe.root_module.addLibraryPath(liba.getEmittedBinDirectory());
|
||||||
exe.root_module.addLibraryPath(dylib.getEmittedBinDirectory());
|
exe.root_module.addLibraryPath(dylib.getEmittedBinDirectory());
|
||||||
|
|
@ -1924,9 +1924,9 @@ fn testSectionBoundarySymbols(b: *Build, opts: Options) *Step {
|
||||||
});
|
});
|
||||||
|
|
||||||
const exe = addExecutable(b, opts, .{ .name = "test" });
|
const exe = addExecutable(b, opts, .{ .name = "test" });
|
||||||
exe.addObject(obj1);
|
exe.root_module.addObject(obj1);
|
||||||
exe.addObject(obj2);
|
exe.root_module.addObject(obj2);
|
||||||
exe.addObject(main_o);
|
exe.root_module.addObject(main_o);
|
||||||
|
|
||||||
const run = b.addRunArtifact(exe);
|
const run = b.addRunArtifact(exe);
|
||||||
run.skip_foreign_checks = true;
|
run.skip_foreign_checks = true;
|
||||||
|
|
@ -1951,9 +1951,9 @@ fn testSectionBoundarySymbols(b: *Build, opts: Options) *Step {
|
||||||
});
|
});
|
||||||
|
|
||||||
const exe = addExecutable(b, opts, .{ .name = "test" });
|
const exe = addExecutable(b, opts, .{ .name = "test" });
|
||||||
exe.addObject(obj1);
|
exe.root_module.addObject(obj1);
|
||||||
exe.addObject(obj3);
|
exe.root_module.addObject(obj3);
|
||||||
exe.addObject(main_o);
|
exe.root_module.addObject(main_o);
|
||||||
|
|
||||||
const run = b.addRunArtifact(exe);
|
const run = b.addRunArtifact(exe);
|
||||||
run.skip_foreign_checks = true;
|
run.skip_foreign_checks = true;
|
||||||
|
|
@ -2031,9 +2031,9 @@ fn testSegmentBoundarySymbols(b: *Build, opts: Options) *Step {
|
||||||
});
|
});
|
||||||
|
|
||||||
const exe = addExecutable(b, opts, .{ .name = "main" });
|
const exe = addExecutable(b, opts, .{ .name = "main" });
|
||||||
exe.addObject(obj1);
|
exe.root_module.addObject(obj1);
|
||||||
exe.addObject(obj2);
|
exe.root_module.addObject(obj2);
|
||||||
exe.addObject(main_o);
|
exe.root_module.addObject(main_o);
|
||||||
|
|
||||||
const run = addRunArtifact(exe);
|
const run = addRunArtifact(exe);
|
||||||
run.expectStdOutEqual("All your codebase are belong to us.\n");
|
run.expectStdOutEqual("All your codebase are belong to us.\n");
|
||||||
|
|
@ -2054,9 +2054,9 @@ fn testSegmentBoundarySymbols(b: *Build, opts: Options) *Step {
|
||||||
});
|
});
|
||||||
|
|
||||||
const exe = addExecutable(b, opts, .{ .name = "main2" });
|
const exe = addExecutable(b, opts, .{ .name = "main2" });
|
||||||
exe.addObject(obj1);
|
exe.root_module.addObject(obj1);
|
||||||
exe.addObject(obj2);
|
exe.root_module.addObject(obj2);
|
||||||
exe.addObject(main_o);
|
exe.root_module.addObject(main_o);
|
||||||
|
|
||||||
const check = exe.checkObject();
|
const check = exe.checkObject();
|
||||||
check.checkInHeaders();
|
check.checkInHeaders();
|
||||||
|
|
@ -2102,9 +2102,9 @@ fn testSymbolStabs(b: *Build, opts: Options) *Step {
|
||||||
});
|
});
|
||||||
|
|
||||||
const exe = addExecutable(b, opts, .{ .name = "main" });
|
const exe = addExecutable(b, opts, .{ .name = "main" });
|
||||||
exe.addObject(a_o);
|
exe.root_module.addObject(a_o);
|
||||||
exe.addObject(b_o);
|
exe.root_module.addObject(b_o);
|
||||||
exe.addObject(main_o);
|
exe.root_module.addObject(main_o);
|
||||||
|
|
||||||
const run = addRunArtifact(exe);
|
const run = addRunArtifact(exe);
|
||||||
run.expectStdOutEqual("foo=42,bar=24");
|
run.expectStdOutEqual("foo=42,bar=24");
|
||||||
|
|
@ -2299,7 +2299,7 @@ fn testTlsPointers(b: *Build, opts: Options) *Step {
|
||||||
\\}
|
\\}
|
||||||
});
|
});
|
||||||
bar_o.root_module.addIncludePath(foo_h.dirname());
|
bar_o.root_module.addIncludePath(foo_h.dirname());
|
||||||
bar_o.linkLibCpp();
|
bar_o.root_module.link_libcpp = true;
|
||||||
|
|
||||||
const baz_o = addObject(b, opts, .{ .name = "baz", .cpp_source_bytes =
|
const baz_o = addObject(b, opts, .{ .name = "baz", .cpp_source_bytes =
|
||||||
\\#include "foo.h"
|
\\#include "foo.h"
|
||||||
|
|
@ -2309,7 +2309,7 @@ fn testTlsPointers(b: *Build, opts: Options) *Step {
|
||||||
\\}
|
\\}
|
||||||
});
|
});
|
||||||
baz_o.root_module.addIncludePath(foo_h.dirname());
|
baz_o.root_module.addIncludePath(foo_h.dirname());
|
||||||
baz_o.linkLibCpp();
|
baz_o.root_module.link_libcpp = true;
|
||||||
|
|
||||||
const main_o = addObject(b, opts, .{ .name = "main", .cpp_source_bytes =
|
const main_o = addObject(b, opts, .{ .name = "main", .cpp_source_bytes =
|
||||||
\\extern int bar();
|
\\extern int bar();
|
||||||
|
|
@ -2321,13 +2321,13 @@ fn testTlsPointers(b: *Build, opts: Options) *Step {
|
||||||
\\}
|
\\}
|
||||||
});
|
});
|
||||||
main_o.root_module.addIncludePath(foo_h.dirname());
|
main_o.root_module.addIncludePath(foo_h.dirname());
|
||||||
main_o.linkLibCpp();
|
main_o.root_module.link_libcpp = true;
|
||||||
|
|
||||||
const exe = addExecutable(b, opts, .{ .name = "main" });
|
const exe = addExecutable(b, opts, .{ .name = "main" });
|
||||||
exe.addObject(bar_o);
|
exe.root_module.addObject(bar_o);
|
||||||
exe.addObject(baz_o);
|
exe.root_module.addObject(baz_o);
|
||||||
exe.addObject(main_o);
|
exe.root_module.addObject(main_o);
|
||||||
exe.linkLibCpp();
|
exe.root_module.link_libcpp = true;
|
||||||
|
|
||||||
const run = addRunArtifact(exe);
|
const run = addRunArtifact(exe);
|
||||||
run.expectExitCode(0);
|
run.expectExitCode(0);
|
||||||
|
|
@ -2445,7 +2445,7 @@ fn testTwoLevelNamespace(b: *Build, opts: Options) *Step {
|
||||||
|
|
||||||
{
|
{
|
||||||
const exe = addExecutable(b, opts, .{ .name = "main1" });
|
const exe = addExecutable(b, opts, .{ .name = "main1" });
|
||||||
exe.addObject(main_o);
|
exe.root_module.addObject(main_o);
|
||||||
exe.root_module.linkSystemLibrary("a", .{});
|
exe.root_module.linkSystemLibrary("a", .{});
|
||||||
exe.root_module.linkSystemLibrary("b", .{});
|
exe.root_module.linkSystemLibrary("b", .{});
|
||||||
exe.root_module.addLibraryPath(liba.getEmittedBinDirectory());
|
exe.root_module.addLibraryPath(liba.getEmittedBinDirectory());
|
||||||
|
|
@ -2474,7 +2474,7 @@ fn testTwoLevelNamespace(b: *Build, opts: Options) *Step {
|
||||||
|
|
||||||
{
|
{
|
||||||
const exe = addExecutable(b, opts, .{ .name = "main2" });
|
const exe = addExecutable(b, opts, .{ .name = "main2" });
|
||||||
exe.addObject(main_o);
|
exe.root_module.addObject(main_o);
|
||||||
exe.root_module.linkSystemLibrary("b", .{});
|
exe.root_module.linkSystemLibrary("b", .{});
|
||||||
exe.root_module.linkSystemLibrary("a", .{});
|
exe.root_module.linkSystemLibrary("a", .{});
|
||||||
exe.root_module.addLibraryPath(liba.getEmittedBinDirectory());
|
exe.root_module.addLibraryPath(liba.getEmittedBinDirectory());
|
||||||
|
|
@ -2510,14 +2510,14 @@ fn testDiscardLocalSymbols(b: *Build, opts: Options) *Step {
|
||||||
const obj = addObject(b, opts, .{ .name = "a", .c_source_bytes = "static int foo = 42;" });
|
const obj = addObject(b, opts, .{ .name = "a", .c_source_bytes = "static int foo = 42;" });
|
||||||
|
|
||||||
const lib = addStaticLibrary(b, opts, .{ .name = "a" });
|
const lib = addStaticLibrary(b, opts, .{ .name = "a" });
|
||||||
lib.addObject(obj);
|
lib.root_module.addObject(obj);
|
||||||
|
|
||||||
const main_o = addObject(b, opts, .{ .name = "main", .c_source_bytes = "int main() { return 0; }" });
|
const main_o = addObject(b, opts, .{ .name = "main", .c_source_bytes = "int main() { return 0; }" });
|
||||||
|
|
||||||
{
|
{
|
||||||
const exe = addExecutable(b, opts, .{ .name = "main3" });
|
const exe = addExecutable(b, opts, .{ .name = "main3" });
|
||||||
exe.addObject(main_o);
|
exe.root_module.addObject(main_o);
|
||||||
exe.addObject(obj);
|
exe.root_module.addObject(obj);
|
||||||
exe.discard_local_symbols = true;
|
exe.discard_local_symbols = true;
|
||||||
|
|
||||||
const run = addRunArtifact(exe);
|
const run = addRunArtifact(exe);
|
||||||
|
|
@ -2532,8 +2532,8 @@ fn testDiscardLocalSymbols(b: *Build, opts: Options) *Step {
|
||||||
|
|
||||||
{
|
{
|
||||||
const exe = addExecutable(b, opts, .{ .name = "main4" });
|
const exe = addExecutable(b, opts, .{ .name = "main4" });
|
||||||
exe.addObject(main_o);
|
exe.root_module.addObject(main_o);
|
||||||
exe.linkLibrary(lib);
|
exe.root_module.linkLibrary(lib);
|
||||||
exe.discard_local_symbols = true;
|
exe.discard_local_symbols = true;
|
||||||
|
|
||||||
const run = addRunArtifact(exe);
|
const run = addRunArtifact(exe);
|
||||||
|
|
@ -2555,14 +2555,14 @@ fn testUndefinedFlag(b: *Build, opts: Options) *Step {
|
||||||
const obj = addObject(b, opts, .{ .name = "a", .c_source_bytes = "int foo = 42;" });
|
const obj = addObject(b, opts, .{ .name = "a", .c_source_bytes = "int foo = 42;" });
|
||||||
|
|
||||||
const lib = addStaticLibrary(b, opts, .{ .name = "a" });
|
const lib = addStaticLibrary(b, opts, .{ .name = "a" });
|
||||||
lib.addObject(obj);
|
lib.root_module.addObject(obj);
|
||||||
|
|
||||||
const main_o = addObject(b, opts, .{ .name = "main", .c_source_bytes = "int main() { return 0; }" });
|
const main_o = addObject(b, opts, .{ .name = "main", .c_source_bytes = "int main() { return 0; }" });
|
||||||
|
|
||||||
{
|
{
|
||||||
const exe = addExecutable(b, opts, .{ .name = "main1" });
|
const exe = addExecutable(b, opts, .{ .name = "main1" });
|
||||||
exe.addObject(main_o);
|
exe.root_module.addObject(main_o);
|
||||||
exe.linkLibrary(lib);
|
exe.root_module.linkLibrary(lib);
|
||||||
exe.forceUndefinedSymbol("_foo");
|
exe.forceUndefinedSymbol("_foo");
|
||||||
|
|
||||||
const run = addRunArtifact(exe);
|
const run = addRunArtifact(exe);
|
||||||
|
|
@ -2577,8 +2577,8 @@ fn testUndefinedFlag(b: *Build, opts: Options) *Step {
|
||||||
|
|
||||||
{
|
{
|
||||||
const exe = addExecutable(b, opts, .{ .name = "main2" });
|
const exe = addExecutable(b, opts, .{ .name = "main2" });
|
||||||
exe.addObject(main_o);
|
exe.root_module.addObject(main_o);
|
||||||
exe.linkLibrary(lib);
|
exe.root_module.linkLibrary(lib);
|
||||||
exe.forceUndefinedSymbol("_foo");
|
exe.forceUndefinedSymbol("_foo");
|
||||||
exe.link_gc_sections = true;
|
exe.link_gc_sections = true;
|
||||||
|
|
||||||
|
|
@ -2594,8 +2594,8 @@ fn testUndefinedFlag(b: *Build, opts: Options) *Step {
|
||||||
|
|
||||||
{
|
{
|
||||||
const exe = addExecutable(b, opts, .{ .name = "main3" });
|
const exe = addExecutable(b, opts, .{ .name = "main3" });
|
||||||
exe.addObject(main_o);
|
exe.root_module.addObject(main_o);
|
||||||
exe.addObject(obj);
|
exe.root_module.addObject(obj);
|
||||||
|
|
||||||
const run = addRunArtifact(exe);
|
const run = addRunArtifact(exe);
|
||||||
run.expectExitCode(0);
|
run.expectExitCode(0);
|
||||||
|
|
@ -2609,8 +2609,8 @@ fn testUndefinedFlag(b: *Build, opts: Options) *Step {
|
||||||
|
|
||||||
{
|
{
|
||||||
const exe = addExecutable(b, opts, .{ .name = "main4" });
|
const exe = addExecutable(b, opts, .{ .name = "main4" });
|
||||||
exe.addObject(main_o);
|
exe.root_module.addObject(main_o);
|
||||||
exe.addObject(obj);
|
exe.root_module.addObject(obj);
|
||||||
exe.link_gc_sections = true;
|
exe.link_gc_sections = true;
|
||||||
|
|
||||||
const run = addRunArtifact(exe);
|
const run = addRunArtifact(exe);
|
||||||
|
|
@ -2642,7 +2642,7 @@ fn testUnresolvedError(b: *Build, opts: Options) *Step {
|
||||||
\\ std.debug.print("foo() + bar() = {d}", .{foo() + bar()});
|
\\ std.debug.print("foo() + bar() = {d}", .{foo() + bar()});
|
||||||
\\}
|
\\}
|
||||||
});
|
});
|
||||||
exe.addObject(obj);
|
exe.root_module.addObject(obj);
|
||||||
|
|
||||||
// TODO order should match across backends if possible
|
// TODO order should match across backends if possible
|
||||||
if (opts.use_llvm) {
|
if (opts.use_llvm) {
|
||||||
|
|
@ -2764,7 +2764,7 @@ fn testUnwindInfo(b: *Build, opts: Options) *Step {
|
||||||
\\}
|
\\}
|
||||||
});
|
});
|
||||||
main_o.root_module.addIncludePath(all_h.dirname());
|
main_o.root_module.addIncludePath(all_h.dirname());
|
||||||
main_o.linkLibCpp();
|
main_o.root_module.link_libcpp = true;
|
||||||
|
|
||||||
const simple_string_o = addObject(b, opts, .{ .name = "simple_string", .cpp_source_bytes =
|
const simple_string_o = addObject(b, opts, .{ .name = "simple_string", .cpp_source_bytes =
|
||||||
\\#include "all.h"
|
\\#include "all.h"
|
||||||
|
|
@ -2799,7 +2799,7 @@ fn testUnwindInfo(b: *Build, opts: Options) *Step {
|
||||||
\\}
|
\\}
|
||||||
});
|
});
|
||||||
simple_string_o.root_module.addIncludePath(all_h.dirname());
|
simple_string_o.root_module.addIncludePath(all_h.dirname());
|
||||||
simple_string_o.linkLibCpp();
|
simple_string_o.root_module.link_libcpp = true;
|
||||||
|
|
||||||
const simple_string_owner_o = addObject(b, opts, .{ .name = "simple_string_owner", .cpp_source_bytes =
|
const simple_string_owner_o = addObject(b, opts, .{ .name = "simple_string_owner", .cpp_source_bytes =
|
||||||
\\#include "all.h"
|
\\#include "all.h"
|
||||||
|
|
@ -2816,7 +2816,7 @@ fn testUnwindInfo(b: *Build, opts: Options) *Step {
|
||||||
\\}
|
\\}
|
||||||
});
|
});
|
||||||
simple_string_owner_o.root_module.addIncludePath(all_h.dirname());
|
simple_string_owner_o.root_module.addIncludePath(all_h.dirname());
|
||||||
simple_string_owner_o.linkLibCpp();
|
simple_string_owner_o.root_module.link_libcpp = true;
|
||||||
|
|
||||||
const exp_stdout =
|
const exp_stdout =
|
||||||
\\Constructed: a
|
\\Constructed: a
|
||||||
|
|
@ -2828,10 +2828,10 @@ fn testUnwindInfo(b: *Build, opts: Options) *Step {
|
||||||
;
|
;
|
||||||
|
|
||||||
const exe = addExecutable(b, opts, .{ .name = "main" });
|
const exe = addExecutable(b, opts, .{ .name = "main" });
|
||||||
exe.addObject(main_o);
|
exe.root_module.addObject(main_o);
|
||||||
exe.addObject(simple_string_o);
|
exe.root_module.addObject(simple_string_o);
|
||||||
exe.addObject(simple_string_owner_o);
|
exe.root_module.addObject(simple_string_owner_o);
|
||||||
exe.linkLibCpp();
|
exe.root_module.link_libcpp = true;
|
||||||
|
|
||||||
const run = addRunArtifact(exe);
|
const run = addRunArtifact(exe);
|
||||||
run.expectStdOutEqual(exp_stdout);
|
run.expectStdOutEqual(exp_stdout);
|
||||||
|
|
@ -2896,7 +2896,7 @@ fn testUnwindInfoNoSubsectionsArm64(b: *Build, opts: Options) *Step {
|
||||||
\\ return 0;
|
\\ return 0;
|
||||||
\\}
|
\\}
|
||||||
});
|
});
|
||||||
exe.addObject(a_o);
|
exe.root_module.addObject(a_o);
|
||||||
|
|
||||||
const run = addRunArtifact(exe);
|
const run = addRunArtifact(exe);
|
||||||
run.expectStdOutEqual("4\n");
|
run.expectStdOutEqual("4\n");
|
||||||
|
|
@ -2948,7 +2948,7 @@ fn testUnwindInfoNoSubsectionsX64(b: *Build, opts: Options) *Step {
|
||||||
\\ return 0;
|
\\ return 0;
|
||||||
\\}
|
\\}
|
||||||
});
|
});
|
||||||
exe.addObject(a_o);
|
exe.root_module.addObject(a_o);
|
||||||
|
|
||||||
const run = addRunArtifact(exe);
|
const run = addRunArtifact(exe);
|
||||||
run.expectStdOutEqual("4\n");
|
run.expectStdOutEqual("4\n");
|
||||||
|
|
@ -3052,7 +3052,7 @@ fn testWeakBind(b: *Build, opts: Options) *Step {
|
||||||
\\ .quad 0
|
\\ .quad 0
|
||||||
\\ .quad _weak_internal_tlv$tlv$init
|
\\ .quad _weak_internal_tlv$tlv$init
|
||||||
});
|
});
|
||||||
exe.linkLibrary(lib);
|
exe.root_module.linkLibrary(lib);
|
||||||
|
|
||||||
{
|
{
|
||||||
const check = exe.checkObject();
|
const check = exe.checkObject();
|
||||||
|
|
|
||||||
2
test/link/wasm/extern/build.zig
vendored
2
test/link/wasm/extern/build.zig
vendored
|
|
@ -16,7 +16,7 @@ fn add(b: *std.Build, test_step: *std.Build.Step, optimize: std.builtin.Optimize
|
||||||
.target = b.resolveTargetQuery(.{ .cpu_arch = .wasm32, .os_tag = .wasi }),
|
.target = b.resolveTargetQuery(.{ .cpu_arch = .wasm32, .os_tag = .wasi }),
|
||||||
}),
|
}),
|
||||||
});
|
});
|
||||||
exe.addCSourceFile(.{ .file = b.path("foo.c"), .flags = &.{} });
|
exe.root_module.addCSourceFile(.{ .file = b.path("foo.c"), .flags = &.{} });
|
||||||
exe.use_llvm = false;
|
exe.use_llvm = false;
|
||||||
exe.use_lld = false;
|
exe.use_lld = false;
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -560,7 +560,7 @@ pub fn lowerToTranslateCSteps(
|
||||||
.root_module = translate_c.createModule(),
|
.root_module = translate_c.createModule(),
|
||||||
});
|
});
|
||||||
run_exe.step.name = b.fmt("{s} build-exe", .{annotated_case_name});
|
run_exe.step.name = b.fmt("{s} build-exe", .{annotated_case_name});
|
||||||
run_exe.linkLibC();
|
run_exe.root_module.link_libc = true;
|
||||||
const run = b.addRunArtifact(run_exe);
|
const run = b.addRunArtifact(run_exe);
|
||||||
run.step.name = b.fmt("{s} run", .{annotated_case_name});
|
run.step.name = b.fmt("{s} run", .{annotated_case_name});
|
||||||
run.expectStdOutEqual(output);
|
run.expectStdOutEqual(output);
|
||||||
|
|
|
||||||
|
|
@ -89,7 +89,7 @@ pub fn addCase(self: *RunTranslatedCContext, case: *const TestCase) void {
|
||||||
.root_module = translate_c.createModule(),
|
.root_module = translate_c.createModule(),
|
||||||
});
|
});
|
||||||
exe.step.name = b.fmt("{s} build-exe", .{annotated_case_name});
|
exe.step.name = b.fmt("{s} build-exe", .{annotated_case_name});
|
||||||
exe.linkLibC();
|
exe.root_module.link_libc = true;
|
||||||
const run = b.addRunArtifact(exe);
|
const run = b.addRunArtifact(exe);
|
||||||
run.step.name = b.fmt("{s} run", .{annotated_case_name});
|
run.step.name = b.fmt("{s} run", .{annotated_case_name});
|
||||||
if (!case.allow_warnings) {
|
if (!case.allow_warnings) {
|
||||||
|
|
|
||||||
|
|
@ -13,12 +13,12 @@ pub fn build(b: *std.Build) void {
|
||||||
.optimize = optimize,
|
.optimize = optimize,
|
||||||
}),
|
}),
|
||||||
});
|
});
|
||||||
exe.addCSourceFile(.{
|
exe.root_module.addCSourceFile(.{
|
||||||
.file = b.path("test.c"),
|
.file = b.path("test.c"),
|
||||||
.flags = &.{"-std=c23"},
|
.flags = &.{"-std=c23"},
|
||||||
});
|
});
|
||||||
exe.linkLibC();
|
exe.root_module.link_libc = true;
|
||||||
exe.addEmbedPath(b.path("data"));
|
exe.root_module.addEmbedPath(b.path("data"));
|
||||||
|
|
||||||
const run_c_cmd = b.addRunArtifact(exe);
|
const run_c_cmd = b.addRunArtifact(exe);
|
||||||
run_c_cmd.expectExitCode(0);
|
run_c_cmd.expectExitCode(0);
|
||||||
|
|
|
||||||
4
test/standalone/extern/build.zig
vendored
4
test/standalone/extern/build.zig
vendored
|
|
@ -31,8 +31,8 @@ pub fn build(b: *std.Build) void {
|
||||||
.target = b.graph.host,
|
.target = b.graph.host,
|
||||||
.optimize = optimize,
|
.optimize = optimize,
|
||||||
}) });
|
}) });
|
||||||
test_exe.addObject(obj);
|
test_exe.root_module.addObject(obj);
|
||||||
test_exe.linkLibrary(shared);
|
test_exe.root_module.linkLibrary(shared);
|
||||||
|
|
||||||
test_step.dependOn(&b.addRunArtifact(test_exe).step);
|
test_step.dependOn(&b.addRunArtifact(test_exe).step);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -8,7 +8,7 @@ pub fn build(b: *std.Build) void {
|
||||||
.root_source_file = b.path("main.zig"),
|
.root_source_file = b.path("main.zig"),
|
||||||
.target = b.graph.host,
|
.target = b.graph.host,
|
||||||
}) });
|
}) });
|
||||||
test_artifact.addIncludePath(b.path("a_directory"));
|
test_artifact.root_module.addIncludePath(b.path("a_directory"));
|
||||||
|
|
||||||
// TODO: actually check the output
|
// TODO: actually check the output
|
||||||
_ = test_artifact.getEmittedBin();
|
_ = test_artifact.getEmittedBin();
|
||||||
|
|
|
||||||
|
|
@ -109,7 +109,7 @@ pub fn build(b: *std.Build) void {
|
||||||
// .use_llvm = true,
|
// .use_llvm = true,
|
||||||
// });
|
// });
|
||||||
|
|
||||||
// exe.linkLibrary(c_shared_lib);
|
// exe.root_module.linkLibrary(c_shared_lib);
|
||||||
|
|
||||||
// const run_cmd = b.addRunArtifact(exe);
|
// const run_cmd = b.addRunArtifact(exe);
|
||||||
// test_step.dependOn(&run_cmd.step);
|
// test_step.dependOn(&run_cmd.step);
|
||||||
|
|
|
||||||
|
|
@ -2371,10 +2371,10 @@ pub fn addModuleTests(b: *std.Build, options: ModuleTestOptions) *Step {
|
||||||
} else "";
|
} else "";
|
||||||
const use_pic = if (test_target.pic == true) "-pic" else "";
|
const use_pic = if (test_target.pic == true) "-pic" else "";
|
||||||
|
|
||||||
for (options.include_paths) |include_path| these_tests.addIncludePath(b.path(include_path));
|
for (options.include_paths) |include_path| these_tests.root_module.addIncludePath(b.path(include_path));
|
||||||
|
|
||||||
if (target.os.tag == .windows) {
|
if (target.os.tag == .windows) {
|
||||||
for (options.windows_libs) |lib| these_tests.linkSystemLibrary(lib);
|
for (options.windows_libs) |lib| these_tests.root_module.linkSystemLibrary(lib, .{});
|
||||||
}
|
}
|
||||||
|
|
||||||
const qualified_name = b.fmt("{s}-{s}-{s}-{s}{s}{s}{s}{s}{s}{s}", .{
|
const qualified_name = b.fmt("{s}-{s}-{s}-{s}{s}{s}{s}{s}{s}{s}", .{
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue