1/* 2 * Copyright (c) 2021-2022 Huawei Device Co., Ltd. 3 * Licensed under the Apache License, Version 2.0 (the "License"); 4 * you may not use this file except in compliance with the License. 5 * You may obtain a copy of the License at 6 * 7 * http://www.apache.org/licenses/LICENSE-2.0 8 * 9 * Unless required by applicable law or agreed to in writing, software 10 * distributed under the License is distributed on an "AS IS" BASIS, 11 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 * See the License for the specific language governing permissions and 13 * limitations under the License. 14 */ 15 16static uint32_t GetEnvironmentChecksum(Arch arch) { 17 // Checksums are based on entrypoints signatures + cross-values(arch) 18 switch(arch) { 19% cross_values_path = ARGV[0] 20% if (Dir.glob(cross_values_path + "/generated_values/*_values_gen.h").size == 0) 21% raise "Invalid cross-values path (" + cross_values_path + "/generated_values/*_values_gen.h" + ")" 22% end 23% Dir.glob(cross_values_path + "/generated_values/*_values_gen.h").each do |cross_values_h| 24 case Arch::<%= File.basename(cross_values_h, "_values_gen.h") %>: 25 return <%= Compiler::environment_checksum(cross_values_h) %>; // NOLINT(readability-magic-numbers) 26% end 27 default: 28 LOG(FATAL, COMPILER) << "Arch `" << GetArchString(arch) << "` is not supported"; 29 UNREACHABLE(); 30 } 31} 32