[CMake] Extra include/lib paths - multiple entries

Alexander Neundorf a.neundorf-work at gmx.net
Sun Nov 21 13:49:48 EST 2010


On Thursday 18 November 2010, Adam J Richardson wrote:
> On Wed, 17 Nov 2010 13:12:42 +0100
>
> Yngve Inntjore Levinsen <yngve.levinsen at gmail.com> wrote:
> > On Wednesday 17 November 2010 12:30:06 Adam J Richardson wrote:
> > > Is this a correct specification for multiple include/lib paths in
> > > environment variables? If not, what should I use instead? Sometimes
> > > it seems to work, other times not...
> > >
> > >   CMAKE_INCLUDE_PATH=C:/Compilers/Includes;C:/Compilers/MinGW/include
> > >   CMAKE_LIBRARY_PATH=C:/Compilers/Libs;C:/Compilers/MinGW/lib
> >
> > This is how I would write it:
> > INCLUDE_DIRECTORIES(C:/Compilers/Includes C:/Compilers/MinGW/include)
> > TARGET_LINK_LIBRARIES(<your binary file name> C:/Compilers/Libs
> > C:/Compilers/MinGW/lib)
> >
> > I mostly use *nix systems though, so I am not perfectly sure how to
> > get it correct on Windows..
>
> Thanks for the reply Yngve. I wasn't clear: I need to specify the paths
> in the environment, not the CMakeLists.txt file. I use mostly *nix too,
> so adding Win-specific bits to the CMakeLists.txt isn't acceptable.

You can use something like
if(UNIX)
 ...
or
if(WIN32)
...
or
if(CMAKE_SYSTEM MATCHES "Windows")
...



> I'm guessing on the *nix buildslaves I would have env vars:
>
>    CMAKE_INCLUDE_PATH=/usr/include:/usr/myfunkylib/include
>    CMAKE_LIBRARY_PATH=/usr/lib:/usr/myfunkylib/lib
>
> using colons as separators rather than semicolons as on Windows.
>
> Right? Or not? Should I be using one or the other for both types of
> environment, since CMake is xplat? Or is my approach entirely wrong?

Sorry, but yes.

Search the include directories and libraries etc. in the CMakeLists.txt, and 
then use include_directories() and target_link_libraries() to use them.

Alex


More information about the CMake mailing list