[CMake] CMAKE_MFC_FLAG not working in functions

Rolf Eike Beer eike at sf-mail.de
Thu Oct 20 03:36:39 EDT 2011


> I have a function defined very high up in the directory tree at the root
> CMakeLists file. Several levels below it, I have another CMakeLists file
> that I call that function from.
>
> The function sets CMAKE_MFC_FLAG to 2. I notice that this flag gets
> ignored
> when it is set inside of the function in question. If I set the flag
> outside
> of the function, in the lowest level CMakeLists file, it works. This
> property seems somehow tied to the directory itself, but I can't figure
> out
> if this is a feature or a bug.
>
> This behavior isn't very flexible as I'd like to make the details of
> configuring an MFC compatible project transparent to the lower level
> CMakeLists scripts. Hiding away the flag and how it needs to be set is a
> big
> part of this, but I can't do it.
>
> Anyone know how I can make this work?

A function creates a new variable scope, i.e. everything you set in there
will be reset once you leave the function. Have a look at SET(...
PARENT_SCOPE) for this.

Eike


More information about the CMake mailing list