[CMake] INSTALL(TARGET ...) Target not in this folder

Aaron_Wright at selinc.com Aaron_Wright at selinc.com
Fri Jul 16 11:07:33 EDT 2010


I have sort of an interesting directory structure for my projects. I have 
a folder for libraries, a folder for executables, and a folder for 
packages. The packages folder contains debian packages that combine 
libraries and executables from the other two folders. So they look sort of 
like:

IF(NOT TARGET executable_a)
        ADD_SUBDIRECTORY(
                "${PROJECT_SOURCE_DIR}/../../executables/executable_a"
                "${CMAKE_BINARY_DIR}/executable_a")
ENDIF()

INSTALL(
        TARGET executable_a
        DESTINATION bin)

This then gets packaged up into a *.deb with the executable in it. Well, 
that's what I would like it to do. Unfortunately, INSTALL(TARGET is giving 
me an error about "executable_a" not being the current directory or 
something close to that. I can get around this by using:

INSTALL(
        PROGRAM "${CMAKE_BINARY_DIR}/executable_a/executable_a"
        DESTINATION bin)

But this seems more brittle than the INSTALL(TARGET usage. What is the 
reasoning behind this error message? I don't understand why it shouldn't 
just work.

On a side note, I don't put the INSTALL(TARGET command in executable_a's 
folder because not everyone that ADD_SUBDIRECTORY on that folder wants 
executable_a to be installed. In fact this is the problem I was trying to 
solve by moving the INSTALL command up a level.

-------------------------------------------------------------
Aaron Wright
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.cmake.org/pipermail/cmake/attachments/20100716/26b416c4/attachment.htm>


More information about the CMake mailing list