cppgc: Explicitly fail on V8 target with cppgc_is_standalone

building the unittests target for example fails when cppgc_is_standalone
is set to true due to conflicting implementations of trace-event.h. It
is not clear from the output for these failures that V8 targets cannot
be built with cppgc_is_standalone.
We could disable all non-cppgc targets that depend on cppgc when
cppgc_is_standalone is set, but that would be fragile and dirty.
Since all V8 targets need to include cppgc-js headers, adding a  static
assert in cpp-heap.h would cover all V8 targets. The static assert
doesn't hide the current output, butadds a clear and expllicit message
stating that it cannot be done.

Bug: chromium:1056170
Change-Id: I8bd1b1a5ada18d9688e6b78de4693386539d78bf
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2826535
Reviewed-by: Michael Lippautz <mlippautz@chromium.org>
Commit-Queue: Omer Katz <omerkatz@chromium.org>
Cr-Commit-Position: refs/heads/master@{#73968}
This commit is contained in:
Omer Katz 2021-04-15 02:40:05 +02:00 committed by Commit Bot
parent 75c5d82be6
commit 37c7eb2722

View File

@ -5,6 +5,11 @@
#ifndef V8_HEAP_CPPGC_JS_CPP_HEAP_H_
#define V8_HEAP_CPPGC_JS_CPP_HEAP_H_
#if CPPGC_IS_STANDALONE
static_assert(
false, "V8 targets can not be built with cppgc_is_standalone set to true.");
#endif
#include "include/v8-cppgc.h"
#include "include/v8.h"
#include "src/base/macros.h"