[CMake] RUNTIME_OUTPUT_DIRECTORY_<CONFIG> has no effect
Martin Magnusson
martin at eyra.se
Fri Jan 7 07:08:51 EST 2011
2011-01-07 11:53, Andreas Pakulat skrev:
> On 07.01.11 11:11:18, Martin Magnusson wrote:
>> I'm having trouble setting the runtime output directory, especially with
>> multiple configurations.
>>
>> I'm using CMake 2.8 on Ubuntu 10.04, with gcc.
>>
>> My current root CMakeLists.txt contains
>> SET( EXECUTABLE_OUTPUT_PATH ${PROJECT_BINARY_DIR}/bin )
>> which works, although the EXECUTABLE_OUTPUT_PATH is deprecated.
>>
>> If I read the documentation correctly, the proper way of setting the
>> output directory now would be
>> SET_PROPERTY( GLOBAL PROPERTY
>> RUNTIME_OUTPUT_DIRECTORY ${PROJECT_BINARY_DIR}/bin
>> )
>> but that doesn't work for me. With that setting, the binary is produced
>> in the source directory, just as if I hadn't specified an output
>> directory at all.
>
> Thats because that variable is not a global property. If you look at the
> cmake manual you'll see it listed under the target-properties heading. So
> you have to set this for each target (or wrap your target-creation in a
> macro to set it automatically).
Thanks a lot for your help. Using
SET_TARGET_PROPERTIES( target PROPERTIES
RUNTIME_OUTPUT_DIRECTORY ${PROJECT_BINARY_DIR}/bin
)
does work. However,
SET_TARGET_PROPERTIES( target PROPERTIES
RUNTIME_OUTPUT_DIRECTORY_RELWITHDEBINFO
${PROJECT_BINARY_DIR}/bin/relwithdebinfo
)
still makes an in-source build.
> PS: To set the global value once, simply prefix it with CMAKE_ as
> documented in the manual.
Do you mean like this?
SET( CMAKE_RUNTIME_OUTPUT_DIRECTORY_RELWITHDEBINFO
${PROJECT_BINARY_DIR}/bin/relwithdebinfo )
I tried that, but that also had no effect.
More information about the CMake
mailing list