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
Include google test using CMake integration #58
Comments
I consider bundling code more of a problem than a solution for a number of reasons. Since uriparser is hardly used in isolation, I don't see strong need for bundling for convenience so far. Am I missing a certain scenario? |
I am not addvocating bundling the code. The recommendation is to use If tip tracking is your objection, you can set the link to be Also, looking at the discussion you have linked, the clause below is true for
However, if you are taking the discussion's argument, then |
I am happy to contribute these changes if you would accept a patch. What do you think? |
Hi! Interesting! Comparing an in-git bundle to an external SHA1 my impression is that both of them would go stale and need updating so that these seem like to flavours of the same thing to me. The Inside the CI, using a pinned version of gtest seems best to me to not put build stability at risk. So if we went this route, I guess we'd need pinned for CI and Before you start building patches, can you elaborate on what we are trying to improve on? If uriparser is not in a vacuum with you, what's around it and why would uriparser building gtest help your case? Is gtest the only other dependency you need to build? What if two libraries both reference-include gtest and you build two copies in the end? |
Before you start building patches, can you elaborate on what we are trying to improve on?
|
Hi Jörn, I'm still thinking about this whole thing. By now It has come to my attention that gtest is not a "classic" runtime — but a test/buildtime — dependency and hence produces less of a bundling problem than "true" runtime dependencies. Hardcoding a SHA1 of gtest 1.8.1 might actually be fine, as a consequence. Linux distros have recent gtest packaged — see Debian and Gentoo — and I'd consider using the distro package during compilation the "right" way for users of those distributions. There should at least be a way to build against those packages, maybe even by default, in my world. What do you think? Is this about specific platforms more than others? |
Hi Sebastian,
Sorry for writing back this way, cannot be bothered to fiddle with 2FA on
the bus. Generally, I agree with your point of view, but if you are using
distro-based input, there should also be distro-based output. This means
writing a docker ci loop and producing a package that is then provided say,
via a ppa. Otherwise, you cannot be sure which version the distro actually
provides, abd more importantly, if you link to underlying layers, you
cannot be sure that your dependencies at runtime are available. You take in
packages from a repo, you produce packages for a repo. In your case,
probably a Ubuntu PPA.
In this case, there should be a find package file for each distro that
picks up what is required.
It can be based on this:
https://gitlab.kitware.com/cmake/community/wikis/doc/tutorials/How-To-Find-Libraries#user-content-piggybacking-on-pkg-config
Your first case is the more elegant but harder one. The more common case is
to source-build everything and use CMake as the vehicle. This is what
ExternalProject does. It downloads the source of the version you require
(and that softwarre, in turn might get its own dependent sources) and
compiles and links with on-board tools. In /theory/ portable C++ can be
written and every project can be ported this way. In practice, this can be
more messy. However, if you do not want to control your build environment
via docker and CI and do not want to provide output as packages, this is
your ticket.
As for windows, the approach that windows installer takes is that every
package brings or downloads its own wad of DLLs. If they present, fine,
otherwise they are installed at install time. There is a central registry,
so you can look up.
Cheers,
JG
…On Tue, 26 Mar 2019 at 02:27 Sebastian Pipping ***@***.***> wrote:
Hi Jörn, I'm still thinking about this whole thing.
By now It has come to my attention that gtest is not a "classic" runtime —
but a test/buildtime — dependency and hence produces less of a bundling
problem than "true" runtime dependencies. Hardcoding a SHA1 of gtest 1.8.1
might actually be fine, as a consequence.
Linux distros have recent gtest packaged — see Debian
<https://packages.debian.org/buster/libgtest-dev> and Gentoo
<https://packages.gentoo.org/packages/dev-cpp/gtest> — and I'd consider
using the distro package during compilation the "right" way for users of
those distributions. There should at least be a way to build against those
packages, maybe even by default, in my world.
I'm unsure how standard use of a package manager for development has
become on Windows.
I'm in for making things easier on Windows if things remain "sane" for
Linux.
What do you think? Is this about specific platforms more than others?
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
<#58 (comment)>,
or mute the thread
<https://github.com/notifications/unsubscribe-auth/AAvxkQPtVIdjlZ3jIEf5G9qdv3iwERWsks5vaPj8gaJpZM4b4uwA>
.
|
Hi Jörn, I'm having trouble following your assessment. Let's start fresh based on szenarios so that we're on the same page, okay? For use of uriparser, I can think of these szenarios:
What effect is to be expected by use of
Your szenario at Oracle is (a) I suppose — is that correct? If we get a switch to bypass PS: Regarding find modules / discovery of uriparser:
Looking forward to your reply! Best, Sebastian |
Looks like this ticket is no longer relevant. Happy to re-open anytime. Closing. |
Yes, thanks Sebastian. I had to use a different library as I could not work
around this. :(
…On Mon, 13 May 2019 at 05:31, Sebastian Pipping ***@***.***> wrote:
Looks like this ticket is no longer relevant. Happy to re-open anytime.
Closing.
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
<#58 (comment)>,
or mute the thread
<https://github.com/notifications/unsubscribe-auth/AAF7DEN32K3ZVJ47525DNG3PVBWCVANCNFSM4G7C5QAA>
.
--
730 Hawkesbury Road
Anstead, QLD 4070
Australia
email: jgsuess@gmail.com
|
Currently, google test is acquired using the travis build environment. This means that the source
component cannot be transparently incorporated into other source builds. The gtest team recommends the following integration method, which removes this issue:
Incorporating Gtest Into An Existing CMake Project.
Would it be possible to use this mechanism in
uriparser
?The text was updated successfully, but these errors were encountered: