Exclude logging functionality outside debug builds

Summary: Don't compile in YGNodePrint in production builds

Reviewed By: davidaurelio

Differential Revision: D14258269

fbshipit-source-id: 15b5e94d241a752fea74a45263aa343265071451
This commit is contained in:
Eric Schlanger
2019-03-13 07:25:13 -07:00
committed by Facebook Github Bot
parent 0d96098fd9
commit 14f3827491
5 changed files with 28 additions and 1 deletions

17
BUCK
View File

@@ -15,6 +15,7 @@ COMPILER_FLAGS = LIBRARY_COMPILER_FLAGS + [
TEST_COMPILER_FLAGS = BASE_COMPILER_FLAGS + GMOCK_OVERRIDE_FLAGS + [
"-std=c++1y",
"-DDEBUG",
]
yoga_cxx_library(
@@ -31,6 +32,20 @@ yoga_cxx_library(
],
)
yoga_cxx_library(
name = "yogaForDebug",
srcs = glob(["yoga/*.cpp"]),
header_namespace = "",
exported_headers = subdir_glob([("", "yoga/*.h")]),
compiler_flags = TEST_COMPILER_FLAGS,
soname = "libyogacore.$(ext)",
tests = [":YogaTests"],
visibility = ["PUBLIC"],
deps = [
yoga_dep("lib/fb:ndklog"),
],
)
yoga_cxx_test(
name = "YogaTests",
srcs = glob(["tests/*.cpp"]),
@@ -39,7 +54,7 @@ yoga_cxx_test(
contacts = ["emilsj@fb.com"],
visibility = ["PUBLIC"],
deps = [
":yoga",
":yogaForDebug",
GTEST_TARGET,
],
)

View File

@@ -352,11 +352,13 @@ void jni_YGNodeReset(jlong nativePointer) {
}
void jni_YGNodePrint(jlong nativePointer) {
#ifdef DEBUG
const YGNodeRef node = _jlong2YGNodeRef(nativePointer);
YGNodePrint(
node,
(YGPrintOptions)(
YGPrintOptionsStyle | YGPrintOptionsLayout | YGPrintOptionsChildren));
#endif
}
void jni_YGNodeInsertChild(

View File

@@ -4,6 +4,7 @@
* This source code is licensed under the MIT license found in the LICENSE
* file in the root directory of this source tree.
*/
#ifdef DEBUG
#include "YGNodePrint.h"
#include <stdarg.h>
#include "YGEnums.h"
@@ -230,3 +231,4 @@ void YGNodeToString(
}
} // namespace yoga
} // namespace facebook
#endif

View File

@@ -4,6 +4,7 @@
* This source code is licensed under the MIT license found in the LICENSE
* file in the root directory of this source tree.
*/
#ifdef DEBUG
#pragma once
#include <string>
@@ -20,3 +21,4 @@ void YGNodeToString(
} // namespace yoga
} // namespace facebook
#endif

View File

@@ -979,6 +979,7 @@ bool YGLayoutNodeInternal(
YGMarkerLayoutData& layoutMarkerData,
void* const layoutContext);
#ifdef DEBUG
static void YGNodePrintInternal(
const YGNodeRef node,
const YGPrintOptions options) {
@@ -990,6 +991,7 @@ static void YGNodePrintInternal(
void YGNodePrint(const YGNodeRef node, const YGPrintOptions options) {
YGNodePrintInternal(node, options);
}
#endif
const std::array<YGEdge, 4> leading = {
{YGEdgeTop, YGEdgeBottom, YGEdgeLeft, YGEdgeRight}};
@@ -4091,6 +4093,7 @@ void YGNodeCalculateLayoutWithContext(
node->getLayout().direction, ownerWidth, ownerHeight, ownerWidth);
YGRoundToPixelGrid(node, node->getConfig()->pointScaleFactor, 0.0f, 0.0f);
#ifdef DEBUG
if (node->getConfig()->printTree) {
YGNodePrint(
node,
@@ -4098,6 +4101,7 @@ void YGNodeCalculateLayoutWithContext(
YGPrintOptionsLayout | YGPrintOptionsChildren |
YGPrintOptionsStyle));
}
#endif
}
// We want to get rid off `useLegacyStretchBehaviour` from YGConfig. But we
@@ -4147,6 +4151,7 @@ void YGNodeCalculateLayoutWithContext(
!originalNode->isLayoutTreeEqualToNode(*node);
node->setLayoutDoesLegacyFlagAffectsLayout(neededLegacyStretchBehaviour);
#ifdef DEBUG
if (originalNode->getConfig()->printTree) {
YGNodePrint(
originalNode,
@@ -4154,6 +4159,7 @@ void YGNodeCalculateLayoutWithContext(
YGPrintOptionsLayout | YGPrintOptionsChildren |
YGPrintOptionsStyle));
}
#endif
}
YGConfigFreeRecursive(originalNode);
YGNodeFreeRecursive(originalNode);