msbuild - 将块中定义的所有属性导出到MSBuild调用

时间:2017-11-16 22:18:16

标签: msbuild

<Target Name="micropython_prebuild">

    <PropertyGroup>
        <uP_PrebuildPyExe>"$(ProjectDir)\Source\micropython\py\make_prebuild_wrapper.exe"</uP_PrebuildPyExe>
        <GnuCat>$(uP_PrebuildPyExe) gnu_cat</GnuCat>
        <GnuSed>$(uP_PrebuildPyExe) gnu_sed</GnuSed>
        <uP_GenHdrFolder>$(ObjectFolder)\genhdr</uP_GenHdrFolder>
        <uP_QSTR_GEN_EXTRA_CFLAGS>-DNO_QSTR -DN_X64 -DN_X86 -DN_THUMB -DN_ARM -DN_XTENSA</uP_QSTR_GEN_EXTRA_CFLAGS>
        <uP_SRC>$(ProjectDir)\Source\micropython</uP_SRC>
        <uP_MPY_CROSS>"$(ProjectDir)\Source\micropython\mpy-cross\mpy-cross.exe"</uP_MPY_CROSS>
    </PropertyGroup>

    <MakeDir Directories="$(uP_GenHdrFolder)\"/>

    <MSBuild
        Projects="$(MSBuildProjectFile)"
        Condition="'' == ''"
        Targets="prebuild_mpversion"
        Properties="uP_PrebuildPyExe=$(uP_PrebuildPyExe);
                    uP_GenHdrFolder=$(uP_GenHdrFolder)"
    />
</Target>

如何将我在顶部定义的所有属性“导出”到此目标中对MSBuild的调用?

否则,我必须设置每个Properties的{​​{1}}。

1 个答案:

答案 0 :(得分:1)

您还可以创建包含所有定义的单个属性:

<Target Name="micropython_prebuild">

    <PropertyGroup>
      <PrebuildProperties>
        uP_PrebuildPyExe="$(ProjectDir)\Source\micropython\py\make_prebuild_wrapper.exe";
        GnuCat=$(uP_PrebuildPyExe) gnu_cat;
        GnuSed=$(uP_PrebuildPyExe) gnu_sed;
        uP_GenHdrFolder=$(ObjectFolder)\genhdr;
        uP_QSTR_GEN_EXTRA_CFLAGS=-DNO_QSTR -DN_X64 -DN_X86 -DN_THUMB -DN_ARM -DN_XTENSA;
        uP_SRC=$(ProjectDir)\Source\micropython;
        uP_MPY_CROSS="$(ProjectDir)\Source\micropython\mpy-cross\mpy-cross.exe";
      </PrebuildProperties>
    </PropertyGroup>

    <MakeDir Directories="$(uP_GenHdrFolder)\"/>

    <MSBuild
        Projects="$(MSBuildProjectFile)"
        Condition="'' == ''"
        Targets="prebuild_mpversion"
        Properties="$(PrebuildProperties)"
    />
</Target>