Support CMake's BUILD_SHARED_LIBS flag - #80
Open
orlitzky wants to merge 1 commit into
Open
Conversation
Currently both shared and static libraries are built via duplicate calls to add_library, set_target_properties, target_link_libraries, etc. Typically only one of these is desired, and CMake provides a variable to control it: https://cmake.org/cmake/help/latest/variable/BUILD_SHARED_LIBS.html This commit removes the explicit static libraries, and then removes the explicit "SHARED" from the remaining add_library(). The end result is that one type of library is installed, and it is controlled by the BUILD_SHARED_LIBS flag. Gentoo-bug: https://bugs.gentoo.org/982096
Collaborator
|
Please investigate and correct the build failures so this can be considered or withdraw it back to draft status until you can do so. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Currently both shared and static libraries are built via duplicate calls to
add_library(),set_target_properties(),target_link_libraries(), etc. Typically only one of these is desired, and CMake provides a BUILD_SHARED_LIBS variable to control it.We noticed this on Gentoo where
BUILD_SHARED_LIBS=ONis passed by default, but static libraries were still installed.This commit removes the explicit static libraries, and then removes the explicit "SHARED" from the remaining
add_library(). The end result is that one type of library is installed, and it is controlled by theBUILD_SHARED_LIBSflag.To build static libraries rather than shared ones, you would now use
cmake -DBUILD_SHARED_LIBS=OFF .... A little more annoying if you want static libs, but it is the standard way of doing it.