[CMake] CMake Library Issues
Christopher Harvey
chris at basementcode.com
Tue Feb 3 23:32:45 EST 2009
perhaps include_directories(..)
That's how I do it.
You can also print the
${SERVER_SOURCE_DIR}
variable.
MESSAGE("SERVER_SOURCE_DIR is ${SERVER_SOURCE_DIR}")
Let me know if this works.
Nick Ogden wrote:
> Hi there,
>
> I have a problem with using CMake to compile a library that I'm trying to use
> in an application that I'm writing.
>
> I have the following directory structure:
>
> src/
> |---- CMakeLists.txt (1)
> |---- app/
> | |---- CMakeLists.txt (2)
> | |---- (app source and headers)
> |---- libmba/
> | |---- CMakeLists.txt (3)
> | |---- mba
> | | |---- (libmba headers)
> | |---- (libmba source)
>
> The problem occurs when compiling the library. Make states that it cannot find
> a header file for the library, which is definitely in the 'mba' directory. The
> problem seems to be that the library uses '#include <mba/XXXX>' style
> statements in the header files and as such expects the search path to start in
> the 'libmba' directory. Since some header files include other header files, make
> then seems to look for the directory 'src/libmba/mba/mba' which of course does
> not exist. Is there any way of preventing this behavior so that the search
> will always start in the 'libmba' directory?
>
> The error as reported by make and the relevant CMakeLists.txt file is as
> follows.
>
> Error:
>
> Scanning dependencies of target mba
> [ 3%] Building C object libmba/CMakeFiles/mba.dir/allocator.c.o
> In file included from /.../src/libmba/allocator.c:29:
> /.../src/libmba/mba/suba.h:24:27: error: mba/allocator.h: No such file or
> directory
> make[2]: *** [libmba/CMakeFiles/mba.dir/allocator.c.o] Error 1
> make[1]: *** [libmba/CMakeFiles/mba.dir/all] Error 2
> make: *** [all] Error 2
> --------------------------------------------------------------------------------------------------------------
>
> CMakeLists.txt (3):
>
> set(mba_SRC allocator.c
> bitset.c
> cfg.c
> csv.c
> daemon.c
> dbug.c
> diff.c
> eval.c
> hashmap.c
> hexdump.c
> linkedlist.c
> misc.c
> msgno.c
> path.c
> pool.c
> shellout.c
> stack.c
> suba.c
> svcond.c
> svsem.c
> text.c
> time.c
> varray.c)
>
> include_directories(${SERVER_SOURCE_DIR}/libmba)
>
> add_library(mba STATIC ${mba_SRC})
> --------------------------------------------------------------------------------------------------------------
>
> Any help would be greatly appreciated.
>
> Kind Regards
>
> ------------------------------------------------------------------------
>
> _______________________________________________
> CMake mailing list
> CMake at cmake.org
> http://www.cmake.org/mailman/listinfo/cmake
More information about the CMake
mailing list