[CMake] Config.cmake.in: Conditionally serve static or shared library
ThePhD
jm3689 at columbia.edu
Wed Feb 14 11:34:26 EST 2018
I think you can use what's called an "Alias Library":
https://cmake.org/cmake/help/latest/command/add_library.html#alias-libraries
if (BUILD_SHARED_LIBS)
add_library(my_libprimesieve ALIAS libprimesieve)
else
add_library(my_libprimesieve ALIAS libprimesieve-static)
endif(BUILD_SHARED_LIBS)
Then, set it properly to Primesieve::Primesieve and it should work.
On Wed, Feb 14, 2018 at 10:21 AM, Kim Walisch <kim.walisch at gmail.com> wrote:
> Hi,
>
> My primesieve project builds as both a static and a shared library, hence
> there are 2 targets in my main CMakeLists.txt:
>
> 1) libprimesieve (shared library)
> 2) libprimesieve-static
>
> I am now trying to add support for find_package(Primesieve). Ideally I
> would like that users can link against libprimesieve as follows:
>
> find_package(Primesieve REQUIRED)
> target_link_libraries(user_library Primesieve::Primesieve)
>
> And I want Primesieve::Primesieve to be an alias for
> Primesieve::libprimesieve if BUILD_SHARED_LIBS=ON (in the user's
> CMakeLists.txt) and and alias for Primesieve::libprimesieve-static if
> BUILD_SHARED_LIBS=OFF (or if it is not set).
>
> Is this possible?
> Do you know any library that has already implemented this?
>
> Thanks,
> Kim
>
> --
>
> Powered by www.kitware.com
>
> Please keep messages on-topic and check the CMake FAQ at:
> http://www.cmake.org/Wiki/CMake_FAQ
>
> Kitware offers various services to support the CMake community. For more
> information on each offering, please visit:
>
> CMake Support: http://cmake.org/cmake/help/support.html
> CMake Consulting: http://cmake.org/cmake/help/consulting.html
> CMake Training Courses: http://cmake.org/cmake/help/training.html
>
> Visit other Kitware open-source projects at http://www.kitware.com/
> opensource/opensource.html
>
> Follow this link to subscribe/unsubscribe:
> https://cmake.org/mailman/listinfo/cmake
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://cmake.org/pipermail/cmake/attachments/20180214/b009ba9a/attachment-0001.html>
More information about the CMake
mailing list