Live data from Hacker News

Show HN: Xmake, a modern C/C++ build utility

github.com

161–170 of 190 posts

Re: Show HN: Xmake, a modern C/C++ build utility

#161

Earlier quoted context omitted.

Cmake has tooling and is supported by IDEs. Does Meson have anything comparable?

A better question is does it need to have tooling or IDE support to be worked with? It's good to have tooling and IDEs for CMake because CMake is complicated and hand-editing the files is very tedious. But if Meson eliminates the tedium of CMake by providing you with different abstractions then you don't actually need the IDEs or tooling.

This is not what IDE support means for the most part. The big question is does the IDE understand how the files are compiled well enough for its autocompletion and jump-to-definition features to work. A build system/IDE combo which does not support this is DOA to most users. Sadly, there is no standardisation of the interface between IDEs, build systems, and compilers (though the language server spec from Microsoft is making some headway in this regard), so each of these integrations needs to be rebuilt each time, making development of new build systems extra painful.

Re: Show HN: Xmake, a modern C/C++ build utility

#162
post #124

Earlier quoted context omitted.

CMake is doing more than generating a build file, it's also a configuration tool (detecting compiler, finding dependencies, etc).

The dependences do not change upon distribution, so they can be safely encoded on the makefile. As for "detecting" the compiler, either it is in the path, or in the CC variable (or analogous), in which case the makefile can work; I do not honestly understand what is the task of cmake here. The only use that I can see is creating projects for other build-systems, e.g. for windows. But if you only distribute your code…

The dependencies do change depending on the user. Different version of libraries will be in different locations, may require different build flags, etc, etc. Likewise the build may support a range of compilers which require (sometimes completely) different compiler options for a successful build. This is the reason autotools existed in the first place (and it was only intended to even out the differences between 'POSIX' systems in the first place).

In general though, if you're just talking about small projects, I have found the easiest way to incorporate smaller librares into a build system is to just ignore whatever build system they are using and re-write the build in the larger build system (even if they are the same tool!). This is mostly because the current state of build systems is so terrible.

Re: Show HN: Xmake, a modern C/C++ build utility

#163
post #158

Earlier quoted context omitted.

Does anybody actually use Dropbox anymore? Feel like it’s a dead product.

I used to, until they blocked the public folder. The sync between my computers was nice, but for me the big feature was copy/pasting (or directly creating) an image or static html page(s) with images (or flash files, at some point) in the public folder, right clicking in Explorer/Finder (depending on the OS i used at the time), copying the URL and pasting it on IRC/IM/Reddit/whatever when discussing stuff. They tried…

I agree with the public folder issue. In my experience they still sync much better than OneDrive and Google Drive though. For me the syncing is a lot faster and has less issues.

They are also the only ones I know that have a Linux application.

That being said I don't pay for their premium service because it seems to expensive compared to OneDrive and Google Drive.

Re: Show HN: Xmake, a modern C/C++ build utility

#164
post #145
post #73

Earlier quoted context omitted.

> just create a virtual environment Yaw super lightweight ...

I think GP means `python3 -mvenv my_venv` rather than running in a VM or any heavyweight virtual environment. At least that's how I interpret 'virtual environment' in a pythonic context, and they're certainly lightweight enough.

What I took GGP to be talking about though was lightweight in terms of cognitive load. Like "can I just run the thing please!" aka yak shaving [0]

[0] https://seths.blog/2005/03/dont_shave_that/

Re: Show HN: Xmake, a modern C/C++ build utility

#166

Earlier quoted context omitted.

A better question is does it need to have tooling or IDE support to be worked with? It's good to have tooling and IDEs for CMake because CMake is complicated and hand-editing the files is very tedious. But if Meson eliminates the tedium of CMake by providing you with different abstractions then you don't actually need the IDEs or tooling.

> A better question is does it need to have tooling or IDE support to be worked with? No, that's the wrong question and one that's only purpose is to deflect attention from its shortcomings. All build tools need tooling because if they are adequately integrated into development workflows they are transparent and easy to use. Cmake meets that requirement, and until other alternative build systems do then they will alw…

In my mind CMake and Meson are tools for engineers to use in solving problems. If one tool needs some support tooling in order to be usable, then I'm intrinsically less interested in using it simply because there's some extra stuff I have to bolt on before it becomes useful. So I don't see why you think it's "the wrong question" here.

Another poster has explained the IDE support is about IDEs being able to parse CMake files, and I can say that back in the day before CMake IDEs would parse the C/C++ directly using a compiler to output an abstract syntax tree that they would use. So for example Eclipse has this notion of "Build configurations" which allows you to control how this parsing occurs and which files the parser considers valid and what symbols are predefined. Which is IDE support very much like you're looking for from CMake. I worked with it for several years at my last job to provide support for other engineers working with a Make-based build system.

Re: Show HN: Xmake, a modern C/C++ build utility

#167
post #24

Earlier quoted context omitted.

Python is preinstalled on any major Linux distro. Ninja is tiny, so those don't seem that heavyweight.

Python also has version compatibility issues, such as: python2.x, 3.x. Also need the user to install the specified version of python

Pretty much everything has moved to Python 3 now.

Re: Show HN: Xmake, a modern C/C++ build utility

#168
post #159

Earlier quoted context omitted.

> Python also has version compatibility issues, such as: python2.x, 3.x. If that really bothers you then just create a virtual environment and locally deploy whatever version you want to run. That issue ceased to be a concern years ago.

I am also annoyed by Python 2 vs Python 3 situation, however not because of the current incompatibility but about the potential Python 3 vs Python 4 incompatibility that the Python developers have shown to not care about introducing in the future. If they promise to never break backward compatibility again in the future i might change my stance though, i mostly try to avoid Python than anything than a simple calculat…

The switchover to Python3 has taken 10 years (as originally predicted).

Guido said there would never be a Python 4, though he has handed over the reigns so who knows.

As a Python dev, I wouldn't mind a Python 4 if it fixed some of the older / crustier corners of the API.

Re: Show HN: Xmake, a modern C/C++ build utility

#169

Earlier quoted context omitted.

Oh, the number of hours of my life I spent debugging CMake files of third party libraries. You are very fortunate if you import libraries that just work. This is also true for "modern" CMake.

Bad code is an unfortunate fact of life. How does that go away. This could be either easier debugging, some enforcement of clean code (how is that possible), the tool is limited so you can't do complex things, or just so far only good coders have been involved not the masses of bad coders. My default assumption is the last, but I'm willing to be proven wrong.

Good defaults can take you very far.

Re: Show HN: Xmake, a modern C/C++ build utility

#170

Earlier quoted context omitted.

>When did "Show HN" threads became shark tank? From the 2007 announcement of Dropbox: https://news.ycombinator.com/item?id=8863 """ 1. For a Linux user, you can already build such a system yourself quite trivially by getting an FTP account, mounting it locally with curlftpfs, and then using SVN or CVS on the mounted filesystem. From Windows or Mac, this FTP account could be accessed through built-in software. """

Does anybody actually use Dropbox anymore? Feel like it’s a dead product.

It's not dead, but the hype is long gone. Since my free gigabytes promotion ended, I never felt the need to use it. Dropbox still periodically spams me with upgrade offers, which I just ignore.
Post reply on HN