[CMake] Single library with both shared and static binaries

Avraham Shukron avraham.shukron at gmail.com
Tue Sep 24 16:41:54 EDT 2019


Hi!

I have a library which I want to distribute in both shared object and
static library forms.
Is there a modern way to do it without creating two completely
separate library targets?
Since I want to be a good CMake citizen I use `target_*` and
`set_target_properties` as much as possible, and creating two different
libraries will force me to duplicate that information about each one of
them.

I also tries not specifying STATIC/SHARED, and then running cmake twice -
once with BUILD_SHARED_LIBS=ON and once OFF and then installing to the same
directory. I got my both .a and .so libraries installed, but I couldn't get
the Config file correctly for this arrangement.

So - what is the community-recommended pattern to do this?

Thanks,
Avi.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://cmake.org/pipermail/cmake/attachments/20190924/40f9f294/attachment.html>


More information about the CMake mailing list