Nick Ogden wrote:
Hi there,

I see you found the right list ;-).

(And I will admit I was lazy and didn't read it before on kde-devel, which is why I'm just now answering your actual question.)

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?
[snip]
include_directories(${SERVER_SOURCE_DIR}/libmba)
add_library(mba STATIC ${mba_SRC})

Hmm... offhand it seems like that should work. You might try running 'make VERBOSE=1' to see what is being passed to the linker, and also check that ${SERVER_SOURCE_DIR} is defined as you expect it to be (either add a message(STATUS), or check CMakeCache.txt in your build directory). My WAG would be that ${SERVER_SOURCE_DIR} is empty.

If that doesn't help, posting a reduced test case that shows the same problem would be useful.

--
Matthew
Please do not quote my e-mail address unobfuscated in message bodies.
--
Anyone who is capable of getting themselves made President should on no account be allowed to do the job. -- The Hitchhiker's Guide to the Galaxy (Douglas Adams)

_______________________________________________
CMake mailing list
CMake@cmake.org
http://www.cmake.org/mailman/listinfo/cmake

Reply via email to