Bob
Bob

Reputation: 4970

msbuild - export all properties defined in block to MSBuild calls

<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>

How do I "export" all the properties I've defined at the top to the calls to MSBuild within this target?

Otherwise, I have to set the Properties of each MSBuild.

Upvotes: 0

Views: 196

Answers (1)

Martin Ullrich
Martin Ullrich

Reputation: 100581

You can also create a single property that contains all the definitions:

<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>

Upvotes: 1

Related Questions