This conversion of foreign build systems (just so you can use them as dependencies) is again same strategy as Meson:
https://wrapdb.mesonbuild.com/
There is bound to be some duplication of effort here.
Announcement
Collapse
No announcement yet.
Build2 v0.13 Released As C/C++ Build Toolchain Inspired By Rust's Cargo
Collapse
X
-
Originally posted by discordian View PostYou mean if every project uses the same build-system? And if we find some kinks in build2 that could be done better we covert everything to build2++.
Originally posted by discordian View PostThose typically don't convert the build-system as that's rather high maintenance to keep in sync.
- 2 likes
Leave a comment:
-
Originally posted by boris-kolpackov View PostBut can you actually use them without jumping through hoops? For example, is it possible to build the OpenSSL package from source on Windows out of the box? While there are short-term advantages of the Conan approach (which is to use whatever build system each packages comes with), there is also the long-term disadvantage of building a shiny castle on a shaky foundation. You can't blame some of us for wanting (and working towards) a different future.
For Windows/Mac I'd guess that you rather prefer binaries anyway, Linux does not have ABI compatibility throughout distros hence those funny issues.
Originally posted by boris-kolpackov View PostThis only works to an extent, right? If you find yourself spending more and more time dealing with random packaging issues and less on actually writing your application (which I see quite a few reports of, when it comes to Conan), then the whole thing falls apart.
The reality is that there are projects with tons of packages and alot of effort make everything work (conan, buildroot, yocto). Those typically don't convert the build-system as that's rather high maintenance to keep in sync.
Leave a comment:
-
Originally posted by pal666 View Postyou could ask why meson reinvented cmake
ok, now it's clear that you don't know: meson is meta build system for generating build system files, build2 is complete build system
Leave a comment:
-
Originally posted by discordian View PostOr just don't fetch this package with conan if you do a local build. If its not a local build you will have to trick your way around anyway, sou you just could do that once and upload the binaries to your local repo - then you can just transparently use your binary.Last edited by kpedersen; 23 July 2020, 09:23 AM.
Leave a comment:
-
Originally posted by kpedersen View Post
160k? Is that even enough for just Debian x86 and Debian amd64? What about Debian aarch or even an older release of Debian x86? 160k seems a little low if they are ever going to hope to avoid falling back to source compilation.
Originally posted by kpedersen View PostThe bit in bold is the part where I believe there is a weakness. As mentioned, most (if not all) platforms require patches to make source build. Unlike languages that just wrap C and don't need to worry about any real cross platform complexities, this is far more difficult with C based languages that need to do real work.
I.e pretend we have a dependence on Qt5. Conan or build2 will result in the following error:
Linker error: Undefined reference to procstat_open_sysctl
Linker error: Undefined reference to kvm_open
Because it is at the very least missing the patches from here:
https://svnweb.freebsd.org/ports/hea...t5-core/files/
In particular this part of the patch:
Code:--- src/corelib/io/io.pri.orig 2018-02-08 18:24:48 UTC +++ src/corelib/io/io.pri @@ -178,6 +178,9 @@ win32 { SOURCES += \ io/qstandardpaths_unix.cpp \ io/qstorageinfo_unix.cpp + freebsd { + LIBS += -lkvm -lprocstat + } }
Or just don't fetch this package with conan if you do a local build. If its not a local build you will have to trick your way around anyway, sou you just could do that once and upload the binaries to your local repo - then you can just transparently use your binary.
Leave a comment:
-
Originally posted by discordian View PostIt's a matter of whats available, vs starting fom scratch, if you dont use conan you need to do something else (everything manually?).
All the packages you mentioned are available, shows of a healthy community effort.
Originally posted by discordian View PostFind issues? report or fix them [...]
- 1 like
Leave a comment:
-
Originally posted by pal666 View Posti.e. you would replace package manager with your hands? what's next? you don't need toolchain because you could type binaries in hex editor?
If the package manager doesn't work and all I have left are my hands... then yes, I would. What would you do? Sit there and wait for someone else to do it for you?
Likewise if the toolchain is defective and all I had was a hex editor, hell yeah. I have deadlines to reach
But certainly the point is to discuss potential issues (and maybe come up with a solution) *before* the toolchain reaches a defective state.Last edited by kpedersen; 23 July 2020, 08:11 AM.
- 2 likes
Leave a comment:
-
Originally posted by boris-kolpackov View Post
Could you elaborate on this? Specifically, what annoying parts of Cargo do you believe were carried over to build2? I am genuinely curious because we tried hard not to repeat some of the major (IMO, of course) mistakes of Cargo, such as lumping the build system and the package/project manager into a single tool or only supporting build by convention without a general build system (which leads to "build scrips" in the form of build.rs). Thanks in advance!
- 3 likes
Leave a comment:
-
Originally posted by discordian View PostWell, https://conan.io/center/ has 160k binary packages, and with conan there is also a source-package. Means either it can fetch the compiled library, or it can fetch its source and dependencies and build the lib locally. Then it also allows you to use local caches and local servers. So if your product has a battle-tested version with special-sauce compiler flags, it can use that prepared binary always, on multiple computers and multiple projects.
The bit in bold is the part where I believe there is a weakness. As mentioned, most (if not all) platforms require patches to make source build. Unlike languages that just wrap C and don't need to worry about any real cross platform complexities, this is far more difficult with C based languages that need to do real work.
I.e pretend we have a dependence on Qt5. Conan or build2 will result in the following error:
Linker error: Undefined reference to procstat_open_sysctl
Linker error: Undefined reference to kvm_open
Because it is at the very least missing the patches from here:
https://svnweb.freebsd.org/ports/hea...t5-core/files/
In particular this part of the patch:
Code:--- src/corelib/io/io.pri.orig 2018-02-08 18:24:48 UTC +++ src/corelib/io/io.pri @@ -178,6 +178,9 @@ win32 { SOURCES += \ io/qstandardpaths_unix.cpp \ io/qstorageinfo_unix.cpp + freebsd { + LIBS += -lkvm -lprocstat + } }
Last edited by kpedersen; 23 July 2020, 08:05 AM.
- 1 like
Leave a comment:
Leave a comment: