[CMake] Setting COMPILE_FLAGS property on a target in only debug?

Robert Dailey rcdailey.lists at gmail.com
Mon May 7 13:22:27 EDT 2012


On Mon, May 7, 2012 at 10:37 AM, Robert Dailey <rcdailey.lists at gmail.com>wrote:

> On Sat, May 5, 2012 at 5:34 AM, Michael Wild <themiwi at gmail.com> wrote:
>
>> On 05/04/2012 10:16 PM, Robert Dailey wrote:
>> > I'm doing the following:
>> >
>> > set_property( TARGET ${target_name} APPEND_STRING PROPERTY
>> > COMPILE_FLAGS "/ZI /Gy "
>> > )
>> >
>> > However this applies to all configurations. I want to only set this
>> > compiler flag for debug builds, not release. How can I do this?
>> >
>>
>> Can you misuse the COMPILE_DEFINITIONS_DEBUG property? Should work, IMHO.
>
>
> I can try it as a hack/workaround, but I would prefer to use the "right
> tool for the job". Perhaps this would make a good feature request. I
> definitely need this to work for Visual Studio, so I can't assume the build
> configuration is known at generation time in CMake.
>

I just tried your workaround and it does not work. It places everything in
my preprocessor definitions field, not actually on the command line.

I'm going to desperately need configuration-aware COMPILE_FLAGS, because in
Visual Studio, I have cache variables that enable certain features, like
edit & continue, minimal rebuild, etc... features that are not compatible
with /O2 (optimizations on). Since CMake has no choice but to enable these
MSVC features in all configurations, my release builds don't work, and the
user will be required to disable these features via cache variable every
time they want to build release, which is unnecessary.

If no one has the bandwidth to take up this feature I suppose I could look
into it. Anyone have any tips on how to implement this before I dive into
the CMake code?
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.cmake.org/pipermail/cmake/attachments/20120507/7fd0911c/attachment.htm>


More information about the CMake mailing list