diff options
author | Ilia K <ki.stfu@gmail.com> | 2022-10-14 11:24:47 (GMT) |
---|---|---|
committer | Brad King <brad.king@kitware.com> | 2022-11-09 15:22:46 (GMT) |
commit | 3166547cf6d62217d3142a18e3aae3fc84e49b24 (patch) | |
tree | 245e1a41fcb57ed5f4bd6794609b865ef7caa4dd /Source/cmLocalVisualStudio7Generator.cxx | |
parent | ce4babb5669b9fcd8ff3d34c109eeca598144ce4 (diff) | |
download | CMake-3166547cf6d62217d3142a18e3aae3fc84e49b24.zip CMake-3166547cf6d62217d3142a18e3aae3fc84e49b24.tar.gz CMake-3166547cf6d62217d3142a18e3aae3fc84e49b24.tar.bz2 |
ASM_MARMASM: Add support for Microsoft ARM assembler language
https://learn.microsoft.com/en-us/cpp/assembler/arm/arm-assembler-reference
Fixes: #23999
Diffstat (limited to 'Source/cmLocalVisualStudio7Generator.cxx')
-rw-r--r-- | Source/cmLocalVisualStudio7Generator.cxx | 33 |
1 files changed, 33 insertions, 0 deletions
diff --git a/Source/cmLocalVisualStudio7Generator.cxx b/Source/cmLocalVisualStudio7Generator.cxx index af2d31d..383045d 100644 --- a/Source/cmLocalVisualStudio7Generator.cxx +++ b/Source/cmLocalVisualStudio7Generator.cxx @@ -842,6 +842,24 @@ void cmLocalVisualStudio7Generator::WriteConfiguration( } } fout << "/>\n"; // end of <Tool Name=VCCLCompilerTool + if (gg->IsMarmasmEnabled() && !this->FortranProject) { + Options marmasmOptions(this, Options::MarmasmCompiler, 0, 0); + /* clang-format off */ + fout << + "\t\t\t<Tool\n" + "\t\t\t\tName=\"MARMASM\"\n" + ; + /* clang-format on */ + targetOptions.OutputAdditionalIncludeDirectories(fout, 4, "ASM_MARMASM"); + // Use same preprocessor definitions as VCCLCompilerTool. + targetOptions.OutputPreprocessorDefinitions(fout, 4, "ASM_MARMASM"); + marmasmOptions.OutputFlagMap(fout, 4); + /* clang-format off */ + fout << + "\t\t\t\tObjectFile=\"$(IntDir)\\\"\n" + "\t\t\t/>\n"; + /* clang-format on */ + } if (gg->IsMasmEnabled() && !this->FortranProject) { Options masmOptions(this, Options::MasmCompiler, 0, 0); /* clang-format off */ @@ -1720,6 +1738,10 @@ bool cmLocalVisualStudio7Generator::WriteGroup( aCompilerTool = "VFCustomBuildTool"; } } + if (gg->IsMarmasmEnabled() && !this->FortranProject && + lang == "ASM_MARMASM") { + aCompilerTool = "MARMASM"; + } if (gg->IsMasmEnabled() && !this->FortranProject && lang == "ASM_MASM") { aCompilerTool = "MASM"; @@ -2050,6 +2072,17 @@ void cmLocalVisualStudio7Generator::WriteProjectStart( << "\t\t<Platform\n\t\t\tName=\"" << gg->GetPlatformName() << "\"/>\n" << "\t</Platforms>\n"; /* clang-format on */ + if (gg->IsMarmasmEnabled()) { + /* clang-format off */ + fout << + "\t<ToolFiles>\n" + "\t\t<DefaultToolFile\n" + "\t\t\tFileName=\"marmasm.rules\"\n" + "\t\t/>\n" + "\t</ToolFiles>\n" + ; + /* clang-format on */ + } if (gg->IsMasmEnabled()) { /* clang-format off */ fout << |