[CMake] How to set path to library header files?
Chris Johnson
cxjohnson at gmail.com
Tue Dec 2 17:00:36 EST 2014
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 <cxjohnson at gmail.com> 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 <cxjohnson at gmail.com> 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 <bill.hoffman at kitware.com>
>> 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
>>>
>>>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://public.kitware.com/pipermail/cmake/attachments/20141202/cd7de724/attachment.html>
More information about the CMake
mailing list