Opened 14 years ago

Closed 14 years ago

#2054 closed Bugs (invalid)

tests that DEPEND on a library in a project that is MODULAR don't compile

Reported by: troy d. straszheim Owned by: troy d. straszheim
Milestone: Boost 1.36.0 Component: CMake
Version: Boost Release Branch Severity: Problem
Keywords: Cc:

Description

see Numeric-concepts-compile, in libs/numeric/ublas/test

Change History (2)

comment:1 by miguelf@…, 14 years ago

I was looking into this as I was playing around with modularizing boost::any. I think the solution is to collect the include dirs of each library. For example, assuming libs have been modularized, then set and export these:

set(BOOST_ANY_INCLUDE_DIRS ${Boost_SOURCE_DIR}/libs/any/include)

then do,

include_directories(${BOOST_ANY_INCLUDE_DIRS}) foreach(dep DEPENDS)

include_directories(${BOOST_${dep}_INCLUDE_DIRS})

endforeach(dep)

The tests and examples directories, if any, will inherit these include dirs.

--Miguel

comment:2 by troy d. straszheim, 14 years ago

Resolution: invalid
Status: newclosed

If a library L is marked MODULAR in its boost_library_project, its headers should be in (top)/libs/L/include/boost, not (top)/boost.

If a library M needs L to compile, *both* L and M need to have module.cmake files. L's could look like

boost_module(L)

if it has no further dependencies, but M's will need

boost_module(M DEPENDS L)

and this is how M will get the correct path to L's headers. Link dependencies are different, they are handled in boost_add_library(...). This is a little disjoint at the moment.

Note: See TracTickets for help on using tickets.