-
由 Ankit Jain 提交于
* Update tasks to support incremental build MonoAOTCompiler: - Compiles assemblies to .bc files. - Hashes for the .bc files are stored in a json cache file. - And uses .depfile generated by mono-aot-cross, to figure out the if any of the dependencies have changed - Writes out the actual .bc file only if the assembly, or it's dependencies changed EmccCompile.cs: Support a `%(Dependencies)` metadata on the source files, to compile the files only when needed. * Update wasm targets * don't pass unncessary args to RunTests * Add tests for incremental builds * Disable non-wasm builds, for testing * Add miggins LogAsErrorException.cs * Bump sdk for workload testing to 6.0.100-rc.1.21410.3 * fix build * MonoAOTCompiler: use the full path to copy the final .bc file * Make the method used with `MemberData`, static otherwise xunit just shows a cryptic: ``` Wasm.Build.Tests.RebuildTests.NoOpRebuild [STARTING] Wasm.Build.Tests.RebuildTests.NoOpRebuild [FAIL] System.NotSupportedException : Specified method is not supported. ``` * add back builds * Split Wasm.Build.Tests into multiple helix jobs * Revert "add back builds" This reverts commit 1d031c04e13780ec73180ba6f06a37ee42c24203. * Split up native rebuild tests * remove non-test classes * add back builds This reverts commit b008130a7886c2e2b9f16c83641c1b8c936082f6. * MonoAOTCompiler: make cache optional * MonoAOTCompiler: handle the case where we have a cache entry, but the file on disk doesn't exist * Fix aot compiler task output * MonoAOTCompiler: Use hashes of .bc files instead of assemblies `--depfile` isn't supported on aot config used by android, and fails with: ``` * Assertion at /__w/1/s/src/mono/mono/mini/aot-compiler.c:14216, condition `acfg->aot_opts.llvm_only && acfg->aot_opts.asm_only && acfg->aot_opts.llvm_outfile' not met ``` Instead, use hashes of the .bc.tmp files generated, with the existing .bc files. * MonoAOTCompiler: Support more than one output file The earlier implementation assumed that there would be only one output file. But in some cases (eg. android), there are more than one, like `.s`, `.dll-llvm.o`. * -bump sdk for workload testing * MonoAOTCompiler: don't use tmp files at all, when cache isn't being .. used. Co-authored-by: NLarry Ewing <lewing@microsoft.com>
3e3b00c5