expo-build-properties 58.0.10 → 58.0.11

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md CHANGED
@@ -1,5 +1,12 @@
1
1
  # Changelog
2
2
 
3
+ ## 58.0.11
4
+
5
+ ### Patch Changes
6
+
7
+ - Updated dependencies. ([#51635](https://github.com/expo/expo/pull/51635))
8
+ - @expo/schema-utils@58.0.2
9
+
3
10
  ## 58.0.10
4
11
 
5
12
  ### Patch Changes
@@ -54,6 +61,10 @@ _This version does not introduce any user-facing changes._
54
61
 
55
62
  ## 58.0.0 — 2026-09-10
56
63
 
64
+ ### 🎉 New features
65
+
66
+ - Add Android GIF and WebP image support build properties: `android.gifEnabled`, `android.webpEnabled`, and `android.webpAnimated`. ([#45269](https://github.com/expo/expo/pull/45269) by [@shubh73](https://github.com/shubh73))
67
+
57
68
  ### 🐛 Bug fixes
58
69
 
59
70
  - [Android] Make `buildReactNativeFromSource` idempotent so repeated prebuilds no longer append a duplicate `includeBuild(expoAutolinking.reactNative)` block to `settings.gradle` (and toggling it off removes the block). ([#46713](https://github.com/expo/expo/pull/46713) by [@ahmdshrif](https://github.com/ahmdshrif))
@@ -191,7 +202,6 @@ _This version does not introduce any user-facing changes._
191
202
  ### 🎉 New features
192
203
 
193
204
  - Expose a typed config plugin function ([#44098](https://github.com/expo/expo/pull/44098) by [@zoontek](https://github.com/zoontek))
194
- - Add Android GIF and WebP image support build properties: `android.gifEnabled`, `android.webpEnabled`, and `android.webpAnimated`. ([#45269](https://github.com/expo/expo/pull/45269) by [@shubh73](https://github.com/shubh73))
195
205
 
196
206
  ### 💡 Others
197
207
 
package/build/android.js CHANGED
@@ -410,7 +410,8 @@ const withAndroidPrecompiledHeaders = (config, props)=>{
410
410
  _fs().default.promises.writeFile(_path().default.join(jniDir, 'CMakeLists.txt'), _androidPCHTemplates.PCH_CMAKE_CONTENTS),
411
411
  _fs().default.promises.writeFile(_path().default.join(jniDir, 'OnLoad.cpp'), _androidPCHTemplates.PCH_ONLOAD_CONTENTS),
412
412
  _fs().default.promises.writeFile(_path().default.join(jniDir, 'pch.h'), _androidPCHTemplates.PCH_HEADER_CONTENTS),
413
- _fs().default.promises.writeFile(_path().default.join(jniDir, 'appmodules_pch_owner.cpp'), _androidPCHTemplates.PCH_OWNER_SOURCE_CONTENTS)
413
+ _fs().default.promises.writeFile(_path().default.join(jniDir, 'appmodules_pch_owner.cpp'), _androidPCHTemplates.PCH_OWNER_SOURCE_CONTENTS),
414
+ _fs().default.promises.writeFile(_path().default.join(jniDir, 'pch-ccache.cmake'), _androidPCHTemplates.PCH_CCACHE_CMAKE_CONTENTS)
414
415
  ]);
415
416
  return config;
416
417
  }
@@ -1 +1 @@
1
- {"version":3,"sources":["android.ts"],"sourcesContent":[null],"names":["updateAndroidProguardRules","updateAndroidSettingsGradle","updateBuildGradleForPCH","withAndroidBuildProperties","withAndroidCleartextTraffic","withAndroidDayNightTheme","withAndroidPrecompiledHeaders","withAndroidProguardRules","withAndroidPurgeProguardRulesOnce","withAndroidQueries","withAndroidSettingsGradle","createBuildGradlePropsConfigPlugin","AndroidConfig","BuildProperties","propName","propValueGetter","config","android","minSdkVersion","toString","compileSdkVersion","targetSdkVersion","buildToolsVersion","cmakeVersion","kotlinVersion","packagingOptions","pickFirst","join","exclude","merge","doNotStrip","enableMinifyInReleaseBuilds","enableShrinkResourcesInReleaseBuilds","enablePngCrunchInReleaseBuilds","networkInspector","resolveConfigValue","useLegacyPackaging","extraMavenRepos","map","item","url","length","JSON","stringify","undefined","useDayNightTheme","enableBundleCompression","gifEnabled","webpEnabled","webpAnimated","buildArchs","exclusiveMavenMirror","buildExpoModulesCoreFromSource","props","withDangerousMod","extraProguardRules","proguardRulesFile","path","modRequest","platformProjectRoot","contents","fs","promises","readFile","newContents","writeFile","RUN_ONCE_NAME","History","getHistoryItem","addHistoryItem","name","newProguardRules","updateMode","options","tag","commentPrefix","purgeContents","appendContents","withAndroidManifest","usesCleartextTraffic","modResults","setUsesCleartextTraffic","androidManifest","value","mainApplication","Manifest","getMainApplicationOrThrow","$","String","manifestQueries","defaultIntents","manifest","queries","q","intent","flat","defaultPackages","package","defaultProviders","provider","newQueries","renderQueryPackages","renderQueryIntents","renderQueryProviders","withAndroidStyles","style","resources","excludedStyles","excludedAttributes","parent","filter","includes","withSettingsGradle","buildFromSource","sectionOptions","addCodeBlock","usePrecompiledHeaders","process","env","EXPO_USE_ANDROID_PRECOMPILED_HEADERS","withAppBuildGradle","language","Error","jniDir","mkdir","recursive","Promise","all","PCH_CMAKE_CONTENTS","PCH_ONLOAD_CONTENTS","PCH_HEADER_CONTENTS","PCH_OWNER_SOURCE_CONTENTS","findBlockClosingLineIndex","lines","blockStartIndex","depth","i","line","ch","result","block","split","androidStart","findIndex","test","closingIndex","splice","STUB_PCH_GRADLE_TASK"],"mappings":"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"}
1
+ {"version":3,"sources":["android.ts"],"sourcesContent":[null],"names":["updateAndroidProguardRules","updateAndroidSettingsGradle","updateBuildGradleForPCH","withAndroidBuildProperties","withAndroidCleartextTraffic","withAndroidDayNightTheme","withAndroidPrecompiledHeaders","withAndroidProguardRules","withAndroidPurgeProguardRulesOnce","withAndroidQueries","withAndroidSettingsGradle","createBuildGradlePropsConfigPlugin","AndroidConfig","BuildProperties","propName","propValueGetter","config","android","minSdkVersion","toString","compileSdkVersion","targetSdkVersion","buildToolsVersion","cmakeVersion","kotlinVersion","packagingOptions","pickFirst","join","exclude","merge","doNotStrip","enableMinifyInReleaseBuilds","enableShrinkResourcesInReleaseBuilds","enablePngCrunchInReleaseBuilds","networkInspector","resolveConfigValue","useLegacyPackaging","extraMavenRepos","map","item","url","length","JSON","stringify","undefined","useDayNightTheme","enableBundleCompression","gifEnabled","webpEnabled","webpAnimated","buildArchs","exclusiveMavenMirror","buildExpoModulesCoreFromSource","props","withDangerousMod","extraProguardRules","proguardRulesFile","path","modRequest","platformProjectRoot","contents","fs","promises","readFile","newContents","writeFile","RUN_ONCE_NAME","History","getHistoryItem","addHistoryItem","name","newProguardRules","updateMode","options","tag","commentPrefix","purgeContents","appendContents","withAndroidManifest","usesCleartextTraffic","modResults","setUsesCleartextTraffic","androidManifest","value","mainApplication","Manifest","getMainApplicationOrThrow","$","String","manifestQueries","defaultIntents","manifest","queries","q","intent","flat","defaultPackages","package","defaultProviders","provider","newQueries","renderQueryPackages","renderQueryIntents","renderQueryProviders","withAndroidStyles","style","resources","excludedStyles","excludedAttributes","parent","filter","includes","withSettingsGradle","buildFromSource","sectionOptions","addCodeBlock","usePrecompiledHeaders","process","env","EXPO_USE_ANDROID_PRECOMPILED_HEADERS","withAppBuildGradle","language","Error","jniDir","mkdir","recursive","Promise","all","PCH_CMAKE_CONTENTS","PCH_ONLOAD_CONTENTS","PCH_HEADER_CONTENTS","PCH_OWNER_SOURCE_CONTENTS","PCH_CCACHE_CMAKE_CONTENTS","findBlockClosingLineIndex","lines","blockStartIndex","depth","i","line","ch","result","block","split","androidStart","findIndex","test","closingIndex","splice","STUB_PCH_GRADLE_TASK"],"mappings":"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"}
@@ -1,4 +1,5 @@
1
- export declare const PCH_CMAKE_CONTENTS = "cmake_minimum_required(VERSION 3.16)\n\nproject(appmodules)\n\ninclude(${REACT_ANDROID_DIR}/cmake-utils/ReactNative-application.cmake)\n\nset(PCH_HEADER \"${CMAKE_CURRENT_SOURCE_DIR}/pch.h\")\n\nadd_library(appmodules_pch STATIC EXCLUDE_FROM_ALL \"${CMAKE_CURRENT_SOURCE_DIR}/appmodules_pch_owner.cpp\")\n\n# Apply the exact same compile options codegen targets get from RN's\ntarget_compile_reactnative_options(appmodules_pch PRIVATE)\n\n# Link dependencies needed by our PCH header\ntarget_link_libraries(appmodules_pch PRIVATE common_flags reactnative jsi folly_runtime fbjni)\n\n# Stop Clang from embedding a build timestamp in the .pch. Without this the PCH\n# is non-reproducible across builds, so ccache can't reuse it and dependent\n# translation units reject a restored PCH as \"modified since built\".\ntarget_compile_options(appmodules_pch PRIVATE\n \"$<$<COMPILE_LANGUAGE:CXX>:-Xclang;-fno-pch-timestamp>\"\n)\n\ntarget_precompile_headers(appmodules_pch PRIVATE\n \"$<$<COMPILE_LANGUAGE:CXX>:${PCH_HEADER}>\"\n)\n\nfunction(add_pch_if_eligible target)\n if (NOT TARGET ${target})\n return()\n endif ()\n\n get_target_property(is_imported ${target} IMPORTED)\n if (is_imported)\n return()\n endif ()\n\n get_target_property(target_type ${target} TYPE)\n if (target_type STREQUAL \"INTERFACE_LIBRARY\")\n return()\n endif ()\n\n # Keep the flag consistent with the PCH owner - see the note above.\n target_compile_options(${target} PRIVATE\n \"$<$<COMPILE_LANGUAGE:CXX>:-Xclang;-fno-pch-timestamp>\"\n )\n\n # clang rejects a PCH built with a different C++ dialect, so pin consumers\n # to the owner's -std=c++20 (libraries that set CMAKE_CXX_STANDARD themselves\n # would otherwise get -std=gnu++20).\n set_target_properties(${target} PROPERTIES CXX_STANDARD 20 CXX_EXTENSIONS OFF)\n\n target_precompile_headers(${target} REUSE_FROM appmodules_pch)\nendfunction()\n\nif (DEFINED AUTOLINKED_LIBRARIES)\n foreach (lib IN LISTS AUTOLINKED_LIBRARIES)\n add_pch_if_eligible(${lib})\n endforeach ()\nendif ()\n";
1
+ export declare const PCH_CMAKE_CONTENTS = "cmake_minimum_required(VERSION 3.16)\n\nproject(appmodules)\n\ninclude(${REACT_ANDROID_DIR}/cmake-utils/ReactNative-application.cmake)\n\ninclude(\"${CMAKE_CURRENT_SOURCE_DIR}/pch-ccache.cmake\")\n\nadd_library(appmodules_pch STATIC EXCLUDE_FROM_ALL \"${CMAKE_CURRENT_SOURCE_DIR}/appmodules_pch_owner.cpp\")\n\n# Apply the exact same compile options codegen targets get from RN's\ntarget_compile_reactnative_options(appmodules_pch PRIVATE)\n\n# Link dependencies needed by our PCH header\ntarget_link_libraries(appmodules_pch PRIVATE common_flags reactnative jsi folly_runtime fbjni)\n\n# Stop Clang from embedding a build timestamp in the .pch. Without this the PCH\n# is non-reproducible across builds, so ccache can't reuse it and dependent\n# translation units reject a restored PCH as \"modified since built\".\ntarget_compile_options(appmodules_pch PRIVATE\n \"$<$<COMPILE_LANGUAGE:CXX>:-Xclang;-fno-pch-timestamp>\"\n)\n\nset(PCH_INCLUDE_OPTION \"$<$<COMPILE_LANGUAGE:CXX>:-idirafter${CMAKE_CURRENT_SOURCE_DIR}>\")\ntarget_compile_options(appmodules_pch PRIVATE ${PCH_INCLUDE_OPTION})\ntarget_precompile_headers(appmodules_pch PRIVATE\n \"$<$<COMPILE_LANGUAGE:CXX>:<pch.h>>\"\n)\n\npch_ccache_owner(appmodules_pch)\n\nfunction(add_pch_if_eligible target)\n if (NOT TARGET ${target})\n return()\n endif ()\n\n get_target_property(is_imported ${target} IMPORTED)\n if (is_imported)\n return()\n endif ()\n\n get_target_property(target_type ${target} TYPE)\n if (target_type STREQUAL \"INTERFACE_LIBRARY\")\n return()\n endif ()\n\n # Keep the flag consistent with the PCH owner - see the note above.\n target_compile_options(${target} PRIVATE\n \"$<$<COMPILE_LANGUAGE:CXX>:-Xclang;-fno-pch-timestamp>\"\n ${PCH_INCLUDE_OPTION}\n )\n\n # clang rejects a PCH built with a different C++ dialect, so pin consumers\n # to the owner's -std=c++20 (libraries that set CMAKE_CXX_STANDARD themselves\n # would otherwise get -std=gnu++20).\n set_target_properties(${target} PROPERTIES CXX_STANDARD 20 CXX_EXTENSIONS OFF)\n\n target_precompile_headers(${target} REUSE_FROM appmodules_pch)\n pch_ccache_consumer(${target} appmodules_pch)\nendfunction()\n\nif (DEFINED AUTOLINKED_LIBRARIES)\n foreach (lib IN LISTS AUTOLINKED_LIBRARIES)\n add_pch_if_eligible(${lib})\n endforeach ()\nendif ()\n";
2
+ export declare const PCH_CCACHE_CMAKE_CONTENTS = "# Run as custom command\nif(CMAKE_SCRIPT_MODE_FILE)\n set(target_option)\n if(COMPILER_TARGET)\n set(target_option \"--target=${COMPILER_TARGET}\")\n endif()\n\n execute_process(\n COMMAND \"${COMPILER}\" ${target_option} -module-file-info \"${PCH}\"\n OUTPUT_VARIABLE info\n RESULT_VARIABLE result\n )\n\n if(NOT result EQUAL 0)\n # Hash the .pch itself, which is what ccache does without a .sum. The build stays correct, but\n # checkouts at different paths don't share the results of the users of this PCH.\n message(WARNING \"`${COMPILER} -module-file-info ${PCH}` failed, so ccache can't share the results \"\n \"of the users of this PCH between checkouts at different paths.\")\n file(SHA256 \"${PCH}\" digest)\n file(WRITE \"${PCH}.sum\" \"${digest}\\n\")\n return()\n endif()\n\n # Remove `ShowColors` and `PCH_CCACHE_BUILD_DIR` \n string(REGEX REPLACE \"PCH_CCACHE_BUILD_DIR=[^\\n]*|ShowColors: [^\\n]*\" \"\" info \"${info}\")\n\n # Get all input files\n string(REGEX MATCHALL \"Input file: [^\\n]*\" input_files \"${info}\")\n foreach(input_file IN LISTS input_files)\n string(REGEX REPLACE \"^Input file: | \\\\[[A-Za-z, ]+\\\\]$\" \"\" path \"${input_file}\")\n if(EXISTS \"${path}\")\n file(SHA256 \"${path}\" digest)\n string(APPEND info \"${digest}\\n\")\n endif()\n endforeach()\n\n # Remove base dir\n if(BASE_DIR)\n string(REGEX REPLACE \"(.)/+$\" \"\\\\1\" base_dir \"${BASE_DIR}\")\n string(REGEX REPLACE \"([][+.*()^$?|\\\\\\\\])\" \"\\\\\\\\\\\\1\" base_dir_regex \"${base_dir}\")\n # The directory itself or a path in it, followed by a space, a quote or a line break. A directory whose\n # name only starts with the same text doesn't match.\n string(REGEX MATCHALL \"${base_dir_regex}(/[^ '\\n]*)?[ '\\n]\" paths \"${info}\")\n list(REMOVE_DUPLICATES paths)\n foreach(path IN LISTS paths)\n string(REGEX REPLACE \"[ '\\n]$\" \"\" path \"${path}\")\n file(RELATIVE_PATH relative_path \"${BUILD_DIR}\" \"${path}\")\n string(REGEX REPLACE \"([][+.*()^$?|\\\\\\\\])\" \"\\\\\\\\\\\\1\" path_regex \"${path}\")\n string(REGEX REPLACE \"${path_regex}([ '\\n])\" \"${relative_path}\\\\1\" info \"${info}\")\n endforeach()\n endif()\n\n string(SHA256 digest \"${info}\")\n file(WRITE \"${PCH}.sum\" \"${digest}\\n\")\n return()\nendif()\n\nset(PCH_CCACHE_FILE \"${CMAKE_CURRENT_LIST_FILE}\")\n\n# Find ccache program if it's used by the target\nfunction(_pch_ccache_program target out_var)\n get_target_property(launcher ${target} CXX_COMPILER_LAUNCHER)\n get_property(global_rule GLOBAL PROPERTY RULE_LAUNCH_COMPILE)\n get_property(directory_rule DIRECTORY PROPERTY RULE_LAUNCH_COMPILE)\n separate_arguments(rules UNIX_COMMAND \"${global_rule} ${directory_rule}\")\n get_filename_component(compiler \"${CMAKE_CXX_COMPILER}\" REALPATH)\n foreach(program IN LISTS launcher rules compiler)\n get_filename_component(name \"${program}\" NAME_WE)\n if(name STREQUAL \"ccache\")\n find_program(PCH_CCACHE_PROGRAM NAMES \"${program}\")\n set(${out_var} \"${PCH_CCACHE_PROGRAM}\" PARENT_SCOPE)\n return()\n endif()\n endforeach()\n set(${out_var} \"\" PARENT_SCOPE)\nendfunction()\n\nfunction(pch_ccache_owner owner)\n # CMake's location of the PCH for the Ninja and Makefile generators.\n set(pch_dir \"${CMAKE_CURRENT_BINARY_DIR}/CMakeFiles/${owner}.dir\")\n set(pch \"${pch_dir}/cmake_pch.hxx.pch\")\n\n # Used by the custom command\n set_property(SOURCE \"${pch_dir}/cmake_pch.hxx.cxx\" APPEND PROPERTY\n COMPILE_DEFINITIONS \"PCH_CCACHE_BUILD_DIR=${CMAKE_CURRENT_BINARY_DIR}\"\n )\n\n set(pch_external_checksum \"\")\n set(base_dir \"\")\n _pch_ccache_program(${owner} ccache)\n if(NOT ccache AND \"$ENV{EXPO_FORCE_PCH_CCACHE_SUM}\")\n # ccache runs through a wrapper, so take its configuration from the ccache on PATH\n find_program(PCH_CCACHE_PATH_PROGRAM ccache)\n set(ccache \"${PCH_CCACHE_PATH_PROGRAM}\")\n endif()\n if(ccache)\n foreach(option IN ITEMS pch_external_checksum base_dir)\n execute_process(\n COMMAND \"${ccache}\" --get-config ${option}\n OUTPUT_VARIABLE ${option}\n OUTPUT_STRIP_TRAILING_WHITESPACE\n ERROR_QUIET\n )\n endforeach()\n endif()\n\n if(\"$ENV{EXPO_FORCE_PCH_CCACHE_SUM}\")\n set(pch_external_checksum \"true\")\n endif()\n\n if(NOT pch_external_checksum STREQUAL \"true\")\n # Remove the .sum of an earlier configuration: it can belong to an older PCH, and ccache would hash it\n # if `pch_external_checksum` is enabled later.\n file(REMOVE \"${pch}.sum\")\n return()\n endif()\n\n add_custom_command(\n OUTPUT \"${pch}.sum\"\n COMMAND \"${CMAKE_COMMAND}\"\n \"-DCOMPILER=${CMAKE_CXX_COMPILER}\"\n \"-DCOMPILER_TARGET=${CMAKE_CXX_COMPILER_TARGET}\"\n \"-DPCH=${pch}\"\n \"-DBASE_DIR=${base_dir}\"\n \"-DBUILD_DIR=${CMAKE_BINARY_DIR}\"\n -P \"${PCH_CCACHE_FILE}\"\n DEPENDS \"${pch}\" \"${PCH_CCACHE_FILE}\"\n COMMENT \"Writing the ccache checksum of the ${owner} PCH\"\n VERBATIM\n )\n add_custom_target(${owner}-pch-ccache-sum DEPENDS \"${pch}.sum\")\nendfunction()\n\nfunction(pch_ccache_consumer consumer owner)\n # ccache reads the .sum when it compiles a source of <consumer>, so it must be written before.\n if(TARGET ${owner}-pch-ccache-sum)\n add_dependencies(${consumer} ${owner}-pch-ccache-sum)\n endif()\nendfunction()\n";
2
3
  export declare const PCH_OWNER_SOURCE_CONTENTS = "// Translation unit exists solely so the owning target can produce a .pch\n// binary that codegen targets reuse.\n";
3
4
  export declare const PCH_ONLOAD_CONTENTS = "/*\n * Based on https://github.com/facebook/react-native/blob/main/packages/react-native/ReactAndroid/cmake-utils/default-app-setup/OnLoad.cpp\n */\n\n#include <DefaultComponentsRegistry.h>\n#include <DefaultTurboModuleManagerDelegate.h>\n#include <FBReactNativeSpec.h>\n#include <autolinking.h>\n#include <fbjni/fbjni.h>\n#include <react/renderer/componentregistry/ComponentDescriptorProviderRegistry.h>\n\n#ifdef REACT_NATIVE_APP_CODEGEN_HEADER\n#include REACT_NATIVE_APP_CODEGEN_HEADER\n#endif\n#ifdef REACT_NATIVE_APP_COMPONENT_DESCRIPTORS_HEADER\n#include REACT_NATIVE_APP_COMPONENT_DESCRIPTORS_HEADER\n#endif\n\nnamespace facebook::react {\n\nvoid registerComponents(\n std::shared_ptr<const ComponentDescriptorProviderRegistry> registry) {\n#ifdef REACT_NATIVE_APP_COMPONENT_REGISTRATION\n REACT_NATIVE_APP_COMPONENT_REGISTRATION(registry);\n#endif\n\n autolinking_registerProviders(registry);\n}\n\nstd::shared_ptr<TurboModule> cxxModuleProvider(\n const std::string& name,\n const std::shared_ptr<CallInvoker>& jsInvoker) {\n return autolinking_cxxModuleProvider(name, jsInvoker);\n\n return nullptr;\n}\n\nstd::shared_ptr<TurboModule> javaModuleProvider(\n const std::string& name,\n const JavaTurboModule::InitParams& params) {\n#ifdef REACT_NATIVE_APP_MODULE_PROVIDER\n auto module = REACT_NATIVE_APP_MODULE_PROVIDER(name, params);\n if (module != nullptr) {\n return module;\n }\n#endif\n\n if (auto module = FBReactNativeSpec_ModuleProvider(name, params)) {\n return module;\n }\n\n if (auto module = autolinking_ModuleProvider(name, params)) {\n return module;\n }\n\n return nullptr;\n}\n\n} // namespace facebook::react\n\nJNIEXPORT jint JNICALL JNI_OnLoad(JavaVM* vm, void*) {\n return facebook::jni::initialize(vm, [] {\n facebook::react::DefaultTurboModuleManagerDelegate::cxxModuleProvider =\n &facebook::react::cxxModuleProvider;\n facebook::react::DefaultTurboModuleManagerDelegate::javaModuleProvider =\n &facebook::react::javaModuleProvider;\n facebook::react::DefaultComponentsRegistry::\n registerComponentDescriptorsFromEntryPoint =\n &facebook::react::registerComponents;\n });\n}\n";
4
5
  export declare const PCH_HEADER_CONTENTS = "#pragma once\n\n// RN core headers used across autolinked codegen modules\n#include <jsi/jsi.h>\n#include <ReactCommon/JavaTurboModule.h>\n#include <ReactCommon/TurboModule.h>\n#include <react/bridging/Bridging.h>\n#include <react/renderer/componentregistry/ComponentDescriptorProviderRegistry.h>\n#include <react/renderer/components/view/ConcreteViewShadowNode.h>\n#include <react/renderer/components/view/ViewEventEmitter.h>\n#include <react/renderer/core/ConcreteComponentDescriptor.h>\n#include <react/renderer/core/PropsParserContext.h>\n#include <react/renderer/core/StateData.h>\n#include <react/renderer/core/propsConversions.h>\n#include <folly/dynamic.h>\n";
@@ -3,6 +3,7 @@ Object.defineProperty(exports, "__esModule", {
3
3
  value: true
4
4
  });
5
5
  0 && (module.exports = {
6
+ PCH_CCACHE_CMAKE_CONTENTS: null,
6
7
  PCH_CMAKE_CONTENTS: null,
7
8
  PCH_HEADER_CONTENTS: null,
8
9
  PCH_ONLOAD_CONTENTS: null,
@@ -16,6 +17,9 @@ function _export(target, all) {
16
17
  });
17
18
  }
18
19
  _export(exports, {
20
+ get PCH_CCACHE_CMAKE_CONTENTS () {
21
+ return PCH_CCACHE_CMAKE_CONTENTS;
22
+ },
19
23
  get PCH_CMAKE_CONTENTS () {
20
24
  return PCH_CMAKE_CONTENTS;
21
25
  },
@@ -39,7 +43,7 @@ project(appmodules)
39
43
 
40
44
  include(\${REACT_ANDROID_DIR}/cmake-utils/ReactNative-application.cmake)
41
45
 
42
- set(PCH_HEADER "\${CMAKE_CURRENT_SOURCE_DIR}/pch.h")
46
+ include("\${CMAKE_CURRENT_SOURCE_DIR}/pch-ccache.cmake")
43
47
 
44
48
  add_library(appmodules_pch STATIC EXCLUDE_FROM_ALL "\${CMAKE_CURRENT_SOURCE_DIR}/appmodules_pch_owner.cpp")
45
49
 
@@ -56,10 +60,14 @@ target_compile_options(appmodules_pch PRIVATE
56
60
  "$<$<COMPILE_LANGUAGE:CXX>:-Xclang;-fno-pch-timestamp>"
57
61
  )
58
62
 
63
+ set(PCH_INCLUDE_OPTION "$<$<COMPILE_LANGUAGE:CXX>:-idirafter\${CMAKE_CURRENT_SOURCE_DIR}>")
64
+ target_compile_options(appmodules_pch PRIVATE \${PCH_INCLUDE_OPTION})
59
65
  target_precompile_headers(appmodules_pch PRIVATE
60
- "$<$<COMPILE_LANGUAGE:CXX>:\${PCH_HEADER}>"
66
+ "$<$<COMPILE_LANGUAGE:CXX>:<pch.h>>"
61
67
  )
62
68
 
69
+ pch_ccache_owner(appmodules_pch)
70
+
63
71
  function(add_pch_if_eligible target)
64
72
  if (NOT TARGET \${target})
65
73
  return()
@@ -78,6 +86,7 @@ function(add_pch_if_eligible target)
78
86
  # Keep the flag consistent with the PCH owner - see the note above.
79
87
  target_compile_options(\${target} PRIVATE
80
88
  "$<$<COMPILE_LANGUAGE:CXX>:-Xclang;-fno-pch-timestamp>"
89
+ \${PCH_INCLUDE_OPTION}
81
90
  )
82
91
 
83
92
  # clang rejects a PCH built with a different C++ dialect, so pin consumers
@@ -86,6 +95,7 @@ function(add_pch_if_eligible target)
86
95
  set_target_properties(\${target} PROPERTIES CXX_STANDARD 20 CXX_EXTENSIONS OFF)
87
96
 
88
97
  target_precompile_headers(\${target} REUSE_FROM appmodules_pch)
98
+ pch_ccache_consumer(\${target} appmodules_pch)
89
99
  endfunction()
90
100
 
91
101
  if (DEFINED AUTOLINKED_LIBRARIES)
@@ -94,6 +104,147 @@ if (DEFINED AUTOLINKED_LIBRARIES)
94
104
  endforeach ()
95
105
  endif ()
96
106
  `;
107
+ const PCH_CCACHE_CMAKE_CONTENTS = `\
108
+ # Run as custom command
109
+ if(CMAKE_SCRIPT_MODE_FILE)
110
+ set(target_option)
111
+ if(COMPILER_TARGET)
112
+ set(target_option "--target=\${COMPILER_TARGET}")
113
+ endif()
114
+
115
+ execute_process(
116
+ COMMAND "\${COMPILER}" \${target_option} -module-file-info "\${PCH}"
117
+ OUTPUT_VARIABLE info
118
+ RESULT_VARIABLE result
119
+ )
120
+
121
+ if(NOT result EQUAL 0)
122
+ # Hash the .pch itself, which is what ccache does without a .sum. The build stays correct, but
123
+ # checkouts at different paths don't share the results of the users of this PCH.
124
+ message(WARNING "\`\${COMPILER} -module-file-info \${PCH}\` failed, so ccache can't share the results "
125
+ "of the users of this PCH between checkouts at different paths.")
126
+ file(SHA256 "\${PCH}" digest)
127
+ file(WRITE "\${PCH}.sum" "\${digest}\\n")
128
+ return()
129
+ endif()
130
+
131
+ # Remove \`ShowColors\` and \`PCH_CCACHE_BUILD_DIR\`
132
+ string(REGEX REPLACE "PCH_CCACHE_BUILD_DIR=[^\\n]*|ShowColors: [^\\n]*" "" info "\${info}")
133
+
134
+ # Get all input files
135
+ string(REGEX MATCHALL "Input file: [^\\n]*" input_files "\${info}")
136
+ foreach(input_file IN LISTS input_files)
137
+ string(REGEX REPLACE "^Input file: | \\\\[[A-Za-z, ]+\\\\]$" "" path "\${input_file}")
138
+ if(EXISTS "\${path}")
139
+ file(SHA256 "\${path}" digest)
140
+ string(APPEND info "\${digest}\\n")
141
+ endif()
142
+ endforeach()
143
+
144
+ # Remove base dir
145
+ if(BASE_DIR)
146
+ string(REGEX REPLACE "(.)/+$" "\\\\1" base_dir "\${BASE_DIR}")
147
+ string(REGEX REPLACE "([][+.*()^$?|\\\\\\\\])" "\\\\\\\\\\\\1" base_dir_regex "\${base_dir}")
148
+ # The directory itself or a path in it, followed by a space, a quote or a line break. A directory whose
149
+ # name only starts with the same text doesn't match.
150
+ string(REGEX MATCHALL "\${base_dir_regex}(/[^ '\\n]*)?[ '\\n]" paths "\${info}")
151
+ list(REMOVE_DUPLICATES paths)
152
+ foreach(path IN LISTS paths)
153
+ string(REGEX REPLACE "[ '\\n]$" "" path "\${path}")
154
+ file(RELATIVE_PATH relative_path "\${BUILD_DIR}" "\${path}")
155
+ string(REGEX REPLACE "([][+.*()^$?|\\\\\\\\])" "\\\\\\\\\\\\1" path_regex "\${path}")
156
+ string(REGEX REPLACE "\${path_regex}([ '\\n])" "\${relative_path}\\\\1" info "\${info}")
157
+ endforeach()
158
+ endif()
159
+
160
+ string(SHA256 digest "\${info}")
161
+ file(WRITE "\${PCH}.sum" "\${digest}\\n")
162
+ return()
163
+ endif()
164
+
165
+ set(PCH_CCACHE_FILE "\${CMAKE_CURRENT_LIST_FILE}")
166
+
167
+ # Find ccache program if it's used by the target
168
+ function(_pch_ccache_program target out_var)
169
+ get_target_property(launcher \${target} CXX_COMPILER_LAUNCHER)
170
+ get_property(global_rule GLOBAL PROPERTY RULE_LAUNCH_COMPILE)
171
+ get_property(directory_rule DIRECTORY PROPERTY RULE_LAUNCH_COMPILE)
172
+ separate_arguments(rules UNIX_COMMAND "\${global_rule} \${directory_rule}")
173
+ get_filename_component(compiler "\${CMAKE_CXX_COMPILER}" REALPATH)
174
+ foreach(program IN LISTS launcher rules compiler)
175
+ get_filename_component(name "\${program}" NAME_WE)
176
+ if(name STREQUAL "ccache")
177
+ find_program(PCH_CCACHE_PROGRAM NAMES "\${program}")
178
+ set(\${out_var} "\${PCH_CCACHE_PROGRAM}" PARENT_SCOPE)
179
+ return()
180
+ endif()
181
+ endforeach()
182
+ set(\${out_var} "" PARENT_SCOPE)
183
+ endfunction()
184
+
185
+ function(pch_ccache_owner owner)
186
+ # CMake's location of the PCH for the Ninja and Makefile generators.
187
+ set(pch_dir "\${CMAKE_CURRENT_BINARY_DIR}/CMakeFiles/\${owner}.dir")
188
+ set(pch "\${pch_dir}/cmake_pch.hxx.pch")
189
+
190
+ # Used by the custom command
191
+ set_property(SOURCE "\${pch_dir}/cmake_pch.hxx.cxx" APPEND PROPERTY
192
+ COMPILE_DEFINITIONS "PCH_CCACHE_BUILD_DIR=\${CMAKE_CURRENT_BINARY_DIR}"
193
+ )
194
+
195
+ set(pch_external_checksum "")
196
+ set(base_dir "")
197
+ _pch_ccache_program(\${owner} ccache)
198
+ if(NOT ccache AND "$ENV{EXPO_FORCE_PCH_CCACHE_SUM}")
199
+ # ccache runs through a wrapper, so take its configuration from the ccache on PATH
200
+ find_program(PCH_CCACHE_PATH_PROGRAM ccache)
201
+ set(ccache "\${PCH_CCACHE_PATH_PROGRAM}")
202
+ endif()
203
+ if(ccache)
204
+ foreach(option IN ITEMS pch_external_checksum base_dir)
205
+ execute_process(
206
+ COMMAND "\${ccache}" --get-config \${option}
207
+ OUTPUT_VARIABLE \${option}
208
+ OUTPUT_STRIP_TRAILING_WHITESPACE
209
+ ERROR_QUIET
210
+ )
211
+ endforeach()
212
+ endif()
213
+
214
+ if("$ENV{EXPO_FORCE_PCH_CCACHE_SUM}")
215
+ set(pch_external_checksum "true")
216
+ endif()
217
+
218
+ if(NOT pch_external_checksum STREQUAL "true")
219
+ # Remove the .sum of an earlier configuration: it can belong to an older PCH, and ccache would hash it
220
+ # if \`pch_external_checksum\` is enabled later.
221
+ file(REMOVE "\${pch}.sum")
222
+ return()
223
+ endif()
224
+
225
+ add_custom_command(
226
+ OUTPUT "\${pch}.sum"
227
+ COMMAND "\${CMAKE_COMMAND}"
228
+ "-DCOMPILER=\${CMAKE_CXX_COMPILER}"
229
+ "-DCOMPILER_TARGET=\${CMAKE_CXX_COMPILER_TARGET}"
230
+ "-DPCH=\${pch}"
231
+ "-DBASE_DIR=\${base_dir}"
232
+ "-DBUILD_DIR=\${CMAKE_BINARY_DIR}"
233
+ -P "\${PCH_CCACHE_FILE}"
234
+ DEPENDS "\${pch}" "\${PCH_CCACHE_FILE}"
235
+ COMMENT "Writing the ccache checksum of the \${owner} PCH"
236
+ VERBATIM
237
+ )
238
+ add_custom_target(\${owner}-pch-ccache-sum DEPENDS "\${pch}.sum")
239
+ endfunction()
240
+
241
+ function(pch_ccache_consumer consumer owner)
242
+ # ccache reads the .sum when it compiles a source of <consumer>, so it must be written before.
243
+ if(TARGET \${owner}-pch-ccache-sum)
244
+ add_dependencies(\${consumer} \${owner}-pch-ccache-sum)
245
+ endif()
246
+ endfunction()
247
+ `;
97
248
  const PCH_OWNER_SOURCE_CONTENTS = `\
98
249
  // Translation unit exists solely so the owning target can produce a .pch
99
250
  // binary that codegen targets reuse.
@@ -1 +1 @@
1
- {"version":3,"sources":["androidPCHTemplates.ts"],"sourcesContent":[null],"names":["PCH_CMAKE_CONTENTS","PCH_HEADER_CONTENTS","PCH_ONLOAD_CONTENTS","PCH_OWNER_SOURCE_CONTENTS","STUB_PCH_GRADLE_TASK"],"mappings":";;;;;;;;;;;;;;;;;;QAAaA;eAAAA;;QA8IAC;eAAAA;;QA1EAC;eAAAA;;QALAC;eAAAA;;QAiGAC;eAAAA;;;AAhKN,MAAMJ,qBAAqB,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA6DnC,CAAC;AAEM,MAAMG,4BAA4B,CAAC;;;AAG1C,CAAC;AAEM,MAAMD,sBAAsB,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAwEpC,CAAC;AAEM,MAAMD,sBAAsB,CAAC;;;;;;;;;;;;;;;;AAgBpC,CAAC;AAEM,MAAMG,uBAAuB,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAyDpC,CAAC"}
1
+ {"version":3,"sources":["androidPCHTemplates.ts"],"sourcesContent":[null],"names":["PCH_CCACHE_CMAKE_CONTENTS","PCH_CMAKE_CONTENTS","PCH_HEADER_CONTENTS","PCH_ONLOAD_CONTENTS","PCH_OWNER_SOURCE_CONTENTS","STUB_PCH_GRADLE_TASK"],"mappings":";;;;;;;;;;;;;;;;;;;QAqEaA;eAAAA;;QArEAC;eAAAA;;QAkSAC;eAAAA;;QA1EAC;eAAAA;;QALAC;eAAAA;;QAiGAC;eAAAA;;;AApTN,MAAMJ,qBAAqB,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAmEnC,CAAC;AAEM,MAAMD,4BAA4B,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA4I1C,CAAC;AAEM,MAAMI,4BAA4B,CAAC;;;AAG1C,CAAC;AAEM,MAAMD,sBAAsB,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAwEpC,CAAC;AAEM,MAAMD,sBAAsB,CAAC;;;;;;;;;;;;;;;;AAgBpC,CAAC;AAEM,MAAMG,uBAAuB,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAyDpC,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "expo-build-properties",
3
- "version": "58.0.10",
3
+ "version": "58.0.11",
4
4
  "description": "Config plugin to customize native build properties on prebuild",
5
5
  "keywords": [
6
6
  "build",
@@ -34,15 +34,15 @@
34
34
  "./package.json": "./package.json"
35
35
  },
36
36
  "dependencies": {
37
- "@expo/schema-utils": "^58.0.1",
37
+ "@expo/schema-utils": "^58.0.2",
38
38
  "resolve-from": "^5.0.0",
39
39
  "semver": "^7.7.4"
40
40
  },
41
41
  "devDependencies": {
42
+ "@expo/internal-scripts": "58.0.3",
42
43
  "@types/node": "^22.14.0",
43
44
  "@types/semver": "^7.7.1",
44
- "expo": "58.0.3",
45
- "expo-module-scripts": "56.0.6"
45
+ "expo": "58.0.14"
46
46
  },
47
47
  "peerDependencies": {
48
48
  "expo": "*"
package/src/android.ts CHANGED
@@ -12,6 +12,7 @@ import fs from 'fs';
12
12
  import path from 'path';
13
13
 
14
14
  import {
15
+ PCH_CCACHE_CMAKE_CONTENTS,
15
16
  PCH_CMAKE_CONTENTS,
16
17
  PCH_HEADER_CONTENTS,
17
18
  PCH_ONLOAD_CONTENTS,
@@ -412,6 +413,7 @@ export const withAndroidPrecompiledHeaders: ConfigPlugin<PluginConfigType> = (co
412
413
  path.join(jniDir, 'appmodules_pch_owner.cpp'),
413
414
  PCH_OWNER_SOURCE_CONTENTS
414
415
  ),
416
+ fs.promises.writeFile(path.join(jniDir, 'pch-ccache.cmake'), PCH_CCACHE_CMAKE_CONTENTS),
415
417
  ]);
416
418
  return config;
417
419
  },
@@ -5,7 +5,7 @@ project(appmodules)
5
5
 
6
6
  include(\${REACT_ANDROID_DIR}/cmake-utils/ReactNative-application.cmake)
7
7
 
8
- set(PCH_HEADER "\${CMAKE_CURRENT_SOURCE_DIR}/pch.h")
8
+ include("\${CMAKE_CURRENT_SOURCE_DIR}/pch-ccache.cmake")
9
9
 
10
10
  add_library(appmodules_pch STATIC EXCLUDE_FROM_ALL "\${CMAKE_CURRENT_SOURCE_DIR}/appmodules_pch_owner.cpp")
11
11
 
@@ -22,10 +22,14 @@ target_compile_options(appmodules_pch PRIVATE
22
22
  "$<$<COMPILE_LANGUAGE:CXX>:-Xclang;-fno-pch-timestamp>"
23
23
  )
24
24
 
25
+ set(PCH_INCLUDE_OPTION "$<$<COMPILE_LANGUAGE:CXX>:-idirafter\${CMAKE_CURRENT_SOURCE_DIR}>")
26
+ target_compile_options(appmodules_pch PRIVATE \${PCH_INCLUDE_OPTION})
25
27
  target_precompile_headers(appmodules_pch PRIVATE
26
- "$<$<COMPILE_LANGUAGE:CXX>:\${PCH_HEADER}>"
28
+ "$<$<COMPILE_LANGUAGE:CXX>:<pch.h>>"
27
29
  )
28
30
 
31
+ pch_ccache_owner(appmodules_pch)
32
+
29
33
  function(add_pch_if_eligible target)
30
34
  if (NOT TARGET \${target})
31
35
  return()
@@ -44,6 +48,7 @@ function(add_pch_if_eligible target)
44
48
  # Keep the flag consistent with the PCH owner - see the note above.
45
49
  target_compile_options(\${target} PRIVATE
46
50
  "$<$<COMPILE_LANGUAGE:CXX>:-Xclang;-fno-pch-timestamp>"
51
+ \${PCH_INCLUDE_OPTION}
47
52
  )
48
53
 
49
54
  # clang rejects a PCH built with a different C++ dialect, so pin consumers
@@ -52,6 +57,7 @@ function(add_pch_if_eligible target)
52
57
  set_target_properties(\${target} PROPERTIES CXX_STANDARD 20 CXX_EXTENSIONS OFF)
53
58
 
54
59
  target_precompile_headers(\${target} REUSE_FROM appmodules_pch)
60
+ pch_ccache_consumer(\${target} appmodules_pch)
55
61
  endfunction()
56
62
 
57
63
  if (DEFINED AUTOLINKED_LIBRARIES)
@@ -61,6 +67,148 @@ if (DEFINED AUTOLINKED_LIBRARIES)
61
67
  endif ()
62
68
  `;
63
69
 
70
+ export const PCH_CCACHE_CMAKE_CONTENTS = `\
71
+ # Run as custom command
72
+ if(CMAKE_SCRIPT_MODE_FILE)
73
+ set(target_option)
74
+ if(COMPILER_TARGET)
75
+ set(target_option "--target=\${COMPILER_TARGET}")
76
+ endif()
77
+
78
+ execute_process(
79
+ COMMAND "\${COMPILER}" \${target_option} -module-file-info "\${PCH}"
80
+ OUTPUT_VARIABLE info
81
+ RESULT_VARIABLE result
82
+ )
83
+
84
+ if(NOT result EQUAL 0)
85
+ # Hash the .pch itself, which is what ccache does without a .sum. The build stays correct, but
86
+ # checkouts at different paths don't share the results of the users of this PCH.
87
+ message(WARNING "\`\${COMPILER} -module-file-info \${PCH}\` failed, so ccache can't share the results "
88
+ "of the users of this PCH between checkouts at different paths.")
89
+ file(SHA256 "\${PCH}" digest)
90
+ file(WRITE "\${PCH}.sum" "\${digest}\\n")
91
+ return()
92
+ endif()
93
+
94
+ # Remove \`ShowColors\` and \`PCH_CCACHE_BUILD_DIR\`
95
+ string(REGEX REPLACE "PCH_CCACHE_BUILD_DIR=[^\\n]*|ShowColors: [^\\n]*" "" info "\${info}")
96
+
97
+ # Get all input files
98
+ string(REGEX MATCHALL "Input file: [^\\n]*" input_files "\${info}")
99
+ foreach(input_file IN LISTS input_files)
100
+ string(REGEX REPLACE "^Input file: | \\\\[[A-Za-z, ]+\\\\]$" "" path "\${input_file}")
101
+ if(EXISTS "\${path}")
102
+ file(SHA256 "\${path}" digest)
103
+ string(APPEND info "\${digest}\\n")
104
+ endif()
105
+ endforeach()
106
+
107
+ # Remove base dir
108
+ if(BASE_DIR)
109
+ string(REGEX REPLACE "(.)/+$" "\\\\1" base_dir "\${BASE_DIR}")
110
+ string(REGEX REPLACE "([][+.*()^$?|\\\\\\\\])" "\\\\\\\\\\\\1" base_dir_regex "\${base_dir}")
111
+ # The directory itself or a path in it, followed by a space, a quote or a line break. A directory whose
112
+ # name only starts with the same text doesn't match.
113
+ string(REGEX MATCHALL "\${base_dir_regex}(/[^ '\\n]*)?[ '\\n]" paths "\${info}")
114
+ list(REMOVE_DUPLICATES paths)
115
+ foreach(path IN LISTS paths)
116
+ string(REGEX REPLACE "[ '\\n]$" "" path "\${path}")
117
+ file(RELATIVE_PATH relative_path "\${BUILD_DIR}" "\${path}")
118
+ string(REGEX REPLACE "([][+.*()^$?|\\\\\\\\])" "\\\\\\\\\\\\1" path_regex "\${path}")
119
+ string(REGEX REPLACE "\${path_regex}([ '\\n])" "\${relative_path}\\\\1" info "\${info}")
120
+ endforeach()
121
+ endif()
122
+
123
+ string(SHA256 digest "\${info}")
124
+ file(WRITE "\${PCH}.sum" "\${digest}\\n")
125
+ return()
126
+ endif()
127
+
128
+ set(PCH_CCACHE_FILE "\${CMAKE_CURRENT_LIST_FILE}")
129
+
130
+ # Find ccache program if it's used by the target
131
+ function(_pch_ccache_program target out_var)
132
+ get_target_property(launcher \${target} CXX_COMPILER_LAUNCHER)
133
+ get_property(global_rule GLOBAL PROPERTY RULE_LAUNCH_COMPILE)
134
+ get_property(directory_rule DIRECTORY PROPERTY RULE_LAUNCH_COMPILE)
135
+ separate_arguments(rules UNIX_COMMAND "\${global_rule} \${directory_rule}")
136
+ get_filename_component(compiler "\${CMAKE_CXX_COMPILER}" REALPATH)
137
+ foreach(program IN LISTS launcher rules compiler)
138
+ get_filename_component(name "\${program}" NAME_WE)
139
+ if(name STREQUAL "ccache")
140
+ find_program(PCH_CCACHE_PROGRAM NAMES "\${program}")
141
+ set(\${out_var} "\${PCH_CCACHE_PROGRAM}" PARENT_SCOPE)
142
+ return()
143
+ endif()
144
+ endforeach()
145
+ set(\${out_var} "" PARENT_SCOPE)
146
+ endfunction()
147
+
148
+ function(pch_ccache_owner owner)
149
+ # CMake's location of the PCH for the Ninja and Makefile generators.
150
+ set(pch_dir "\${CMAKE_CURRENT_BINARY_DIR}/CMakeFiles/\${owner}.dir")
151
+ set(pch "\${pch_dir}/cmake_pch.hxx.pch")
152
+
153
+ # Used by the custom command
154
+ set_property(SOURCE "\${pch_dir}/cmake_pch.hxx.cxx" APPEND PROPERTY
155
+ COMPILE_DEFINITIONS "PCH_CCACHE_BUILD_DIR=\${CMAKE_CURRENT_BINARY_DIR}"
156
+ )
157
+
158
+ set(pch_external_checksum "")
159
+ set(base_dir "")
160
+ _pch_ccache_program(\${owner} ccache)
161
+ if(NOT ccache AND "$ENV{EXPO_FORCE_PCH_CCACHE_SUM}")
162
+ # ccache runs through a wrapper, so take its configuration from the ccache on PATH
163
+ find_program(PCH_CCACHE_PATH_PROGRAM ccache)
164
+ set(ccache "\${PCH_CCACHE_PATH_PROGRAM}")
165
+ endif()
166
+ if(ccache)
167
+ foreach(option IN ITEMS pch_external_checksum base_dir)
168
+ execute_process(
169
+ COMMAND "\${ccache}" --get-config \${option}
170
+ OUTPUT_VARIABLE \${option}
171
+ OUTPUT_STRIP_TRAILING_WHITESPACE
172
+ ERROR_QUIET
173
+ )
174
+ endforeach()
175
+ endif()
176
+
177
+ if("$ENV{EXPO_FORCE_PCH_CCACHE_SUM}")
178
+ set(pch_external_checksum "true")
179
+ endif()
180
+
181
+ if(NOT pch_external_checksum STREQUAL "true")
182
+ # Remove the .sum of an earlier configuration: it can belong to an older PCH, and ccache would hash it
183
+ # if \`pch_external_checksum\` is enabled later.
184
+ file(REMOVE "\${pch}.sum")
185
+ return()
186
+ endif()
187
+
188
+ add_custom_command(
189
+ OUTPUT "\${pch}.sum"
190
+ COMMAND "\${CMAKE_COMMAND}"
191
+ "-DCOMPILER=\${CMAKE_CXX_COMPILER}"
192
+ "-DCOMPILER_TARGET=\${CMAKE_CXX_COMPILER_TARGET}"
193
+ "-DPCH=\${pch}"
194
+ "-DBASE_DIR=\${base_dir}"
195
+ "-DBUILD_DIR=\${CMAKE_BINARY_DIR}"
196
+ -P "\${PCH_CCACHE_FILE}"
197
+ DEPENDS "\${pch}" "\${PCH_CCACHE_FILE}"
198
+ COMMENT "Writing the ccache checksum of the \${owner} PCH"
199
+ VERBATIM
200
+ )
201
+ add_custom_target(\${owner}-pch-ccache-sum DEPENDS "\${pch}.sum")
202
+ endfunction()
203
+
204
+ function(pch_ccache_consumer consumer owner)
205
+ # ccache reads the .sum when it compiles a source of <consumer>, so it must be written before.
206
+ if(TARGET \${owner}-pch-ccache-sum)
207
+ add_dependencies(\${consumer} \${owner}-pch-ccache-sum)
208
+ endif()
209
+ endfunction()
210
+ `;
211
+
64
212
  export const PCH_OWNER_SOURCE_CONTENTS = `\
65
213
  // Translation unit exists solely so the owning target can produce a .pch
66
214
  // binary that codegen targets reuse.