-
Notifications
You must be signed in to change notification settings - Fork 146
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Declare single library in CMake #134
base: master
Are you sure you want to change the base?
Conversation
This replaces 2 libraries declared in CMake: docopt (SHARED) and docopt_s (STATIC) with single one docopt which can be built as static or shared depending on -DBUILD_SHARED_LIBS=ON/OFF.
So why did this get stuck? |
Just FYI, various distros (at least Fedora and Arch) have policies which prevent installing static libraries. This is a problem because the resulting RPMs contain just the shared library, but the installed CMake target files attempt to reference the
The easiest workaround is to give up on CMake files and just use pkg-config, of course. |
The upstream project provides a CMake file which attempts to import both static and shared libraries. This is a problem on any reasonable distribution because Nobody Ships Static Libraries Anymore (for reasonable reasons). So we have distros shipping CMake files from upstream which are broken because distros actively remove the static library from their packaging. This was not caught by the CI because I cannot type `Depends-on` properly, and therefore Zuul would feed oldish prebuilt dependencies which still included the custom-built docopt library in both static and shared versions. We need a linter for commit footers :p. Fixes: Ib246d39f975c00bc6489f683f1f21f34cc808201 Fixes: 4e473f1 CI: use system docopt-cpp Bug: docopt/docopt.cpp#134 Change-Id: Ief13813210199d8d58b82659e522a941033f6302
The upstream project provides a CMake file which attempts to import both static and shared libraries. This is a problem on any reasonable distribution because Nobody Ships Static Libraries Anymore (for reasonable reasons). So we have distros shipping CMake files from upstream which are broken because distros actively remove the static library from their packaging. This was not caught by the CI because I cannot type `Depends-on` properly, and therefore Zuul would feed oldish prebuilt dependencies which still included the custom-built docopt library in both static and shared versions. We need a linter for commit footers :p. Fixes: Ib246d39f975c00bc6489f683f1f21f34cc808201 Fixes: 88db08a CI: use system docopt-cpp Bug: docopt/docopt.cpp#134 Change-Id: Ief13813210199d8d58b82659e522a941033f6302
The upstream project provides a CMake file which attempts to import both static and shared libraries. This is a problem on any reasonable distribution because Nobody Ships Static Libraries Anymore (for reasonable reasons). So we have distros shipping CMake files from upstream which are broken because distros actively remove the static library from their packaging. This was not caught by the CI because `Depends-on` was not typed properly , and therefore Zuul would feed oldish prebuilt dependencies which still included the custom-built docopt library in both static and shared versions. We need a linter for commit footers :p. Fixes: Ib246d39f975c00bc6489f683f1f21f34cc808201 Fixes: c64c42a CI: use system docopt-cpp Bug: docopt/docopt.cpp#134 Change-Id: Ia50595b36cfe233fd67a5153ff804d77a0c77b94
Fixes #104
This replaces 2 libraries declared in CMake: docopt (SHARED) and
docopt_s (STATIC) with single one docopt which can be built as static or
shared depending on -DBUILD_SHARED_LIBS=ON/OFF.