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 +11 -1
- package/build/android.js +2 -1
- package/build/android.js.map +1 -1
- package/build/androidPCHTemplates.d.ts +2 -1
- package/build/androidPCHTemplates.js +153 -2
- package/build/androidPCHTemplates.js.map +1 -1
- package/package.json +4 -4
- package/src/android.ts +2 -0
- package/src/androidPCHTemplates.ts +150 -2
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
|
}
|
package/build/android.js.map
CHANGED
|
@@ -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\
|
|
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
|
-
|
|
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
|
|
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":"
|
|
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.
|
|
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.
|
|
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.
|
|
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
|
-
|
|
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
|
|
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.
|