Hi,

On Sat, Jul 27, 2013 at 12:39 AM, Andreas Pakulat <[email protected]> wrote:

> Hi,
>
> I'm having a project here where cmake refuses to recognize the "COMPONENT"
> option for the install() command for certain targets.
>
> Within the project there are several subdirs, the top-level CMakeLists.txt
> has a component-install rule like this:
>
> INSTALL(DIRECTORY ${PROJECT_BINARY_DIR}/doc/html DESTINATION
> share/doc/myapp COMPONENT documentation)
>
> which generates the expected output in the cmake_install.cmake file.
> However several subdirectories contain executable targets for which the
> cmake_install.cmake file uses the "Unspecified" component. The executable
> target files look like this:
>
> SET(SOURCES
>         main.cpp object.cpp)
>
> SET(MOCABLES
>         object.h)
>
> QT4_WRAP_CPP(MOC_SOURCES ${MOCABLES})
>
> ADD_EXECUTABLE(myapp ${SOURCES} ${MOC_SOURCES})
> TARGET_LINK_LIBRARIES(myapp ${QT_LIBRARIES})
>
> # Installation
> INSTALL(TARGETS myapp RUNTIME DESTINATION bin
>                        ARCHIVE DESTINATION lib
>                        LIBRARY DESTINATION lib
>                        COMPONENT applications)
>
> I can't seem to find a reason for this misbehaviour using cmake --trace or
> cmake --debug-output. Are there any other ways (short of patching +
> compiling cmake) to find out what goes wrong here? And if not, can someone
> give me a hint where to start patching?
>
> I'm using cmake 2.8.11.2 on Debian/GNU Linux.
>
> In a very small example with just an executable target in a single cmake
> file everything works fine, but minimizing the real codebase is quite a bit
> harder than I thought.
>

It seems that the issue is that I'm listing 'COMPONENT' after the various
destinations. This seems to confuse the parsing of the arguments in
cmInstallCommand, as the genericArgs in ::HandleTargetsMode always yields
'Unspecified' unless I move COMPONENT before the DESTINATIONS.

The cmake docs do not indicate any importance on the order, but I finally
have a minimal testcase and can file a bugreport.

Andreas
--

Powered by www.kitware.com

Please keep messages on-topic and check the CMake FAQ at: 
http://www.cmake.org/Wiki/CMake_FAQ

Kitware offers various services to support the CMake community. For more 
information on each offering, please visit:

CMake Support: http://cmake.org/cmake/help/support.html
CMake Consulting: http://cmake.org/cmake/help/consulting.html
CMake Training Courses: http://cmake.org/cmake/help/training.html

Visit other Kitware open-source projects at 
http://www.kitware.com/opensource/opensource.html

Follow this link to subscribe/unsubscribe:
http://www.cmake.org/mailman/listinfo/cmake

Reply via email to