The question is how can I setup a group of source files using matching settings, and specific settings for files that need special treatment?
My question came about because of a build issue which I have now figured out
The question is how can I setup a group of source files using matching settings, and specific settings for files that need special treatment?
My question came about because of a build issue which I have now figured out
The following is roughly how that project system seems to work.
Please correct any misconceptions.
iii) File Settings
Project settings affect all source files that do not have a file setting
Project settings are specific to a configuration
When examining a file setting (a file node rather than a project node is selected) items showing in Bold are settings set at file level
If the setting is not bold then it is a File Setting
Within the project settings (the project node is selected) any items showing as bold are project settings, any showing as not bold are inherited from a property sheet
A good example of doing this is when you want to use pre-compiled headers. In this instance the majority of files need to consume the pre-compiled header and so you would set Use \Yu
under C/C++->Precompiled Headers:Precompiled Header
Then under stdafx.cpp
you would make it a file level setting (clicking on stdafx.cpp) and select Create \Yc
under C/C++->Precompiled Headers:Precompiled Header
Your project might also contain .C files that have been generated by Midl, and so for those files you would at file level select Not Using Precompiled Headers
under C/C++->Precompiled Headers:Precompiled Header
I am now trying to get to the root of what is causing MSBuild Error MSB8028 in one of my projects.
However the test project I created to research the problem does not seem to be obeying the rules I set out above. Each of the .cpp files in the project are ignoring the project setting for Precompiled Headers, but they are showing as non-bold
The above statement is false, but it has led me to the golden rule!
Make sure 'Configuration' contains the word 'Active'
Of course you can ignore this rule, but make sure to keep it in your mind to avoid the possibility that you have not created a setting within the wrong configuration, which will explain why the behaviour you were expecting is not actually what you are getting