Summary: X-link: https://github.com/facebook/react-native/pull/43405 Pull Request resolved: https://github.com/facebook/yoga/pull/1592 Fixes https://github.com/facebook/yoga/issues/1590 Yoga may be built with a high warning level. This is helpful in letting Yoga be used in more places, and finding defects. We currently set these in the internal BUCK build, the CMake reference build, and the Yoga Standalone (not RN) CocoaPods build. Yoga's reference CMake build and spec are consumed today by users of Yoga, instead of just Yoga developers. Here, it makes more sense to avoid anything that could break compiler-to-compiler compatibility. We default these to a less intense (`-Wall -Werror`). I kept `/W4`, for pragmatic reasons, and since it is relatively standard for MSVC. We continue to build with strict flags on Buck build on Clang. Reviewed By: cortinico Differential Revision: D54735661 fbshipit-source-id: 130e35ac9dcffa2f7e70e48d18770f1275864e2a
51 lines
1.4 KiB
CMake
51 lines
1.4 KiB
CMake
# Copyright (c) Meta Platforms, Inc. and affiliates.
|
|
#
|
|
# This source code is licensed under the MIT license found in the
|
|
# LICENSE file in the root directory of this source tree.
|
|
|
|
set(CMAKE_CXX_STANDARD 20)
|
|
set(CMAKE_CXX_VISIBILITY_PRESET hidden)
|
|
set(CMAKE_POSITION_INDEPENDENT_CODE ON)
|
|
|
|
add_compile_definitions($<$<CONFIG:DEBUG>:DEBUG>)
|
|
|
|
if(MSVC)
|
|
|
|
add_compile_options(
|
|
# Don't omit frame pointers (e.g. for crash dumps)
|
|
/Oy-
|
|
# "Standard C++ exception handling" (C++ stack unwinding including extern c)
|
|
/EHsc
|
|
# Enable warnings and warnings as errors
|
|
/W4
|
|
/WX
|
|
# Disable RTTI
|
|
$<$<COMPILE_LANGUAGE:CXX>:/GR->
|
|
# Use /O2 (Maximize Speed)
|
|
$<$<CONFIG:RELEASE>:/O2>)
|
|
|
|
else()
|
|
|
|
add_compile_options(
|
|
# Don't omit frame pointers (e.g. for crash dumps)
|
|
-fno-omit-frame-pointer
|
|
# Enable exception handling
|
|
-fexceptions
|
|
# Enable warnings and warnings as errors
|
|
-Wall
|
|
-Werror
|
|
# Disable RTTI
|
|
$<$<COMPILE_LANGUAGE:CXX>:-fno-rtti>
|
|
# Use -O2 (prioritize speed)
|
|
$<$<CONFIG:RELEASE>:-O2>
|
|
# Enable separate sections per function/data item
|
|
$<$<CONFIG:RELEASE>:-ffunction-sections>
|
|
$<$<CONFIG:RELEASE>:-fdata-sections>)
|
|
|
|
add_link_options(
|
|
# Discard unused sections
|
|
$<$<CONFIG:RELEASE>:$<$<CXX_COMPILER_ID:Clang,GNU>:-Wl,--gc-sections>>
|
|
$<$<CONFIG:RELEASE>:$<$<CXX_COMPILER_ID:AppleClang>:-Wl,-dead_strip>>)
|
|
|
|
endif()
|