[CMake] Dependencies with static libraries
Stephan Menzel
stephan.menzel at gmail.com
Thu Jun 28 10:07:33 EDT 2018
Hello CMake community,
I am observing a strange problem regarding dependencies to static libs in
executables. I am not entirely sure but it seems this started since I
upgraded to the 3.11 line. I am using Windows and MSVC14.
Basically, my code base contains a number of static libraries that are
linked together to a few executables. Very basic and down to earth. Like
this:
set(MY_SERVER_SRC
ServerSource1.cpp
ServerSource2.cpp
)
set(MY_SERVER_HDR
ServerConfig.hpp
Header1.hpp
Header2.hpp
)
add_library(my_server STATIC ${MY_SERVER_SRC} ${MY_SERVER_HDR})
target_link_libraries(my_server
some_tools
some_base
${Boost_LIBRARIES}
${OPENSSL_LIBRARIES}
)
add_executable(serverd main.cpp)
target_link_libraries(serverd
my_server
some_tools
some_base
${Boost_LIBRARIES}
${OPENSSL_LIBRARIES}
)
So a few big libs with the beef in them and then a small main.cpp
containing executable. Nothing fancy.
What gives me trouble now is that dependencies within that seem broken. In
above example, when I edit ServerSource1.cpp and then hit "Build", I see
ServerSource1.o being compiled and the library my_server being linked. Like
expected. Problem is, serverd does not get linked. Or at least I see no
hint of it being linked (In MSVC's output window).
So, my question is: What could cause this? I there anything 3.11.x does
differently which causes those dependecies to break? And how can I fix this?
This is quickly turning into a major problem for us here as it means that
we cannot reliably build anymore because whenever we change something and
hit build we can't be sure we get a linked executable anymore unless we do
a complete rebuild, which takes a long time (In fact, I wrote this message
waiting for one).
Thanks for any hint!
Stephan
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://cmake.org/pipermail/cmake/attachments/20180628/ac2ebaa2/attachment.html>
More information about the CMake
mailing list