Sign Up

Sign Up to our social questions and Answers Engine to ask questions, answer people’s questions, and connect with other people.

Have an account? Sign In

Have an account? Sign In Now

Sign In

Login to our social questions & Answers Engine to ask questions answer people’s questions & connect with other people.

Sign Up Here

Forgot Password?

Don't have account, Sign Up Here

Forgot Password

Lost your password? Please enter your email address. You will receive a link and will create a new password via email.

Have an account? Sign In Now

You must login to ask a question.

Forgot Password?

Need An Account, Sign Up Here

Please briefly explain why you feel this question should be reported.

Please briefly explain why you feel this answer should be reported.

Please briefly explain why you feel this user should be reported.

Sign InSign Up

The Archive Base

The Archive Base Logo The Archive Base Logo

The Archive Base Navigation

  • SEARCH
  • Home
  • About Us
  • Blog
  • Contact Us
Search
Ask A Question

Mobile menu

Close
Ask a Question
  • Home
  • Add group
  • Groups page
  • Feed
  • User Profile
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Buy Points
  • Users
  • Help
  • Buy Theme
  • SEARCH
Home/ Questions/Q 4536688
In Process

The Archive Base Latest Questions

Editorial Team
  • 0
Editorial Team
Asked: May 21, 20262026-05-21T14:34:12+00:00 2026-05-21T14:34:12+00:00

I would like to have a list of conditional compilation symbols, maybe a table

  • 0

I would like to have a list of conditional compilation symbols, maybe a table where each symbol has a checkbox, and then at build time, only symbols that are ‘switched’ on are included in the compilation. Is there any way to do this besides programmatically changing the project file before each compile?

  • 1 1 Answer
  • 0 Views
  • 0 Followers
  • 0
Share
  • Facebook
  • Report

Leave an answer
Cancel reply

You must login to add an answer.

Forgot Password?

Need An Account, Sign Up Here

1 Answer

  • Voted
  • Oldest
  • Recent
  • Random
  1. Editorial Team
    Editorial Team
    2026-05-21T14:34:13+00:00Added an answer on May 21, 2026 at 2:34 pm

    First, I assume for this answer that you would like to do it from Visual Studio IDE and you a compile C++ project.

    You can do it by adding property pages to your project where you specify all these compilation symbols. The property pages gives you the UI in very little effort. When the user edits the property pages, the data is stored on items/properties in your project file or user file.
    You will also need to add a custom task that will actually take the data that was stored by the property pages and apply it when files are compiled.

    So here it is with a few more details:

    • Import your targets file from your project file. Edit the .vcxproj and add at the end (before the closing element </Project> for example) something like:
      <Import Project="$(ProjectDir)MyTargets.xml" />

    • Compose MyTargets.xml file. It should import the property pages and define the custom target.

    <?xml version="1.0" encoding="utf-8"?>

     <Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">          
          <ItemGroup>
            <PropertyPageSchema Include="$(ProjectDir)MyProperties.xml"/>
          </ItemGroup>    
    
      <Target Name="AddMySymbols" 
              Inputs="@ClCompile"
              Outputs="__non_existent_outputs__"
              BeforeTargets="ClCompile"> 
    
          <ItemGroup>
            <ClCompile Include="@ClCompile">
              <PreprocessorDefinitions Condition="'$(MY_SYMBOL)'='true'">MY_SYMBOL; %(PreprocessorDefinitions)</PreprocessorDefinitions>
            </ClCompile>
          </ItemGroup>
      </Target>        
    </Project>
    

    AddMySymbols target is performed before compiling every file. For each file we add MY_SYMBOL to PreprocessorDefinitions if a property called “MY_SYMBOL” is true.

    • Compose MyProperties.xml file. This file is used by Visual Studio to display the property pages UI. It will allow the user to set MY_SYMBOL property to true/false.
      Here is an example of MyProperties.xml:

    <?xml version="1.0" encoding="utf-8"?>

    <ProjectSchemaDefinitions xmlns="http://schemas.microsoft.com/build/2009/properties">
    
    <Rule Name="Symbols" PageTemplate="tool" DisplayName="Symbols" SwitchPrefix="/" Order="1" 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.Categories>
          <Category Name="MySymbols">
            <Category.DisplayName>
              <sys:String>My Symbols</sys:String>
            </Category.DisplayName>
          </Category>
        </Rule.Categories>
    
        <Rule.DataSource>
          <DataSource Persistence="ProjectFile" ItemType="" HasConfigurationCondition="false" />
        </Rule.DataSource>
    
        <BoolProperty
          Name="MY_SYMBOL"
          Category="MySymbols"
          DisplayName="MY_SYMBOL"
          Description="When enabled, MY_SYMBOL will be added to preprocessor symbols when compiling C/C++ files."/>
    
    </ProjectSchemaDefinitions>
    

    ItemType is “” so that MY_SYMBOL will be saved in the project file as a property and not as an item. You could arrange it differently and work with items instead.
    If you would like the symbols to be saved per user you could save it to the user file by changing DataSource to <DataSource Persistence="UserFile" ItemType="" HasConfigurationCondition="false" />

    Here is a link to some explanations about property pages.

    Amir

    • 0
    • Reply
    • Share
      Share
      • Share on Facebook
      • Share on Twitter
      • Share on LinkedIn
      • Share on WhatsApp
      • Report

Sidebar

Related Questions

I would like the ability to select which conditional compilation symbols are used with
I have a list of files that I would like analyze. They are all
I have a list of groups in a SQL query and would like them
I have a list of parent/child IDs and would like to get all child
I have a list of custom objects List and I would like to update
I have a list of elements which I would like to make sortable and
I have a List of objects that I would like to convert to a
I have a list of items aprox 60,000 items - i would like to
I have a list of files on a server and would like to load
I have a List of objects which are ordered. I would like to remove

Explore

  • Home
  • Add group
  • Groups page
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Users
  • Help
  • SEARCH

Footer

© 2021 The Archive Base. All Rights Reserved
With Love by The Archive Base

Insert/edit link

Enter the destination URL

Or link to existing content

    No search term specified. Showing recent items. Search or use up and down arrow keys to select an item.