[CMake] Put bin|lib folders under Debug|Release folders
Michael Hertling
mhertling at online.de
Tue May 10 20:50:43 EDT 2011
On 05/08/2011 07:35 AM, Bo Zhou wrote:
> Hello all,
>
> I am dealing with a problem about the output path. At present I just do
> like this,
>
> set(CMAKE_RUNTIME_OUTPUT_DIRECTORY "${CMAKE_INSTALL_PREFIX}/bin")
> set(CMAKE_LIBRARY_OUTPUT_DIRECTORY "${CMAKE_INSTALL_PREFIX}/lib")
>
> And in fact the full path will be
> "${CMAKE_INSTALL_PREFIX}/bin/{Debug|Release}/", the all .exe .dll .pdb
> files will be generated there.
>
> Now I have a DLL target which should be in bin/plugins, I try a way
> which generates {Debug|Release} folders under the bin folder, that's
> unnecessary.
>
> I prefer a more clear output directory structure like
> ${CMAKE_INSTALL_PREFIX}/{Debug|Release}/bin/plugin, how should I do ?
>
> Thanks !
You shouldn't use the CMAKE_*_OUTPUT_DIRECTORY variables to write
your project's binaries to their final installation directory under
CMAKE_INSTALL_PREFIX. Instead, provide appropriate INSTALL() commands
for each target and make use of INSTALL()'s CONFIGURATIONS clause, e.g.
INSTALL(TARGETS plugin
RUNTIME DESTINATION Debug/bin/plugin
LIBRARY DESTINATION Debug/lib/plugin
CONFIGURATIONS Debug)
INSTALL(TARGETS plugin
RUNTIME DESTINATION Release/bin/plugin
LIBRARY DESTINATION Release/lib/plugin
CONFIGURATIONS Release)
etc. for further configurations and other targets to be installed.
Regards,
Michael
More information about the CMake
mailing list