Hello,
I've made simple NMake Project that I modify to launch a batch file inside a specific SDK Folder. This batch file use xtensa-elf to built ESP8266 MCU Chip (future, i will support atmel MCU). I use
this tutorial to perform Custom UI. But I've problem with conditional parameter. My Item Group was define like this:
<ItemGroup Label=""><PropertyPageSchema Include="$(ESPBuilderFolder)Template\SchemaItem.props;$(ESPBuilderFolder)Template\Compiler.props"><Context>File</Context></PropertyPageSchema><PropertyPageSchema Include="$(ESPBuilderFolder)Template\MCU_General.props"><Context>Project;General</Context></PropertyPageSchema><PropertyPageSchema Include="$(ESPBuilderFolder)Template\Compiler.props"><Context>Project;Compiler</Context></PropertyPageSchema><PropertyPageSchema Include="$(ESPBuilderFolder)Template\ESPBuilder_General.props"><Context>Project;ESP2</Context></PropertyPageSchema><PropertyPageSchema Include="$(ESPBuilderFolder)Template\ESPBuilder_Flash.props" Condition="'$(ESPBoot)'=='None'"><Context>Project;ESP</Context></PropertyPageSchema><PropertyPageSchema Include="$(ESPBuilderFolder)Template\ESPBuilder_Boot.props" Condition="'$(ESPBoot)'!='None'"><Context>Project;ESP</Context></PropertyPageSchema></ItemGroup>
But I get this Form
I will Get This
The general part is define like this: (ESPBuilder_General.props)
<ProjectSchemaDefinitions xmlns="http://schemas.microsoft.com/build/2009/properties" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:sys="clr-namespace:System;assembly=mscorlib"><Rule Name="ESPRAM"
DisplayName="ESP Ram"
PageTemplate="generic"
SwitchPrefix=""
Description="ESP Ram property sheet" Order="200"
xmlns="http://schemas.microsoft.com/build/2009/properties"><Rule.Categories><Category Name="ESPRAMConfig" DisplayName="ESP Ram Configuration" /></Rule.Categories><Rule.DataSource><DataSource Persistence="ProjectFile" HasConfigurationCondition="true" /></Rule.DataSource><EnumProperty Name="ESPBoot" DisplayName="ESP Boot Mode"
Description="Select version of ESP Boot Mode."
Category="ESPRAMConfig"><EnumValue Name="None" DisplayName="No boot" Description="Using Eagle mode .flash and .irom0text" Switch="ESPBootNum=0 ESPBoot=None"/><EnumValue Name="Old" DisplayName="Version 1.1" Description="Using boot mode version 1.1" Switch="ESPBootNum=1 ESPBoot=Old"/><EnumValue Name="New" DisplayName="Version 1.2+" Description="Using boot mode version 1.2 or more" Switch="ESPBootNum=2 ESPBoot=New"/></EnumProperty><EnumProperty Name="SPISpeed" DisplayName="ESP SPI Speed Mode"
Description="Select SPI Speed."
Category="ESPRAMConfig"><EnumValue Name="SPI20" DisplayName="20 Mhz - Frequence Div 0" Description="20 Mhz speed mode" Switch="SPISpeed=0"/><EnumValue Name="SPI26" DisplayName="26.7 Mhz - Frequence Div 1" Description="26.7 Mhz speed mode" Switch="SPISpeed=1"/><EnumValue Name="SPI40" DisplayName="40 Mhz - Frequence Div 2" Description="40 Mhz speed mode" Switch="SPISpeed=2"/><EnumValue Name="SPI80" DisplayName="80 Mhz - Frequence Div 15" Description="80 Mhz speed mode" Switch="SPISpeed=15"/></EnumProperty><EnumProperty Name="SPIMode" DisplayName="ESP SPI Transfert Mode"
Description="Select SPI transfert Mode."
Category="ESPRAMConfig"><EnumValue Name="SPIQIO" DisplayName="QIO" Description="QIO Transfert Mode" Switch="SPIMODE=0"/><EnumValue Name="SPIQOUT" DisplayName="QOUT" Description="QOUT Transfert Mode" Switch="SPIMODE=1"/><EnumValue Name="SPIDIO" DisplayName="DIO" Description="DIO Transfert Mode" Switch="SPIMODE=2"/><EnumValue Name="SPIDOUT" DisplayName="DOUT" Description="DOUT Transfert Mode" Switch="SPIMODE=3"/></EnumProperty></Rule></ProjectSchemaDefinitions>The second and the third part, look part like this: (ESPBuilder_Flash.props & ESPBuilder_Boot.props)
<ProjectSchemaDefinitions xmlns="http://schemas.microsoft.com/build/2009/properties" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:sys="clr-namespace:System;assembly=mscorlib"><Rule Name="ESPRAM"
DisplayName="ESP Ram"
PageTemplate="generic"
SwitchPrefix=""
Description="ESP Ram property sheet" Order="200"
xmlns="http://schemas.microsoft.com/build/2009/properties"><Rule.Categories><Category Name="ESPRAMConfig" DisplayName="ESP Ram Configuration" /></Rule.Categories><Rule.DataSource><DataSource Persistence="ProjectFile" HasConfigurationCondition="true" /></Rule.DataSource><EnumProperty Name="ESPBin" DisplayName="ESP Bin Mode"
Description="Select ESP Bin version."
Category="ESPRAMConfig"><EnumValue Name="Eagle" DisplayName=".flash+.irom0text" Description="Using Eagle mode .flash and .irom0text" Switch="ESPBin=0"/></EnumProperty><EnumProperty Name="SPISize" DisplayName="ESP SPI Size"
Description="Select SPI Size."
Category="ESPRAMConfig"><EnumValue Name="0" DisplayName="512KB [256KB + 256KB]" Description="Total [User1 + User2]" Switch="SPISIZE=0 ESPRAM=512 USERRAM=512 USERADDR=0x40000"/><EnumValue Name="2" DisplayName="1024KB [512KB + 512KB]" Description="Total [User1 + User2]" Switch="SPISIZE=2 ESPRAM=1024 USERRAM=1024 USERADDR=0x81000"/><EnumValue Name="3" DisplayName="2048KB [512KB + 512KB]" Description="Total [User1 + User2]" Switch="SPISIZE=3 ESPRAM=2048 USERRAM=1024 USERADDR=0x81000"/><EnumValue Name="4" DisplayName="4096KB [512KB + 512KB]" Description="Total [User1 + User2]" Switch="SPISIZE=4 ESPRAM=4096 USERRAM=1024 USERADDR=0x81000"/><EnumValue Name="5" DisplayName="2048KB [1024KB + 1024KB]" Description="Total [User1 + User2]" Switch="SPISIZE=5 ESPRAM=2048 USERRAM=2048 USERADDR=0x101000"/><EnumValue Name="6" DisplayName="4096KB [1024KB + 1024KB]" Description="Total [User1 + User2]" Switch="SPISIZE=6 ESPRAM=4096 USERRAM=2048 USERADDR=0x101000"/></EnumProperty></Rule></ProjectSchemaDefinitions>Question:
Does It's possible to configure ProjectShemaDefinition to be merged inside one TAB?
The only way I found it's remerge (ESPBuilder_General.props + ESPBuilder_Flash.props) & (ESPBuilder_General.props + ESPBuilder_Boot.props). But it's create redundant entry and it's a little boring to modify.
Thanks