Hello,

I am just starting to get familiar with CMake. We are currently using 
Boost.Build,
so I am of course used to the behaviour of Boost.Build. One of the things I am 
now
trying to do with CMake is to set library usage requirements. For example, with
Boost.Build I can specify the include/ directory as a usage requirement of a 
library.
So when I then have this library as a dependency of another library I don't 
have to
specify the include directory. With CMake I am seeing myself writing 
include_directories
in a lot of places. Here's my attempt (parts copied from my CMakeLists):

project(UMC3D)

# here's a library of my own that I want to use
# in order to use this library from another library
# you must add the directory GFL/include to your include_directories
add_library(GFL SHARED
 ${DataIO_src}
)

# so here's a library which uses GFL
add_library(Device SHARED
 ${Device_src}
)
include_directories(
 ${UMC3D_SOURCE_DIR}/GFL
)
target_link_libraries(Device
 GFL
)

# and here's an executable that also uses GFL
add_executable(GFL.Test
 ${Test_src}
)
include_directories(
 ${UMC3D_SOURCE_DIR}/GFL
)
target_link_libraries(GFL.Test
 GFL
)


The way I see it is that this is not scalable. If I need to change GFL, for 
example
move the headers to another directory, I would then need to update both Device 
and GFL.Test.
This is not necessary with out-of-the-box Boost.Build where GFL can specify 
usage requirements.
Is there a similar solution with CMake? Hopefully I am being clear, please let 
me know otherwise.
Any help is much appreciated!

Thanks in advance.

Regards,

Daniel Lidström
Stockholm, Sweden 
_______________________________________________
Powered by www.kitware.com

Visit other Kitware open-source projects at 
http://www.kitware.com/opensource/opensource.html

Please keep messages on-topic and check the CMake FAQ at: 
http://www.cmake.org/Wiki/CMake_FAQ

Follow this link to subscribe/unsubscribe:
http://www.cmake.org/mailman/listinfo/cmake

Reply via email to