mirror of
				https://github.com/lightpanda-io/browser.git
				synced 2025-10-30 15:41:48 +00:00 
			
		
		
		
	Compare commits
	
		
			2 Commits
		
	
	
		
			28ec8d4b94
			...
			v8-build-w
		
	
	| Author | SHA1 | Date | |
|---|---|---|---|
|   | 5190ca06c4 | ||
|   | 5679595a6c | 
							
								
								
									
										15
									
								
								Makefile
									
									
									
									
									
								
							
							
						
						
									
										15
									
								
								Makefile
									
									
									
									
									
								
							| @@ -47,7 +47,7 @@ help: | ||||
|  | ||||
| # $(ZIG) commands | ||||
| # ------------ | ||||
| .PHONY: build build-dev run run-release shell test bench download-zig wpt data get-v8 build-v8 build-v8-dev | ||||
| .PHONY: build build-dev run run-release shell test bench download-zig wpt data | ||||
| .PHONY: end2end | ||||
|  | ||||
| zig_version = $(shell grep 'recommended_zig_version = "' "vendor/zig-js-runtime/build.zig" | cut -d'"' -f2) | ||||
| @@ -112,19 +112,6 @@ end2end: | ||||
| 	@test -d ../demo | ||||
| 	cd ../demo && go run runner/main.go | ||||
|  | ||||
| ## v8 | ||||
| get-v8: | ||||
| 	@printf "\e[36mGetting v8 source...\e[0m\n" | ||||
| 	@$(ZIG) build get-v8 | ||||
|  | ||||
| build-v8-dev: | ||||
| 	@printf "\e[36mBuilding v8 (dev)...\e[0m\n" | ||||
| 	@$(ZIG) build build-v8 | ||||
|  | ||||
| build-v8: | ||||
| 	@printf "\e[36mBuilding v8...\e[0m\n" | ||||
| 	@$(ZIG) build -Doptimize=ReleaseSafe build-v8 | ||||
|  | ||||
| # Install and build required dependencies commands | ||||
| # ------------ | ||||
| .PHONY: install-submodule | ||||
|   | ||||
							
								
								
									
										57
									
								
								build.zig
									
									
									
									
									
								
							
							
						
						
									
										57
									
								
								build.zig
									
									
									
									
									
								
							| @@ -46,6 +46,8 @@ pub fn build(b: *Build) !void { | ||||
|         b.option([]const u8, "git_commit", "Current git commit") orelse "dev", | ||||
|     ); | ||||
|  | ||||
|     const prebuilt_v8_path = b.option([]const u8, "prebuilt_v8_path", "Path to prebuilt libc_v8.a"); | ||||
|  | ||||
|     const target = b.standardTargetOptions(.{}); | ||||
|     const optimize = b.standardOptimizeOption(.{}); | ||||
|  | ||||
| @@ -59,7 +61,7 @@ pub fn build(b: *Build) !void { | ||||
|         .link_libc = true, | ||||
|         .link_libcpp = true, | ||||
|     }); | ||||
|     try addDependencies(b, lightpanda_module, opts); | ||||
|     try addDependencies(b, lightpanda_module, opts, prebuilt_v8_path); | ||||
|  | ||||
|     { | ||||
|         // browser | ||||
| @@ -113,7 +115,7 @@ pub fn build(b: *Build) !void { | ||||
|             .target = target, | ||||
|             .optimize = optimize, | ||||
|         }); | ||||
|         try addDependencies(b, wpt_module, opts); | ||||
|         try addDependencies(b, wpt_module, opts, prebuilt_v8_path); | ||||
|  | ||||
|         // compile and install | ||||
|         const wpt = b.addExecutable(.{ | ||||
| @@ -131,27 +133,9 @@ pub fn build(b: *Build) !void { | ||||
|         const wpt_step = b.step("wpt", "WPT tests"); | ||||
|         wpt_step.dependOn(&wpt_cmd.step); | ||||
|     } | ||||
|  | ||||
|     { | ||||
|         // get v8 | ||||
|         // ------- | ||||
|         const v8 = b.dependency("v8", .{ .target = target, .optimize = optimize }); | ||||
|         const get_v8 = b.addRunArtifact(v8.artifact("get-v8")); | ||||
|         const get_step = b.step("get-v8", "Get v8"); | ||||
|         get_step.dependOn(&get_v8.step); | ||||
|     } | ||||
|  | ||||
|     { | ||||
|         // build v8 | ||||
|         // ------- | ||||
|         const v8 = b.dependency("v8", .{ .target = target, .optimize = optimize }); | ||||
|         const build_v8 = b.addRunArtifact(v8.artifact("build-v8")); | ||||
|         const build_step = b.step("build-v8", "Build v8"); | ||||
|         build_step.dependOn(&build_v8.step); | ||||
|     } | ||||
| } | ||||
|  | ||||
| fn addDependencies(b: *Build, mod: *Build.Module, opts: *Build.Step.Options) !void { | ||||
| fn addDependencies(b: *Build, mod: *Build.Module, opts: *Build.Step.Options, prebuilt_v8_path: ?[]const u8) !void { | ||||
|     try moduleNetSurf(b, mod); | ||||
|     mod.addImport("build_config", opts.createModule()); | ||||
|  | ||||
| @@ -159,6 +143,7 @@ fn addDependencies(b: *Build, mod: *Build.Module, opts: *Build.Step.Options) !vo | ||||
|     const dep_opts = .{ | ||||
|         .target = target, | ||||
|         .optimize = mod.optimize.?, | ||||
|         .prebuilt_v8_path = prebuilt_v8_path, | ||||
|     }; | ||||
|  | ||||
|     mod.addIncludePath(b.path("vendor/lightpanda")); | ||||
| @@ -171,36 +156,6 @@ fn addDependencies(b: *Build, mod: *Build.Module, opts: *Build.Step.Options) !vo | ||||
|         const v8_mod = b.dependency("v8", dep_opts).module("v8"); | ||||
|         v8_mod.addOptions("default_exports", v8_opts); | ||||
|         mod.addImport("v8", v8_mod); | ||||
|  | ||||
|         const release_dir = if (mod.optimize.? == .Debug) "debug" else "release"; | ||||
|         const os = switch (target.result.os.tag) { | ||||
|             .linux => "linux", | ||||
|             .macos => "macos", | ||||
|             else => return error.UnsupportedPlatform, | ||||
|         }; | ||||
|         var lib_path = try std.fmt.allocPrint( | ||||
|             mod.owner.allocator, | ||||
|             "v8/out/{s}/{s}/obj/zig/libc_v8.a", | ||||
|             .{ os, release_dir }, | ||||
|         ); | ||||
|         std.fs.cwd().access(lib_path, .{}) catch { | ||||
|             // legacy path | ||||
|             lib_path = try std.fmt.allocPrint( | ||||
|                 mod.owner.allocator, | ||||
|                 "v8/out/{s}/obj/zig/libc_v8.a", | ||||
|                 .{release_dir}, | ||||
|             ); | ||||
|         }; | ||||
|         mod.addObjectFile(mod.owner.path(lib_path)); | ||||
|  | ||||
|         switch (target.result.os.tag) { | ||||
|             .macos => { | ||||
|                 // v8 has a dependency, abseil-cpp, which, on Mac, uses CoreFoundation | ||||
|                 mod.addSystemFrameworkPath(.{ .cwd_relative = "/System/Library/Frameworks" }); | ||||
|                 mod.linkFramework("CoreFoundation", .{}); | ||||
|             }, | ||||
|             else => {}, | ||||
|         } | ||||
|     } | ||||
|  | ||||
|     { | ||||
|   | ||||
| @@ -5,9 +5,9 @@ | ||||
|     .fingerprint = 0xda130f3af836cea0, | ||||
|     .dependencies = .{ | ||||
|         .v8 = .{ | ||||
|             .url = "https://github.com/lightpanda-io/zig-v8-fork/archive/305bb3706716d32d59b2ffa674731556caa1002b.tar.gz", | ||||
|             .hash = "v8-0.0.0-xddH63bVAwBSEobaUok9J0er1FqsvEujCDDVy6ItqKQ5", | ||||
|             .url = "https://github.com/lightpanda-io/zig-v8-fork/archive/543fb7b40a0e139ebe38e1401942b6506222daf3.tar.gz", | ||||
|             .hash = "v8-0.0.0-xddH6-kmBAAdoG6goGoo3pMwzfL73XiFgcj82vYbLym4", | ||||
|         }, | ||||
|         //.v8 = .{ .path = "../zig-v8-fork" } | ||||
|         // .v8 = .{ .path = "../zig-v8-fork" }, | ||||
|     }, | ||||
| } | ||||
|   | ||||
		Reference in New Issue
	
	Block a user