<div class="gmail_quote"><br><blockquote class="gmail_quote" style="margin: 0pt 0pt 0pt 0.8ex; border-left: 1px solid rgb(204, 204, 204); padding-left: 1ex;"><div link="blue" vlink="purple" lang="NL"><div>

<p class="MsoNormal"><span style="font-size: 11pt; color: rgb(31, 73, 125);"> </span></p>

<p class="MsoNormal"><span style="font-size: 11pt; color: rgb(31, 73, 125);" lang="EN-US">We override the standard CMAKE_&lt;LANG&gt;_FLAGS (C CXX
Fortran) and use it as a baseline. Then, for individual source files it is
possible to override them in a separate file using:</span></p>

<p class="MsoNormal"><span style="font-size: 11pt; color: rgb(31, 73, 125);" lang="EN-US"></span></p></div></div></blockquote><div><br>Yes this is seemingly common practice in CMake land.  The problem with this approach is when using add_subdirectory on third party source these package developers also set these (often with CACHE STRING &quot;&quot; FORCE - the reason why I had to patch boost-cmake-1.41_0 and dcmtk, I use ExternalProject_ADD for vtk, and vtk-edge, but this certainly the best solution) which can cause all kinds of greif when these are included in an uber project.  My approach is to have a set of macros/functions which work as Boost.Build (bjam) projects which can inherit properties from other parent projects.  Which actually makes the project( ) syntax somewhat useful.  I currently have this working (though not complete) with the last CMake strong hold being the use of these variables.  If I can overcome this I intend to submit these to Mantis bug tracker as a feature request.  This also allows the developer to reach anywhere in any subproject and in any third party developer package and change the build settings without having to patch (provided TPS developers would use the convention).<br>
<br>I would like to do this without having to patch CMake and simply provide a set of macro functions which could be included in future releases.<br> </div><blockquote class="gmail_quote" style="margin: 0pt 0pt 0pt 0.8ex; border-left: 1px solid rgb(204, 204, 204); padding-left: 1ex;">
<div link="blue" vlink="purple" lang="NL"><div><p class="MsoNormal"><span style="font-size: 11pt; color: rgb(31, 73, 125);" lang="EN-US"> </span></p>

<p class="MsoNormal"><span style="font-size: 11pt; color: rgb(31, 73, 125);" lang="EN-US">set_source_files_properties(${CMAKE_BINARY_DIR}/path/to/file.f
PROPERTIES GENERATED TRUE COMPILE_FLAGS &quot;${FFLAG_OPT}&quot;)</span></p>

<p class="MsoNormal"><span style="font-size: 11pt; color: rgb(31, 73, 125);" lang="EN-US"> </span></p></div></div></blockquote><div><br>COMPILE flags only appends to thoes already set CMAKE_... vars.  I need a way to override all the other vars on a per target basis.<br>
<br><br> </div><br><span style="font-size: 11pt; color: rgb(31, 73, 125);"></span></div>