// Copyright (c) Advanced Micro Devices, Inc., or its affiliates. // SPDX-License-Identifier: MIT #include #include #include #include namespace miopen { static std::string GenerateDefines(const std::vector& options, const std::string& prefix) { const auto strs = options | std::views::transform([&prefix](const KernelBuildParameter& define) { std::ostringstream ss; ss << '-'; if(define.type == ParameterTypes::Define) ss << prefix; ss << define.name; if(!define.value.empty()) { switch(define.type) { case ParameterTypes::Define: ss << '='; break; case ParameterTypes::Option: ss << ' '; break; } ss << define.value; } return ss.str(); }); return JoinStrings(strs, " "); } std::string kbp::GcnAsm::Generate(const std::vector& options) { return GenerateDefines(options, "Wa,-defsym,"); } std::string kbp::HIP::Generate(const std::vector& options) { return GenerateDefines(options, "D"); } } // namespace miopen