Yes, by adding another directory between my top-level ./src/ directory and
./mylib, I can cause the example to fail.  I understand now that the
include_directory() directive really has no hidden intelligence to it at
all, as I had mistakenly believed.  It's just a path.

However, I don't really want to have to go around to all my executables and
add a bunch of relative paths based on which libraries they use, and where
they are located in the tree.

Is there some way that I can instead do something like force the install of
the libraries to happen before the build of the programs which depend upon
them?

On Tue, Dec 2, 2014 at 3:53 PM, Chris Johnson <[email protected]> wrote:

> Well, this fixed my example.  But my real project still fails the same
> way.  It is, of course, much more complex and the library directories are
> often several layers down in subdirectory trees.  :-(
>
> On Tue, Dec 2, 2014 at 2:05 PM, Chris Johnson <[email protected]> wrote:
>
>> I'm using Make as my build tool.  Here's the failing compile line with
>> the -I paths.  Indeed, they're not quite correct.  This is with the
>> suggested include_directories() directive.
>>
>> [100%] Building CXX object prog/CMakeFiles/prog.dir/prog.cpp.o
>> cd /sandbox/src/.build/prog && /usr/bin/c++    -I/sandbox/include
>> -I/sandbox/src/src -I/sandbox/src/mylib    -o
>> CMakeFiles/prog.dir/prog.cpp.o -c /sandbox/src/prog/prog.cpp
>>
>> Since the ../src/src path is wrong, I tried changing to
>> include_directories(${CMAKE_SOURCE_DIR}) and that seems to work.  That
>> seems to imply the top-level source is not part of the default include
>> path, correct?
>>
>> Thanks,
>> ..chris
>>
>>
>> On Tue, Dec 2, 2014 at 1:10 PM, Bill Hoffman <[email protected]>
>> wrote:
>>
>>> On 12/2/2014 1:04 PM, Chris Johnson wrote:
>>>
>>>> Adding this directive does not seem to change the results at all,
>>>> actually.  Am I missing something?​
>>>>
>>>>
>>> What build tool are you using?  Can you show a verbose compile line?
>>> Then check the -I paths.  make VERBOSE=1 will do it for make.
>>>
>>> -Bill
>>>
>>>
>
-- 

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://public.kitware.com/mailman/listinfo/cmake

Reply via email to