[CMake] Confusion with $<CONFIGURATION>

Robert Dailey rcdailey.lists at gmail.com
Tue Nov 6 18:26:25 EST 2012


I was specifying that in my path for one of the OUTPUT files in
add_custom_command(). Is there any limitation on where/how it can be
used in a custom command?

On Tue, Nov 6, 2012 at 2:41 PM, David Cole <david.cole at kitware.com> wrote:
> The multi-configuration generators do understand CMAKE_CFG_INTDIR.
>
> CMake generates code to call your custom command, including $(OutDir)
> wherever you reference ${CMAKE_CFG_INTDIR}, and then Visual Studio
> sets that before invoking your command so that it gets resolved to the
> correct configuration-specific string.
>
> Are you seeing your command called with the literal $(OutDir) from
> Visual Studio? It should already be substituted for you by the time
> you see it in your command's argument parsing.
>
>
>
> On Tue, Nov 6, 2012 at 3:31 PM, Robert Dailey <rcdailey.lists at gmail.com> wrote:
>> On second thought, CMAKE_CFG_INTDIR won't work for multi-configuration
>> generators. It is using $(OutDir) for Visual Studio 2008 generator,
>> which my custom command can't understand. I'd like to use
>> $<CONFIGURATION> but then it won't work for single-configuration
>> generators (like NMake) where I want it to be "." only.
>>
>> Any ideas?
>>
>> On Mon, Nov 5, 2012 at 5:45 PM, Robert Dailey <rcdailey.lists at gmail.com> wrote:
>>> Sorry I got confused, what I needed to use is CMAKE_CFG_INTDIR.
>>>
>>> On Mon, Nov 5, 2012 at 5:17 PM, Robert Dailey <rcdailey.lists at gmail.com> wrote:
>>>> I'm using a custom target to copy files to the following directory:
>>>>
>>>> ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/$<CONFIGURATION>
>>>>
>>>> This works on Visual Studio generators, because binaries that are
>>>> compiled are placed in the directory above.
>>>>
>>>> However, if I generate for NMake on Windows, binaries are placed in
>>>> ${CMAKE_RUNTIME_OUTPUT_DIRECTORY} instead, but $<CONFIGURATION> for
>>>> the NMake makefiles generator says "Debug" instead of just "." so my
>>>> files do not copy to the correct location.
>>>>
>>>> Can anyone explain this? Am I doing something wrong? How can I make my
>>>> files copy to the appropriate binary output directory on both
>>>> generators?
>> --
>>
>> Powered by www.kitware.com
>>
>> Visit other Kitware open-source projects at http://www.kitware.com/opensource/opensource.html
>>
>> Please keep messages on-topic and check the CMake FAQ at: http://www.cmake.org/Wiki/CMake_FAQ
>>
>> Follow this link to subscribe/unsubscribe:
>> http://www.cmake.org/mailman/listinfo/cmake


More information about the CMake mailing list