Skip to content

VS: Generate HEADER_FILE_ONLY sources a excluded ClCompile

Luigi Fiorentini requested to merge lfiorentini/cmake:ExcludeFromBuilde2 into master

This hack set ExcludeFromBuild to true in place to use the tag <ClInclude> to refer the file as a header.

Basically in place of:

<ClInclude Include="E:\ttt\source\main.cpp" />

the following code is being generated:

<ClCompile Include="E:\ttt\source\main.cpp">
   <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</ExcludedFromBuild>
   <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|x64'">true</ExcludedFromBuild>
   <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='MinSizeRel|x64'">true</ExcludedFromBuild>
   <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='RelWithDebInfo|x64'">true</ExcludedFromBuild>
</ClCompile>

Simple test CMakeLists.txt:

project(solution CXX)
set_source_files_properties(main.cpp PROPERTIES HEADER_FILE_ONLY TRUE)
add_executable(${PROJECT_NAME} main.cpp)
Edited by Brad King

Merge request reports