gpu-dawn: use source scanning for abseil-cpp target
Signed-off-by: Stephen Gutekanst <stephen@hexops.com>
This commit is contained in:
parent
3ba2436192
commit
ce9608897b
2 changed files with 83 additions and 121 deletions
|
|
@ -1053,13 +1053,40 @@ fn buildLibAbseilCpp(b: *Builder, step: *std.build.LibExeObjStep, options: Optio
|
|||
}) catch unreachable;
|
||||
|
||||
// absl
|
||||
lib.addCSourceFiles(&.{
|
||||
thisDir() ++ "/src/dawn/sources/abseil.cc",
|
||||
thisDir() ++ "/libs/dawn/third_party/abseil-cpp/absl/strings/numbers.cc",
|
||||
thisDir() ++ "/libs/dawn/third_party/abseil-cpp/absl/time/internal/cctz/src/time_zone_posix.cc",
|
||||
thisDir() ++ "/libs/dawn/third_party/abseil-cpp/absl/time/format.cc",
|
||||
thisDir() ++ "/libs/dawn/third_party/abseil-cpp/absl/random/internal/randen_hwaes.cc",
|
||||
}, flags.items);
|
||||
const source_dirs = &[_][]const u8{
|
||||
"third_party/abseil-cpp/absl/strings/",
|
||||
"third_party/abseil-cpp/absl/strings/internal/",
|
||||
"third_party/abseil-cpp/absl/strings/internal/str_format/",
|
||||
"third_party/abseil-cpp/absl/types/",
|
||||
"third_party/abseil-cpp/absl/flags/internal/",
|
||||
"third_party/abseil-cpp/absl/flags/",
|
||||
"third_party/abseil-cpp/absl/synchronization/",
|
||||
"third_party/abseil-cpp/absl/synchronization/internal/",
|
||||
"third_party/abseil-cpp/absl/hash/internal/",
|
||||
"third_party/abseil-cpp/absl/debugging/",
|
||||
"third_party/abseil-cpp/absl/debugging/internal/",
|
||||
"third_party/abseil-cpp/absl/status/",
|
||||
"third_party/abseil-cpp/absl/time/internal/cctz/src/",
|
||||
"third_party/abseil-cpp/absl/time/",
|
||||
"third_party/abseil-cpp/absl/container/internal/",
|
||||
"third_party/abseil-cpp/absl/numeric/",
|
||||
"third_party/abseil-cpp/absl/random/",
|
||||
"third_party/abseil-cpp/absl/random/internal/",
|
||||
"third_party/abseil-cpp/absl/base/internal/",
|
||||
"third_party/abseil-cpp/absl/base/",
|
||||
};
|
||||
var sources = std.ArrayList([]const u8).init(b.allocator);
|
||||
inline for (source_dirs) |dir| {
|
||||
scanSources(
|
||||
b,
|
||||
&sources,
|
||||
"libs/dawn/" ++ dir,
|
||||
&.{".cpp", ".c", ".cc"},
|
||||
&.{},
|
||||
&.{"_test", "_testing", "benchmark"},
|
||||
) catch unreachable;
|
||||
}
|
||||
lib.addCSourceFiles(sources.items, flags.items);
|
||||
return lib;
|
||||
}
|
||||
|
||||
|
|
@ -1166,3 +1193,52 @@ fn include(comptime rel: []const u8) []const u8 {
|
|||
fn thisDir() []const u8 {
|
||||
return std.fs.path.dirname(@src().file) orelse ".";
|
||||
}
|
||||
|
||||
/// Scans rel_dir for sources ending with one of the provided extensions, excluding relative paths
|
||||
/// listed in the excluded list.
|
||||
/// Results are appended to the dst ArrayList.
|
||||
fn scanSources(
|
||||
b: *Builder,
|
||||
dst: *std.ArrayList([]const u8),
|
||||
comptime rel_dir: []const u8,
|
||||
extensions: []const []const u8,
|
||||
excluding: []const []const u8,
|
||||
excluding_contains: []const []const u8,
|
||||
) !void {
|
||||
const abs_dir = thisDir() ++ "/" ++ rel_dir;
|
||||
var dir = try std.fs.openDirAbsolute(abs_dir, .{ .iterate = true });
|
||||
defer dir.close();
|
||||
var dir_it = dir.iterate();
|
||||
while (try dir_it.next()) |entry| {
|
||||
if (entry.kind != .File) continue;
|
||||
var abs_path = try std.fs.path.join(b.allocator, &.{ abs_dir, entry.name });
|
||||
abs_path = try std.fs.realpathAlloc(b.allocator, abs_path);
|
||||
|
||||
const allowed_extension = blk: {
|
||||
const ours = std.fs.path.extension(entry.name);
|
||||
for (extensions) |ext| {
|
||||
if (std.mem.eql(u8, ours, ext)) break :blk true;
|
||||
}
|
||||
break :blk false;
|
||||
};
|
||||
if (!allowed_extension) continue;
|
||||
|
||||
const excluded = blk: {
|
||||
for (excluding) |excluded| {
|
||||
if (std.mem.eql(u8, entry.name, excluded)) break :blk true;
|
||||
}
|
||||
break :blk false;
|
||||
};
|
||||
if (excluded) continue;
|
||||
|
||||
const excluded_contains = blk: {
|
||||
for (excluding_contains) |contains| {
|
||||
if (std.mem.containsAtLeast(u8, entry.name, 1, contains)) break :blk true;
|
||||
}
|
||||
break :blk false;
|
||||
};
|
||||
if (excluded_contains) continue;
|
||||
|
||||
try dst.append(abs_path);
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,114 +0,0 @@
|
|||
#include "third_party/abseil-cpp/absl/strings/match.cc"
|
||||
#include "third_party/abseil-cpp/absl/strings/internal/charconv_bigint.cc"
|
||||
#include "third_party/abseil-cpp/absl/strings/internal/cord_rep_btree_reader.cc"
|
||||
#include "third_party/abseil-cpp/absl/strings/internal/cordz_info.cc"
|
||||
#include "third_party/abseil-cpp/absl/strings/internal/cord_internal.cc"
|
||||
#include "third_party/abseil-cpp/absl/strings/internal/cordz_sample_token.cc"
|
||||
#include "third_party/abseil-cpp/absl/strings/internal/cord_rep_consume.cc"
|
||||
#include "third_party/abseil-cpp/absl/strings/internal/charconv_parse.cc"
|
||||
#include "third_party/abseil-cpp/absl/strings/internal/str_format/arg.cc"
|
||||
#include "third_party/abseil-cpp/absl/strings/internal/str_format/float_conversion.cc"
|
||||
#include "third_party/abseil-cpp/absl/strings/internal/str_format/output.cc"
|
||||
#include "third_party/abseil-cpp/absl/strings/internal/str_format/bind.cc"
|
||||
#include "third_party/abseil-cpp/absl/strings/internal/str_format/parser.cc"
|
||||
#include "third_party/abseil-cpp/absl/strings/internal/str_format/extension.cc"
|
||||
#include "third_party/abseil-cpp/absl/strings/internal/cord_rep_ring.cc"
|
||||
#include "third_party/abseil-cpp/absl/strings/internal/cordz_handle.cc"
|
||||
#include "third_party/abseil-cpp/absl/strings/internal/memutil.cc"
|
||||
#include "third_party/abseil-cpp/absl/strings/internal/ostringstream.cc"
|
||||
#include "third_party/abseil-cpp/absl/strings/internal/pow10_helper.cc"
|
||||
#include "third_party/abseil-cpp/absl/strings/internal/utf8.cc"
|
||||
#include "third_party/abseil-cpp/absl/strings/internal/cordz_functions.cc"
|
||||
#include "third_party/abseil-cpp/absl/strings/internal/cord_rep_btree_navigator.cc"
|
||||
#include "third_party/abseil-cpp/absl/strings/internal/escaping.cc"
|
||||
#include "third_party/abseil-cpp/absl/strings/internal/cord_rep_btree.cc"
|
||||
#include "third_party/abseil-cpp/absl/strings/string_view.cc"
|
||||
#include "third_party/abseil-cpp/absl/strings/str_cat.cc"
|
||||
#include "third_party/abseil-cpp/absl/strings/cord.cc"
|
||||
#include "third_party/abseil-cpp/absl/strings/ascii.cc"
|
||||
#include "third_party/abseil-cpp/absl/strings/charconv.cc"
|
||||
#include "third_party/abseil-cpp/absl/strings/str_split.cc"
|
||||
#include "third_party/abseil-cpp/absl/strings/substitute.cc"
|
||||
#include "third_party/abseil-cpp/absl/strings/escaping.cc"
|
||||
#include "third_party/abseil-cpp/absl/strings/str_replace.cc"
|
||||
#include "third_party/abseil-cpp/absl/types/bad_any_cast.cc"
|
||||
#include "third_party/abseil-cpp/absl/types/bad_optional_access.cc"
|
||||
#include "third_party/abseil-cpp/absl/types/bad_variant_access.cc"
|
||||
#include "third_party/abseil-cpp/absl/flags/parse.cc"
|
||||
#include "third_party/abseil-cpp/absl/flags/usage.cc"
|
||||
#include "third_party/abseil-cpp/absl/flags/internal/private_handle_accessor.cc"
|
||||
#include "third_party/abseil-cpp/absl/flags/internal/usage.cc"
|
||||
#include "third_party/abseil-cpp/absl/flags/internal/program_name.cc"
|
||||
#include "third_party/abseil-cpp/absl/flags/internal/flag.cc"
|
||||
#include "third_party/abseil-cpp/absl/flags/internal/commandlineflag.cc"
|
||||
#include "third_party/abseil-cpp/absl/flags/reflection.cc"
|
||||
#include "third_party/abseil-cpp/absl/flags/usage_config.cc"
|
||||
#include "third_party/abseil-cpp/absl/flags/flag.cc"
|
||||
#include "third_party/abseil-cpp/absl/flags/marshalling.cc"
|
||||
#include "third_party/abseil-cpp/absl/flags/commandlineflag.cc"
|
||||
#include "third_party/abseil-cpp/absl/synchronization/blocking_counter.cc"
|
||||
#include "third_party/abseil-cpp/absl/synchronization/mutex.cc"
|
||||
#include "third_party/abseil-cpp/absl/synchronization/internal/per_thread_sem.cc"
|
||||
#include "third_party/abseil-cpp/absl/synchronization/internal/create_thread_identity.cc"
|
||||
#include "third_party/abseil-cpp/absl/synchronization/internal/waiter.cc"
|
||||
#include "third_party/abseil-cpp/absl/synchronization/internal/graphcycles.cc"
|
||||
#include "third_party/abseil-cpp/absl/synchronization/barrier.cc"
|
||||
#include "third_party/abseil-cpp/absl/synchronization/notification.cc"
|
||||
#include "third_party/abseil-cpp/absl/hash/internal/low_level_hash.cc"
|
||||
#include "third_party/abseil-cpp/absl/hash/internal/hash.cc"
|
||||
#include "third_party/abseil-cpp/absl/hash/internal/city.cc"
|
||||
#include "third_party/abseil-cpp/absl/debugging/symbolize.cc"
|
||||
#include "third_party/abseil-cpp/absl/debugging/failure_signal_handler.cc"
|
||||
#include "third_party/abseil-cpp/absl/debugging/leak_check_disable.cc"
|
||||
#include "third_party/abseil-cpp/absl/debugging/internal/examine_stack.cc"
|
||||
#include "third_party/abseil-cpp/absl/debugging/internal/vdso_support.cc"
|
||||
#include "third_party/abseil-cpp/absl/debugging/internal/stack_consumption.cc"
|
||||
#include "third_party/abseil-cpp/absl/debugging/internal/address_is_readable.cc"
|
||||
#include "third_party/abseil-cpp/absl/debugging/internal/elf_mem_image.cc"
|
||||
#include "third_party/abseil-cpp/absl/debugging/internal/demangle.cc"
|
||||
#include "third_party/abseil-cpp/absl/debugging/leak_check.cc"
|
||||
#include "third_party/abseil-cpp/absl/debugging/stacktrace.cc"
|
||||
#include "third_party/abseil-cpp/absl/status/status_payload_printer.cc"
|
||||
#include "third_party/abseil-cpp/absl/status/status.cc"
|
||||
#include "third_party/abseil-cpp/absl/status/statusor.cc"
|
||||
#include "third_party/abseil-cpp/absl/time/internal/cctz/src/time_zone_format.cc"
|
||||
#include "third_party/abseil-cpp/absl/time/internal/cctz/src/time_zone_impl.cc"
|
||||
#include "third_party/abseil-cpp/absl/time/internal/cctz/src/time_zone_lookup.cc"
|
||||
#include "third_party/abseil-cpp/absl/time/internal/cctz/src/time_zone_info.cc"
|
||||
#include "third_party/abseil-cpp/absl/time/internal/cctz/src/time_zone_if.cc"
|
||||
#include "third_party/abseil-cpp/absl/time/internal/cctz/src/time_zone_fixed.cc"
|
||||
#include "third_party/abseil-cpp/absl/time/internal/cctz/src/zone_info_source.cc"
|
||||
#include "third_party/abseil-cpp/absl/time/internal/cctz/src/time_zone_libc.cc"
|
||||
#include "third_party/abseil-cpp/absl/time/internal/cctz/src/civil_time_detail.cc"
|
||||
#include "third_party/abseil-cpp/absl/time/clock.cc"
|
||||
#include "third_party/abseil-cpp/absl/time/duration.cc"
|
||||
#include "third_party/abseil-cpp/absl/time/civil_time.cc"
|
||||
#include "third_party/abseil-cpp/absl/time/time.cc"
|
||||
#include "third_party/abseil-cpp/absl/container/internal/raw_hash_set.cc"
|
||||
#include "third_party/abseil-cpp/absl/container/internal/hashtablez_sampler_force_weak_definition.cc"
|
||||
#include "third_party/abseil-cpp/absl/container/internal/hashtablez_sampler.cc"
|
||||
#include "third_party/abseil-cpp/absl/numeric/int128.cc"
|
||||
#include "third_party/abseil-cpp/absl/random/gaussian_distribution.cc"
|
||||
#include "third_party/abseil-cpp/absl/random/discrete_distribution.cc"
|
||||
#include "third_party/abseil-cpp/absl/random/seed_gen_exception.cc"
|
||||
#include "third_party/abseil-cpp/absl/random/internal/seed_material.cc"
|
||||
#include "third_party/abseil-cpp/absl/random/internal/randen_slow.cc"
|
||||
#include "third_party/abseil-cpp/absl/random/internal/randen.cc"
|
||||
#include "third_party/abseil-cpp/absl/random/internal/randen_detect.cc"
|
||||
#include "third_party/abseil-cpp/absl/random/internal/randen_round_keys.cc"
|
||||
#include "third_party/abseil-cpp/absl/random/internal/pool_urbg.cc"
|
||||
#include "third_party/abseil-cpp/absl/random/seed_sequences.cc"
|
||||
#include "third_party/abseil-cpp/absl/base/internal/spinlock_wait.cc"
|
||||
#include "third_party/abseil-cpp/absl/base/internal/periodic_sampler.cc"
|
||||
#include "third_party/abseil-cpp/absl/base/internal/cycleclock.cc"
|
||||
#include "third_party/abseil-cpp/absl/base/internal/spinlock.cc"
|
||||
#include "third_party/abseil-cpp/absl/base/internal/unscaledcycleclock.cc"
|
||||
#include "third_party/abseil-cpp/absl/base/internal/scoped_set_env.cc"
|
||||
#include "third_party/abseil-cpp/absl/base/internal/sysinfo.cc"
|
||||
#include "third_party/abseil-cpp/absl/base/internal/raw_logging.cc"
|
||||
#include "third_party/abseil-cpp/absl/base/internal/throw_delegate.cc"
|
||||
#include "third_party/abseil-cpp/absl/base/internal/strerror.cc"
|
||||
#include "third_party/abseil-cpp/absl/base/internal/thread_identity.cc"
|
||||
#include "third_party/abseil-cpp/absl/base/internal/exponential_biased.cc"
|
||||
#include "third_party/abseil-cpp/absl/base/internal/low_level_alloc.cc"
|
||||
#include "third_party/abseil-cpp/absl/base/log_severity.cc"
|
||||
Loading…
Add table
Add a link
Reference in a new issue