Summary: In "regular" header mode, Buck will symlink from `buck-out/` to the actual header file. This works fine with GCC and clang, but not with MSVC. Headers will be treated as different file, sidestepping `#pragma once` directives. As a result, all kinds of symbols get declared twice, leading to compile errors. Reviewed By: davidaurelio Differential Revision: D15781947 fbshipit-source-id: a3b4e211b8b74b9ef44fc39471a3009b2cf47260
58 lines
1.6 KiB
Python
58 lines
1.6 KiB
Python
# Copyright (c) Facebook, Inc. and its affiliates.
|
|
#
|
|
# This source code is licensed under the MIT license found in the
|
|
# LICENSE file in the root directory of this source tree.
|
|
load("//tools/build_defs/oss:yoga_defs.bzl", "BASE_COMPILER_FLAGS", "GTEST_TARGET", "LIBRARY_COMPILER_FLAGS", "subdir_glob", "yoga_cxx_library", "yoga_cxx_test", "yoga_dep")
|
|
|
|
GMOCK_OVERRIDE_FLAGS = [
|
|
# gmock does not mark mocked methods as override, ignore the warnings in tests
|
|
"-Wno-inconsistent-missing-override",
|
|
]
|
|
|
|
TEST_COMPILER_FLAGS = BASE_COMPILER_FLAGS + GMOCK_OVERRIDE_FLAGS + [
|
|
"-DDEBUG",
|
|
"-DYG_ENABLE_EVENTS",
|
|
]
|
|
|
|
yoga_cxx_library(
|
|
name = "yoga",
|
|
srcs = glob(["yoga/**/*.cpp"]),
|
|
compiler_flags = LIBRARY_COMPILER_FLAGS,
|
|
public_include_directories = ["."],
|
|
raw_headers = glob(["yoga/**/*.h"]),
|
|
soname = "libyogacore.$(ext)",
|
|
tests = [":YogaTests"],
|
|
visibility = ["PUBLIC"],
|
|
deps = [
|
|
yoga_dep("lib/fb:ndklog"),
|
|
],
|
|
)
|
|
|
|
yoga_cxx_library(
|
|
name = "yogaForDebug",
|
|
srcs = glob(["yoga/**/*.cpp"]),
|
|
compiler_flags = TEST_COMPILER_FLAGS,
|
|
public_include_directories = ["."],
|
|
raw_headers = glob(["yoga/**/*.h"]),
|
|
soname = "libyogacore.$(ext)",
|
|
tests = [":YogaTests"],
|
|
visibility = ["PUBLIC"],
|
|
deps = [
|
|
yoga_dep("lib/fb:ndklog"),
|
|
],
|
|
)
|
|
|
|
yoga_cxx_test(
|
|
name = "YogaTests",
|
|
srcs = glob(["tests/*.cpp"]),
|
|
headers = subdir_glob([("", "yoga/**/*.h")]),
|
|
compiler_flags = TEST_COMPILER_FLAGS,
|
|
contacts = ["emilsj@fb.com"],
|
|
visibility = ["PUBLIC"],
|
|
deps = [
|
|
":yogaForDebug",
|
|
yoga_dep("testutil:testutil"),
|
|
GTEST_TARGET,
|
|
],
|
|
)
|