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