5 ms·
I hope that this 1.0 status will prompt the Qt people to take a closer look at Bazel, but that's probably strongly conditioned on the quality of Windows support
by ihnorton 7y ago
I hope that this 1.0 status will prompt the Qt people to take a closer look at Bazel, but that's probably strongly conditioned on the quality of Windows support. Qt Co. have indicated that CMake is the most likely replacement for qmake in Qt 6, which would be a lateral change at best.
Is anyone using Bazel to ship cross-platform GUI applications?
- dgellow 7y agoIsn’t Bazel jre based? I don’t think that something like Qt will ever go for a build tool that requires the whole java runtime as a dependency. (Also, cmake has become the de facto solution for open source libraries, not sure why they would select something else)
- ahartmetz 7y agoQt is moving to CMake for Qt6, they are already working on it. Qt6 release is planned in a year or so.
- dgellow 7y agoI’m aware, that’s why I mentioned it.
- jchw 7y agoCMake may have a longer history of being used by open source, but Meson has been growing in popularity for some important projects. I definitely prefer Meson to CMake. Bazel is also a great build system, but yeah, the JRE dependency will obviously make it less desirable for some users. Still, I hope people consider it anyways, because its focus on correctness is pretty great.
- berti 7y agoLast time I checked meson still doesn't have great Qt support e.g. it can't track rcc dependencies [0]. Funnily enough that issue is about rcc not making dependencies available to the build system, but I believe it actually started doing so somewhere down the track. I did a little work on it a couple of years back but regrettably never followed up [1]. [0] https://github.com/mesonbuild/meson/blob/27c01dff01832fa9d0c92602d0dc25b6ded9d2e9/mesonbuild/modules/qt5.py#L26 https://github.com/mesonbuild/meson/blob/27c01dff01832fa9d0c... [1] https://github.com/mesonbuild/meson/issues/97#issuecomment-329113396 https://github.com/mesonbuild/meson/issues/97#issuecomment-3...
- pjmlp 7y agoUnless Meson gets to support all the toolchains and OS supported by CMake, and the existing plugins eco system it is non starter. Meson will most likely be kept as the GTK, GNOME build system.
- jchw 7y agoNon-sense. It only needs to support the toolchains and OSes people actually want, by no stretch of the imagination does it have to support all of the same stuff CMake does. It is not a non-starter for many. It is the build system of lots of projects already, not just GNOME but also freedesktop stuff too, libinput is one.
- henryaj 7y agoPlease[0] is a Bazel-like build system written in Go. [0] http://please.build/ http://please.build/
- andrewbinstock 7y agoBut, unlike Bazel, it doesn't run on Windows, which is a big limitation in enterprises.
- Quekid5 7y agoThat, and it doesn't actually support the multitude of weird things that Bazel does.
- weberc2 7y ago> Also, cmake has become the de facto solution for open source libraries, not sure why they would select something else It is definitely not the de facto solution for open source. After using CMake as a C++ developer, I will never use CMake again. I simply don't have time to write a program in a slow, stringly-typed, ad hoc DSL just to build my actual program.
- renox 7y agoAt work, we use cmake; i've never seen a technology with so little 'traction'; I know one guy who is good with cmake all the other (including me) avoid touching this thing as much as possible! Sigh, I remember debugging a complex makefile generation issue (it took me 3 days, two guys before me failed) and it didn't make me hate the make tool, I just wished it had better tracing/debugging but cmake that's a different story..
- jcelerier 7y ago> It is definitely not the de facto solution for open source. After using CMake as a C++ developer, I will never use CMake again. most projects are using CMake nowadays : https://www.jetbrains.com/research/devecosystem-2018/cpp/ https://www.jetbrains.com/research/devecosystem-2018/cpp/
- weberc2 7y agoMost _C++_ projects are using CMake, but it has virtually no adoption among other mainstream languages, and given most open source is not C++, CMake definitely doesn't have any strong share of the open source market.
- dgellow 7y agoMy comment was about Qt, which is a C++ project. Of course CMake doesn’t have any market share outside of C++, but in the C++ world it has become the main build tool for open source projects. Even Microsoft is now spending their time supporting CMake via both Visual Studio and vcpkg.
- deleted 7y ago
- aiuto 7y agoBeing written in Java is essentially a non-issue. Bazel ships as a binary that self-extracts a JRE for its own use. You don't have to install Java unless you want to build Java apps. The real issue for highly reusable products like Qt is portability of the build tool. CMake works on the long tail of OSes, some of which do not have any usable JRE available. That limits the ability to use Bazel as the only build tool. For Bazel to be useful to projects like Qt (and other horizontal libraries like openssl, ICU, curl, ...) one would need a system for generating CMakefiles from BUILD files. The developers of those apps could use Bazel to improve build and test scaling, and then generate CMake (or other build tool) files as part of their packaging and distribution. I don't propose that this is an easy thing to do - all rules would need translation into other languages - just that it is a path which may benefit some projects.
- adev_ 7y ago> I hope that this 1.0 status will prompt the Qt people to take a closer look at Bazel By the sake of God no. The last thing I need to compile Qt is a gigantic framework requiring the JVM. Plus the fact Bazel has so many side effect that that even quantum physics experiments looks more reproducible: Just try to compile tensorflow and enjoy the fun. Stick to CMake, thanks.
- weberc2 7y agoI get not wanting a JVM (although all else equal I’ll take the JVM dependency any day over CMake), but how is CMake _more_ reproducible than Bazel? The latter builds in a clean room, Make does not.
- adev_ 7y ago> how is CMake _more_ reproducible than Bazel? Because CMake contrary to Bazel do not break its retro-compatibility in its options and config every two minor versions ? > The latter builds in a clean room, Make does not. Sandboxing should be the concern of the package manager / deployment pipeline, Not the build system concern. That just makes things redundant and painful to debug.
- weberc2 7y ago> Because CMake contrary to Bazel do not break its retro-compatibility in its options and config every two minor versions ? Lol that’s only recently true. CMake was infamous for breaking compatibility. Anyway, Bazel was pre-1.0 until just now, so of course expect some instability. > Sandboxing should be the concern of the package manager / deployment pipeline, Not the build system concern. That just makes things redundant and painful to debug. It makes things specifically very easy to debug. Not everyone enjoys troubleshooting issues on their machine due to their local environment.