VS: Honor compile options for ASM_NASM
The Ninja and Makefile generators honor `target_compile_options` and friends for ASM_NASM `.asm` sources. Teach the VS generator to honor them too for consistency. Issue: #24289
This commit is contained in:
parent
b44714a642
commit
24bcad5bac
@ -3930,6 +3930,8 @@ bool cmVisualStudio10TargetGenerator::ComputeNasmOptions(
|
|||||||
this->LocalGenerator->AddLanguageFlags(flags, this->GeneratorTarget,
|
this->LocalGenerator->AddLanguageFlags(flags, this->GeneratorTarget,
|
||||||
cmBuildStep::Compile, "ASM_NASM",
|
cmBuildStep::Compile, "ASM_NASM",
|
||||||
configName);
|
configName);
|
||||||
|
this->LocalGenerator->AddCompileOptions(flags, this->GeneratorTarget,
|
||||||
|
"ASM_NASM", configName);
|
||||||
flags += " -f";
|
flags += " -f";
|
||||||
flags += this->Makefile->GetSafeDefinition("CMAKE_ASM_NASM_OBJECT_FORMAT");
|
flags += this->Makefile->GetSafeDefinition("CMAKE_ASM_NASM_OBJECT_FORMAT");
|
||||||
nasmOptions.Parse(flags);
|
nasmOptions.Parse(flags);
|
||||||
|
@ -30,7 +30,7 @@
|
|||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<Message Importance="High" Text="%(NASM.ExecutionDescription)"/>
|
<Message Importance="High" Text="%(NASM.ExecutionDescription)"/>
|
||||||
<WriteLinesToFile Condition="'@(NASM_tlog)' != '' and '%(NASM_tlog.ExcludedFromBuild)' != 'true'" File="$(IntDir)$(ProjectName).write.1.tlog" Lines="^%(NASM_tlog.Source);@(NASM_tlog->'%(Fullpath)')"/>
|
<WriteLinesToFile Condition="'@(NASM_tlog)' != '' and '%(NASM_tlog.ExcludedFromBuild)' != 'true'" File="$(IntDir)$(ProjectName).write.1.tlog" Lines="^%(NASM_tlog.Source);@(NASM_tlog->'%(Fullpath)')"/>
|
||||||
<NASM Condition="'@(NASM)' != '' and '%(NASM.ExcludedFromBuild)' != 'true'" Inputs="%(NASM.Inputs)" OutputFormat="%(NASM.OutputFormat)" Outputswitch="%(NASM.Outputswitch)" AssembledCodeListingFile="%(NASM.AssembledCodeListingFile)" GenerateDebugInformation="%(NASM.GenerateDebugInformation)" ErrorReporting="%(NASM.ErrorReporting)" IncludePaths="%(NASM.IncludePaths)" PreprocessorDefinitions="%(NASM.PreprocessorDefinitions)" UndefinePreprocessorDefinitions="%(NASM.UndefinePreprocessorDefinitions)" ErrorReportingFormat="%(NASM.ErrorReportingFormat)" TreatWarningsAsErrors="%(NASM.TreatWarningsAsErrors)" floatunderflow="%(NASM.floatunderflow)" macrodefaults="%(NASM.macrodefaults)" user="%(NASM.user)" floatoverflow="%(NASM.floatoverflow)" floatdenorm="%(NASM.floatdenorm)" numberoverflow="%(NASM.numberoverflow)" macroselfref="%(NASM.macroselfref)" floattoolong="%(NASM.floattoolong)" orphanlabels="%(NASM.orphanlabels)" CommandLineTemplate="%(NASM.CommandLineTemplate)" AdditionalOptions="%(NASM.AdditionalOptions)"/>
|
<NASM Condition="'@(NASM)' != '' and '%(NASM.ExcludedFromBuild)' != 'true'" Inputs="%(NASM.Inputs)" OutputFormat="%(NASM.OutputFormat)" Outputswitch="%(NASM.Outputswitch)" tasmmode="%(NASM.tasmmode)" AssembledCodeListingFile="%(NASM.AssembledCodeListingFile)" GenerateDebugInformation="%(NASM.GenerateDebugInformation)" ErrorReporting="%(NASM.ErrorReporting)" IncludePaths="%(NASM.IncludePaths)" PreprocessorDefinitions="%(NASM.PreprocessorDefinitions)" UndefinePreprocessorDefinitions="%(NASM.UndefinePreprocessorDefinitions)" ErrorReportingFormat="%(NASM.ErrorReportingFormat)" TreatWarningsAsErrors="%(NASM.TreatWarningsAsErrors)" floatunderflow="%(NASM.floatunderflow)" macrodefaults="%(NASM.macrodefaults)" user="%(NASM.user)" floatoverflow="%(NASM.floatoverflow)" floatdenorm="%(NASM.floatdenorm)" numberoverflow="%(NASM.numberoverflow)" macroselfref="%(NASM.macroselfref)" floattoolong="%(NASM.floattoolong)" orphanlabels="%(NASM.orphanlabels)" CommandLineTemplate="%(NASM.CommandLineTemplate)" AdditionalOptions="%(NASM.AdditionalOptions)"/>
|
||||||
</Target>
|
</Target>
|
||||||
<Target Name="ComputeNASMOutput" Condition="'@(NASM)' != ''">
|
<Target Name="ComputeNASMOutput" Condition="'@(NASM)' != ''">
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
|
@ -18,3 +18,5 @@ file(WRITE "${CMAKE_CURRENT_BINARY_DIR}/bar baz.asm" "${BAR_ASM_CONTENTS}")
|
|||||||
|
|
||||||
include_directories(${CMAKE_CURRENT_SOURCE_DIR}/include)
|
include_directories(${CMAKE_CURRENT_SOURCE_DIR}/include)
|
||||||
add_executable(VSNASM main.c foo.asm "${CMAKE_CURRENT_BINARY_DIR}/bar baz.asm")
|
add_executable(VSNASM main.c foo.asm "${CMAKE_CURRENT_BINARY_DIR}/bar baz.asm")
|
||||||
|
target_compile_definitions(VSNASM PRIVATE DEF_FOO)
|
||||||
|
target_compile_options(VSNASM PRIVATE "$<$<COMPILE_LANGUAGE:ASM_NASM>:-t>")
|
||||||
|
@ -1,7 +1,11 @@
|
|||||||
|
%ifndef DEF_FOO
|
||||||
|
%error "DEF_FOO incorrectly not defined"
|
||||||
|
%endif
|
||||||
section .text
|
section .text
|
||||||
%ifdef TEST2x64
|
%ifdef TEST2x64
|
||||||
global foo
|
global foo
|
||||||
%else
|
%else
|
||||||
global _foo
|
global _foo
|
||||||
%endif
|
%endif
|
||||||
%include "foo-proc.asm"
|
;TASM compatibility mode allows 'include' instead of '%include'
|
||||||
|
include "foo-proc.asm"
|
||||||
|
Loading…
Reference in New Issue
Block a user