[CMake] Forcing CMake to place targets in directories?

Robert Dailey rcdailey at gmail.com
Fri Dec 5 12:52:18 EST 2008


On Fri, Dec 5, 2008 at 10:48 AM, David Cole <david.cole at kitware.com> wrote:

> The target name is the name given as the first argument to ADD_LIBRARY,
> ADD_EXECUTABLE or ADD_CUSTOM_TARGET.
> CMake uses the target name to create the name of the vcproj files.
>
> By default, the name of the library or executable created is based on the
> target name and any appropriate prefixes or suffixes. But, if you
> specify OUTPUT_NAME, then the name of the library or executable created is
> based on OUTPUT_NAME instead. (Nothing to do with the vcproj file name.)
>
> There is no way to rename or move the vcproj files. They are always named
> the same as the corresponding target and they are always in the
> CMAKE_CURRENT_BINARY_DIR corresponding to the CMAKE_CURRENT_SOURCE_DIR
> containing the CMakeLists.txt file that contains the ADD_LIBRARY (or other)
> command.
>

I know for a fact this can be done. If you look at the Boost.CMake build
system, you will see that for their test projects they are placed in a
directory named "${project-name}-test", whereas the CMakeLists.txt file for
the tests is in a differently named directory. I'm not sure how this is
done, and CMake isn't very intuitive to read, especially since Boost CMake
files are so complex so I'm having difficulty finding the code that does
this.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.cmake.org/pipermail/cmake/attachments/20081205/dc2c26c7/attachment.htm>


More information about the CMake mailing list