diff --git a/packages/react-native/ReactAndroid/build.gradle.kts b/packages/react-native/ReactAndroid/build.gradle.kts index 894212355383..5a6fe3f7530e 100644 --- a/packages/react-native/ReactAndroid/build.gradle.kts +++ b/packages/react-native/ReactAndroid/build.gradle.kts @@ -142,6 +142,7 @@ val preparePrefab by Pair("../ReactCommon/react/renderer/core/", "react/renderer/core/"), // react_renderer_css Pair("../ReactCommon/react/renderer/css/", "react/renderer/css/"), + Pair("../ReactCommon/react/renderer/css/React/", "React/"), // react_debug Pair("../ReactCommon/react/debug/", "react/debug/"), Pair("../ReactCommon/react/debug/React/", "React/"), diff --git a/packages/react-native/ReactCommon/react/renderer/css/CMakeLists.txt b/packages/react-native/ReactCommon/react/renderer/css/CMakeLists.txt index 37f588e6bff9..b3e9955529a0 100644 --- a/packages/react-native/ReactCommon/react/renderer/css/CMakeLists.txt +++ b/packages/react-native/ReactCommon/react/renderer/css/CMakeLists.txt @@ -14,10 +14,13 @@ file(GLOB react_renderer_css_SRC CONFIGURE_DEPENDS *.cpp) if("${react_renderer_css_SRC}" STREQUAL "") add_library(react_renderer_css INTERFACE) - target_include_directories(react_renderer_css INTERFACE ${REACT_COMMON_DIR}) + target_include_directories(react_renderer_css INTERFACE + ${REACT_COMMON_DIR} + ${CMAKE_CURRENT_SOURCE_DIR}) target_link_libraries(react_renderer_css INTERFACE fast_float glog + react_cxxstableapi react_debug react_utils) target_compile_reactnative_options(react_renderer_css INTERFACE) @@ -25,10 +28,13 @@ if("${react_renderer_css_SRC}" STREQUAL "") else() add_library(react_renderer_css OBJECT ${react_renderer_css_SRC}) - target_include_directories(react_renderer_css PUBLIC ${REACT_COMMON_DIR}) + target_include_directories(react_renderer_css PUBLIC + ${REACT_COMMON_DIR} + ${CMAKE_CURRENT_SOURCE_DIR}) target_link_libraries(react_renderer_css fast_float glog + react_cxxstableapi react_debug react_utils) target_compile_reactnative_options(react_renderer_css PRIVATE) diff --git a/packages/react-native/ReactCommon/react/renderer/css/CSSAngle.h b/packages/react-native/ReactCommon/react/renderer/css/CSSAngle.h index bf7bcb1a7908..e7657e6e6cb5 100644 --- a/packages/react-native/ReactCommon/react/renderer/css/CSSAngle.h +++ b/packages/react-native/ReactCommon/react/renderer/css/CSSAngle.h @@ -7,6 +7,8 @@ #pragma once +#include + #include #include diff --git a/packages/react-native/ReactCommon/react/renderer/css/CSSAngleUnit.h b/packages/react-native/ReactCommon/react/renderer/css/CSSAngleUnit.h index 08dfe44648a1..fea9ca1c9a56 100644 --- a/packages/react-native/ReactCommon/react/renderer/css/CSSAngleUnit.h +++ b/packages/react-native/ReactCommon/react/renderer/css/CSSAngleUnit.h @@ -7,6 +7,8 @@ #pragma once +#include + #include #include #include diff --git a/packages/react-native/ReactCommon/react/renderer/css/CSSBackgroundImage.h b/packages/react-native/ReactCommon/react/renderer/css/CSSBackgroundImage.h index 75daa6853d85..1af10833c169 100644 --- a/packages/react-native/ReactCommon/react/renderer/css/CSSBackgroundImage.h +++ b/packages/react-native/ReactCommon/react/renderer/css/CSSBackgroundImage.h @@ -7,6 +7,8 @@ #pragma once +#include + #include #include diff --git a/packages/react-native/ReactCommon/react/renderer/css/CSSColor.h b/packages/react-native/ReactCommon/react/renderer/css/CSSColor.h index 91924cf389d6..48f03dfc2c71 100644 --- a/packages/react-native/ReactCommon/react/renderer/css/CSSColor.h +++ b/packages/react-native/ReactCommon/react/renderer/css/CSSColor.h @@ -7,6 +7,8 @@ #pragma once +#include + #include #include diff --git a/packages/react-native/ReactCommon/react/renderer/css/CSSColorFunction.h b/packages/react-native/ReactCommon/react/renderer/css/CSSColorFunction.h index 76c7da2b5292..8eee0bbe20df 100644 --- a/packages/react-native/ReactCommon/react/renderer/css/CSSColorFunction.h +++ b/packages/react-native/ReactCommon/react/renderer/css/CSSColorFunction.h @@ -7,6 +7,8 @@ #pragma once +#include + #include #include #include diff --git a/packages/react-native/ReactCommon/react/renderer/css/CSSCompoundDataType.h b/packages/react-native/ReactCommon/react/renderer/css/CSSCompoundDataType.h index 72fa717ca1e1..98ff36fe5153 100644 --- a/packages/react-native/ReactCommon/react/renderer/css/CSSCompoundDataType.h +++ b/packages/react-native/ReactCommon/react/renderer/css/CSSCompoundDataType.h @@ -7,6 +7,8 @@ #pragma once +#include + #include namespace facebook::react { diff --git a/packages/react-native/ReactCommon/react/renderer/css/CSSDataType.h b/packages/react-native/ReactCommon/react/renderer/css/CSSDataType.h index 99437d08ba3f..c3b9a8ba23b9 100644 --- a/packages/react-native/ReactCommon/react/renderer/css/CSSDataType.h +++ b/packages/react-native/ReactCommon/react/renderer/css/CSSDataType.h @@ -7,6 +7,8 @@ #pragma once +#include + #include #include #include diff --git a/packages/react-native/ReactCommon/react/renderer/css/CSSFilter.h b/packages/react-native/ReactCommon/react/renderer/css/CSSFilter.h index cfc0fd519185..b3a192f6ebad 100644 --- a/packages/react-native/ReactCommon/react/renderer/css/CSSFilter.h +++ b/packages/react-native/ReactCommon/react/renderer/css/CSSFilter.h @@ -7,6 +7,8 @@ #pragma once +#include + #include #include #include diff --git a/packages/react-native/ReactCommon/react/renderer/css/CSSFontVariant.h b/packages/react-native/ReactCommon/react/renderer/css/CSSFontVariant.h index b4749170fe43..4fc42cc84b1b 100644 --- a/packages/react-native/ReactCommon/react/renderer/css/CSSFontVariant.h +++ b/packages/react-native/ReactCommon/react/renderer/css/CSSFontVariant.h @@ -7,6 +7,8 @@ #pragma once +#include + #include #include #include diff --git a/packages/react-native/ReactCommon/react/renderer/css/CSSHexColor.h b/packages/react-native/ReactCommon/react/renderer/css/CSSHexColor.h index 89d126a4e43f..8734fa35ba2f 100644 --- a/packages/react-native/ReactCommon/react/renderer/css/CSSHexColor.h +++ b/packages/react-native/ReactCommon/react/renderer/css/CSSHexColor.h @@ -7,6 +7,8 @@ #pragma once +#include + #include #include diff --git a/packages/react-native/ReactCommon/react/renderer/css/CSSKeyword.h b/packages/react-native/ReactCommon/react/renderer/css/CSSKeyword.h index f75901853c86..eba64a40ef7c 100644 --- a/packages/react-native/ReactCommon/react/renderer/css/CSSKeyword.h +++ b/packages/react-native/ReactCommon/react/renderer/css/CSSKeyword.h @@ -7,6 +7,8 @@ #pragma once +#include + #include #include #include diff --git a/packages/react-native/ReactCommon/react/renderer/css/CSSLength.h b/packages/react-native/ReactCommon/react/renderer/css/CSSLength.h index 900b9d93972f..fa3e811cf771 100644 --- a/packages/react-native/ReactCommon/react/renderer/css/CSSLength.h +++ b/packages/react-native/ReactCommon/react/renderer/css/CSSLength.h @@ -7,6 +7,8 @@ #pragma once +#include + #include #include diff --git a/packages/react-native/ReactCommon/react/renderer/css/CSSLengthPercentage.h b/packages/react-native/ReactCommon/react/renderer/css/CSSLengthPercentage.h index 268a931b2b66..ba6416bcd59a 100644 --- a/packages/react-native/ReactCommon/react/renderer/css/CSSLengthPercentage.h +++ b/packages/react-native/ReactCommon/react/renderer/css/CSSLengthPercentage.h @@ -6,6 +6,8 @@ */ #pragma once + +#include #include #include #include diff --git a/packages/react-native/ReactCommon/react/renderer/css/CSSLengthUnit.h b/packages/react-native/ReactCommon/react/renderer/css/CSSLengthUnit.h index 1fc1a62cb630..76231f235126 100644 --- a/packages/react-native/ReactCommon/react/renderer/css/CSSLengthUnit.h +++ b/packages/react-native/ReactCommon/react/renderer/css/CSSLengthUnit.h @@ -7,6 +7,8 @@ #pragma once +#include + #include #include #include diff --git a/packages/react-native/ReactCommon/react/renderer/css/CSSList.h b/packages/react-native/ReactCommon/react/renderer/css/CSSList.h index 98004ec4a096..1651ef01d1e6 100644 --- a/packages/react-native/ReactCommon/react/renderer/css/CSSList.h +++ b/packages/react-native/ReactCommon/react/renderer/css/CSSList.h @@ -7,6 +7,8 @@ #pragma once +#include + #include #include #include diff --git a/packages/react-native/ReactCommon/react/renderer/css/CSSNamedColor.h b/packages/react-native/ReactCommon/react/renderer/css/CSSNamedColor.h index f77b7d338634..453f064246d9 100644 --- a/packages/react-native/ReactCommon/react/renderer/css/CSSNamedColor.h +++ b/packages/react-native/ReactCommon/react/renderer/css/CSSNamedColor.h @@ -7,6 +7,8 @@ #pragma once +#include + #include #include diff --git a/packages/react-native/ReactCommon/react/renderer/css/CSSNumber.h b/packages/react-native/ReactCommon/react/renderer/css/CSSNumber.h index d66eb56b3a1f..68b51cf2a846 100644 --- a/packages/react-native/ReactCommon/react/renderer/css/CSSNumber.h +++ b/packages/react-native/ReactCommon/react/renderer/css/CSSNumber.h @@ -7,6 +7,8 @@ #pragma once +#include + #include #include diff --git a/packages/react-native/ReactCommon/react/renderer/css/CSSPercentage.h b/packages/react-native/ReactCommon/react/renderer/css/CSSPercentage.h index 39c4c2cb640f..3d9bf612a1fb 100644 --- a/packages/react-native/ReactCommon/react/renderer/css/CSSPercentage.h +++ b/packages/react-native/ReactCommon/react/renderer/css/CSSPercentage.h @@ -7,6 +7,8 @@ #pragma once +#include + #include #include diff --git a/packages/react-native/ReactCommon/react/renderer/css/CSSRatio.h b/packages/react-native/ReactCommon/react/renderer/css/CSSRatio.h index 6440f101b195..426ac6fc151f 100644 --- a/packages/react-native/ReactCommon/react/renderer/css/CSSRatio.h +++ b/packages/react-native/ReactCommon/react/renderer/css/CSSRatio.h @@ -7,6 +7,8 @@ #pragma once +#include + #include #include diff --git a/packages/react-native/ReactCommon/react/renderer/css/CSSShadow.h b/packages/react-native/ReactCommon/react/renderer/css/CSSShadow.h index 3e0788fc9ad9..60a534a82ec4 100644 --- a/packages/react-native/ReactCommon/react/renderer/css/CSSShadow.h +++ b/packages/react-native/ReactCommon/react/renderer/css/CSSShadow.h @@ -7,6 +7,8 @@ #pragma once +#include + #include #include diff --git a/packages/react-native/ReactCommon/react/renderer/css/CSSSyntaxParser.h b/packages/react-native/ReactCommon/react/renderer/css/CSSSyntaxParser.h index 248c9378395b..a166e632da06 100644 --- a/packages/react-native/ReactCommon/react/renderer/css/CSSSyntaxParser.h +++ b/packages/react-native/ReactCommon/react/renderer/css/CSSSyntaxParser.h @@ -7,6 +7,8 @@ #pragma once +#include + #include #include diff --git a/packages/react-native/ReactCommon/react/renderer/css/CSSToken.h b/packages/react-native/ReactCommon/react/renderer/css/CSSToken.h index 4194ea179924..8d6b8a2415dd 100644 --- a/packages/react-native/ReactCommon/react/renderer/css/CSSToken.h +++ b/packages/react-native/ReactCommon/react/renderer/css/CSSToken.h @@ -7,6 +7,8 @@ #pragma once +#include + #include namespace facebook::react { diff --git a/packages/react-native/ReactCommon/react/renderer/css/CSSTokenizer.h b/packages/react-native/ReactCommon/react/renderer/css/CSSTokenizer.h index 17e3e6ccd708..06fb02b11b5b 100644 --- a/packages/react-native/ReactCommon/react/renderer/css/CSSTokenizer.h +++ b/packages/react-native/ReactCommon/react/renderer/css/CSSTokenizer.h @@ -7,6 +7,8 @@ #pragma once +#include + #include #include diff --git a/packages/react-native/ReactCommon/react/renderer/css/CSSTransform.h b/packages/react-native/ReactCommon/react/renderer/css/CSSTransform.h index d287ce5327e1..5698bf08da21 100644 --- a/packages/react-native/ReactCommon/react/renderer/css/CSSTransform.h +++ b/packages/react-native/ReactCommon/react/renderer/css/CSSTransform.h @@ -7,6 +7,8 @@ #pragma once +#include + #include #include #include diff --git a/packages/react-native/ReactCommon/react/renderer/css/CSSTransformOrigin.h b/packages/react-native/ReactCommon/react/renderer/css/CSSTransformOrigin.h index f2ed5baa8b2d..0a4309a10e79 100644 --- a/packages/react-native/ReactCommon/react/renderer/css/CSSTransformOrigin.h +++ b/packages/react-native/ReactCommon/react/renderer/css/CSSTransformOrigin.h @@ -7,6 +7,8 @@ #pragma once +#include + #include #include #include diff --git a/packages/react-native/ReactCommon/react/renderer/css/CSSValueParser.h b/packages/react-native/ReactCommon/react/renderer/css/CSSValueParser.h index a0cc05d027b2..e4a169196e03 100644 --- a/packages/react-native/ReactCommon/react/renderer/css/CSSValueParser.h +++ b/packages/react-native/ReactCommon/react/renderer/css/CSSValueParser.h @@ -7,6 +7,8 @@ #pragma once +#include + #include #include #include diff --git a/packages/react-native/ReactCommon/react/renderer/css/CSSZero.h b/packages/react-native/ReactCommon/react/renderer/css/CSSZero.h index 8f24fcc04c87..a39b9275acc4 100644 --- a/packages/react-native/ReactCommon/react/renderer/css/CSSZero.h +++ b/packages/react-native/ReactCommon/react/renderer/css/CSSZero.h @@ -7,6 +7,8 @@ #pragma once +#include + #include #include diff --git a/packages/react-native/ReactCommon/react/renderer/css/React-renderercss.podspec b/packages/react-native/ReactCommon/react/renderer/css/React-renderercss.podspec index 23c37bc980cc..a012eadc5f4e 100644 --- a/packages/react-native/ReactCommon/react/renderer/css/React-renderercss.podspec +++ b/packages/react-native/ReactCommon/react/renderer/css/React-renderercss.podspec @@ -31,9 +31,8 @@ Pod::Spec.new do |s| s.author = "Meta Platforms, Inc. and its affiliates" s.platforms = min_supported_versions s.source = source - s.source_files = podspec_sources("**/*.{cpp,h}", "**/*.h") + s.source_files = podspec_sources("*.{cpp,h}", "*.h") s.header_dir = "react/renderer/css" - s.exclude_files = "tests" s.pod_target_xcconfig = { "CLANG_CXX_LANGUAGE_STANDARD" => rct_cxx_language_standard(), "HEADER_SEARCH_PATHS" => header_search_paths.join(' '), @@ -44,6 +43,13 @@ Pod::Spec.new do |s| add_dependency(s, "React-debug") add_dependency(s, "React-utils") + s.dependency "React-cxxstableapi" + + s.subspec "cssUmbrella" do |ss| + ss.source_files = "React/*.h" + ss.header_dir = "" + ss.header_mappings_dir = "." + end mark_as_react_native_build(s) end diff --git a/packages/react-native/ReactCommon/react/renderer/css/React/CSS.h b/packages/react-native/ReactCommon/react/renderer/css/React/CSS.h new file mode 100644 index 000000000000..82f500a1f0ad --- /dev/null +++ b/packages/react-native/ReactCommon/react/renderer/css/React/CSS.h @@ -0,0 +1,58 @@ +/* + * 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. + */ + +#pragma once + +// ============================================================================= +// Umbrella header for the `react/renderer/css` module - public entry point. +// +// #include +// +// Re-exports the module's public interface headers. React Native's own code +// should keep using the fine-grained `` includes; only +// outside consumers use this umbrella. +// ============================================================================= + +// Marks that the following headers are pulled in through the umbrella, so their +// shared guard () accepts them. The marker +// is saved and restored rather than defined and undefined: the scope ends at +// this block, so later *direct* includes in the same TU are still caught, and +// it nests inside an enclosing umbrella rather than disarming it. +#pragma push_macro("RN_UMBRELLA_CONTEXT") +#undef RN_UMBRELLA_CONTEXT +#define RN_UMBRELLA_CONTEXT 1 + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#undef RN_UMBRELLA_CONTEXT +#pragma pop_macro("RN_UMBRELLA_CONTEXT") diff --git a/packages/react-native/scripts/ios-prebuild/headers-config.js b/packages/react-native/scripts/ios-prebuild/headers-config.js index 80afb933123c..2de57378cc11 100644 --- a/packages/react-native/scripts/ios-prebuild/headers-config.js +++ b/packages/react-native/scripts/ios-prebuild/headers-config.js @@ -585,6 +585,23 @@ const PodspecExceptions /*: {[key: string]: PodSpecConfiguration} */ = { 'Libraries/PushNotificationIOS/React-RCTPushNotification.podspec': { disabled: true, }, + 'ReactCommon/react/renderer/css/React-renderercss.podspec': { + name: 'React-renderercss', + headerPatterns: [], + headerDir: '', + subSpecs: [ + { + name: 'css', + headerPatterns: ['*.h'], + headerDir: 'react/renderer/css', + }, + { + name: 'cssUmbrella', + headerPatterns: ['React/*.h'], + headerDir: 'React', + }, + ], + }, }; module.exports = {PodspecExceptions};