Opened 14 years ago

Closed 13 years ago

#2189 closed Bugs (fixed)

install rules broken

Reported by: Maik Beckmann <Beckmann.Maik <at> googlemail <dot> com> Owned by: Douglas Gregor
Milestone: Boost 1.36.0 Component: CMake
Version: Boost Release Branch Severity: Regression
Keywords: Cc:

Description

tools/build/CMake/BoostCore.cmake contains

...
      # Install this module's headers
      install(DIRECTORY include/boost 
        DESTINATION ${BOOST_HEADER_DIR}
        COMPONENT ${libname}_headers
        PATTERN "CVS" EXCLUDE
        PATTERN ".svn" EXCLUDE)
...

This leads to something like

CMake Error at libs/fusion/cmake_install.cmake:36 (FILE):
  file INSTALL cannot find file
  "/home/maik/workspace/boost-cmake/libs/fusion/include/boost" to install

since the libs/$COMPONENT/include dirs have been removed from svn.

Attachments (1)

BoostCore.cmake.patch (616 bytes ) - added by Maik Beckmann <Beckmann.Maik <at> googlemail <dot> com> 14 years ago.

Download all attachments as: .zip

Change History (8)

comment:1 by Maik Beckmann <Beckmann.Maik <at> googlemail <dot> com>, 14 years ago

I guess what we want is

      # Install this module's headers
      install(DIRECTORY ${Boost_SOURCE_DIR}/boost/${libname}
        DESTINATION ${BOOST_HEADER_DIR}
        COMPONENT ${libname}_headers
        PATTERN "CVS" EXCLUDE
        PATTERN ".svn" EXCLUDE)

Note that ${Boost_SOURCE_DIR} isn't quoted, since cmake generated path variables (i.e. CMAKE_SOURCE_DIR) are escaped proper.

Patch is attached.

by Maik Beckmann <Beckmann.Maik <at> googlemail <dot> com>, 14 years ago

Attachment: BoostCore.cmake.patch added

comment:2 by Maik Beckmann <Beckmann.Maik <at> googlemail <dot> com>, 14 years ago

ping

comment:3 by Douglas Gregor, 14 years ago

I don't think this is the right patch. The header-installation logic here is meant to apply to a "modularized" Boost, where the headers do reside in include/boost. It's true that this will fail with a non-modularized Boost, but this isn't the fix for that: in that case, we shouldn't create ANY install rule for the library, because the install(DIRECTORY) rule for the Boost headers in the top-level CMakeLists.txt will handle it.

comment:4 by Maik Beckmann <Beckmann.Maik <at> googlemail <dot> com>, 14 years ago

OK.

So.. why have the include/boost folders been removed from the svn-repo? Just to make clear that this work has do be done?

comment:5 by Douglas Gregor, 14 years ago

If you run "make modularize", CMake will move headers into the appropriate places for a modularized Boost.

comment:6 by Maik Beckmann <Beckmann.Maik <at> googlemail <dot> com>, 14 years ago

Thank you. So what we really want is to make sure target modularize being done before make install.

comment:7 by troy d. straszheim, 13 years ago

Resolution: fixed
Status: newclosed

modularization temporarily disabled

Note: See TracTickets for help on using tickets.