From 65b792ce0bc5aaf9e30d5d0506a7af97e2a90a97 Mon Sep 17 00:00:00 2001 From: Nick Gerleman Date: Thu, 11 May 2023 03:05:24 -0700 Subject: [PATCH] Dirsync yoga `cmake` directory (#37372) Summary: Pull Request resolved: https://github.com/facebook/react-native/pull/37372 For usage in shelling into the reference build. I separately looked at moving `cmake` to be inline inside of `yoga`, but this ends up having a worse structure than being at the top level. I also cleaned up the dirsync naming to be more easy to understand. Changelog: [Internal] Reviewed By: yungsters Differential Revision: D45764337 fbshipit-source-id: f810db5d6acc7c4c92003beb2ac3399bd78b9886 --- .../yoga/cmake/project-defaults.cmake | 50 +++++++++++++++++++ .../yoga/cmake/yoga-config.cmake.in | 10 ++++ 2 files changed, 60 insertions(+) create mode 100644 packages/react-native/ReactCommon/yoga/cmake/project-defaults.cmake create mode 100644 packages/react-native/ReactCommon/yoga/cmake/yoga-config.cmake.in diff --git a/packages/react-native/ReactCommon/yoga/cmake/project-defaults.cmake b/packages/react-native/ReactCommon/yoga/cmake/project-defaults.cmake new file mode 100644 index 00000000000..87f0e6b791a --- /dev/null +++ b/packages/react-native/ReactCommon/yoga/cmake/project-defaults.cmake @@ -0,0 +1,50 @@ +# 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 14) +set(CMAKE_CXX_VISIBILITY_PRESET hidden) +set(CMAKE_POSITION_INDEPENDENT_CODE ON) + +add_compile_definitions($<$: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 + /W3 + /WX + # Disable RTTI + $<$:/GR-> + # Use /O2 (Maximize Speed) + $<$:/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 + $<$:-fno-rtti> + # Use -O2 (prioritize speed) + $<$:-O2> + # Enable separate sections per function/data item + $<$:-ffunction-sections> + $<$:-fdata-sections>) + +add_link_options( + # Discard unused sections + $<$:$<$:-Wl,--gc-sections>> + $<$:$<$:-Wl,-dead_strip>>) + +endif() diff --git a/packages/react-native/ReactCommon/yoga/cmake/yoga-config.cmake.in b/packages/react-native/ReactCommon/yoga/cmake/yoga-config.cmake.in new file mode 100644 index 00000000000..80b2dc51c83 --- /dev/null +++ b/packages/react-native/ReactCommon/yoga/cmake/yoga-config.cmake.in @@ -0,0 +1,10 @@ +# 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. + +@PACKAGE_INIT@ + +include("${CMAKE_CURRENT_LIST_DIR}/yogaTargets.cmake") + +check_required_components(yoga) \ No newline at end of file