6 ms·
Cross language but not cross platform -- no windows support, and none planned.
by CJefferson 9y ago
Cross language but not cross platform -- no windows support, and none planned.
- shoover 9y agowaf continues to be the underappreciated gem in this space: high level build language supporting many languages and tools, cross platform, implemented and extensible in Python, nothing to install (except Python), and fast.
- slavik81 9y agoIt is quite fast and Python is a nice language for specifying the build, but I found waf to be difficult to extend. I had some tests that needed a binary file. That binary file was generated from a text file by a utility program. That utility program had to be built from source. After a week of trying to get that correctly specified, I gave up. I thought I'd found the right way of doing it several times, but each time I discovered the dependency chain was broken in some way. I looked into how official modules that dealt with generated files were implemented, but I found them to be surprisingly complex. By comparison, it was only mildly annoying to do that sort of thing in CMake (the build system I moved to after a year or two with waf). The relative simplicity of CMake was what convinced me to switch. That being said, it's been several years since I last used waf. It may have improved during that time.
- shoover 9y agoI have found the learning curve to be very steep. Extension points are several, subtle, and powerful, leveraging heavily not only normal OOP but also python meta programming. It is not out of the question go beyond all that and monkey patch some core class; I’ve seen this recommended by maintainers in some circumstances. The docs are up front that waf is not a build system but a build system toolkit. For example, there is a demo that uses makefiles as the build language and runs them in waf. Another demo requires no build file but just finds the source files and builds them. But I have yet to see any external project released that says, “This is a build system... built on the waf build system toolkit,” like the Software Construction Toolkit was built on scons. Perhaps the toolkit is so close to being a build system that people just use it as is and require only small customizations, which are kept in their projects.
- gilrain 9y agoThanks for letting me know not to bother!
- Rewqtr133 9y agoSo, it's like a worthless version of Bazel?
- Roboprog 9y agoMS Windows: That’s why we can’t have nice things. Solution: don’t invite the village idiot of OS’s to the party :-) Windows is why we can’t just use “Make”, and ended up with abominations like “Ant” :-(
- a_t48 9y agoHi, please consider reading https://news.ycombinator.com/newsguidelines.html https://news.ycombinator.com/newsguidelines.html for the future (snark and flamewar baiting is discouraged here).
- qznc 9y agoNoted. https://github.com/qznc/annoying-build-systems#please https://github.com/qznc/annoying-build-systems#please
- arunc 9y agoNo love for D's DUB on your list?
- orblivion 9y agoBased on its lack of entry, am I to understand that Nix is the way to go?
- chme 9y agoThere are some other distro specific build systems missing. So I wouldn't think much of it. But here would be my point for 'Nix': QA doesn't tested for Cross-compiling so it doesn't work while it should be supported in principle.
- aidenn0 9y agoTup: No external dependencies redo: build rules spread across many files
- chme 9y agoI like this list! But the "Yocto" entry should be fixed. The build system is called bitbake not "Yocto". There are other projects that use the bitbake build system, not just OpenEmbedded and the Yocto Project.
- nukeop 9y agoNo Windows support is more of a feature than a downside.
- vadimberman 9y agoWow. How is a system not supporting the most widespread desktop platform on the planet claiming to be cross-platform? Having said that, there might be a way. From their FAQ: > It might well be possible to make it work using Cygwin or MinGW / MSYS, or the recent Ubuntu on Windows development though. We aren't doing this work ourselves because we don't have any Windows machines, but we're happy to accept PRs in that direction. Not sure I want to use a platform which the dev team can't test (and there are other alternatives), but it might work after all. A side remark, the link posted below in this thread contains an awesome "awesome" list. For those interested, here is a (truly) awesome list of dataset resources: https://github.com/awesomedata/awesome-public-datasets https://github.com/awesomedata/awesome-public-datasets.
- nickpsecurity 9y agoCross-platform just means more than one platform. Nothing more. There's segments of developer market that don't need Windows support. Those targeting Linux/BSD, Mac desktops + Linux-based backends (i.e. cloud), multiple UNIXen (eg Linux + Solaris), embedded developed on Linux boxes, etc. I encourage Windows versions of cross-platform apps wherever the app could justify it due to all the developers and tooling on Windows. Yet, non-Windows apps can be cross-platform.
- moocowtruck 9y agothey could be cross platform, but thats not really what people think.. when someone says cross platform i definitely expect windows support
- deleted 9y ago[deleted]
- devposter 9y agoIf someone says cross platform and it supports Linux, Mac, and BSDs, that is good enough for me. I have not done any development work on Windows in my entire life just like I have not done any development work on my Android phone. Just offering a counterviewpoint.
- amelius 9y agoHow about support for multiple target architectures?