Live data from Hacker News

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

github.com

151–160 of 190 posts

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

#151
post #82

a developer post a well rounded tool with documentation that was built with a lot of care. The comment thread is mostly about other tools or people dismissing the work done because another available offer is more popular or common. When did "Show HN" threads became shark tank? Can people at least check and post about the tool itself instead of discussing CMake vs Ninja vs Meson?

>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.

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

#152
post #112

Earlier quoted context omitted.

> if they'd just add a makefile (and maybe ./configure) That's the whole point of cmake. Instead of running autotool's ./configure (which in fact is a whole dance involving autoconf, autoreconf, automake, and whatnot) just run cmake . to get yourself a fancy makefile.

> just run cmake . to get yourself a fancy makefile. Well most instructions I've seen start of with "mkdir build && cd build && cmake ../src", which is a bit more complicated than just "make" with a default build dir. I'm not sure why they're all like this, I would have though supplying a default build directory is something cmake could handle. My last and only big project with cmake we ended up with a makefile anywa…

I use Make to automate the initial CMake setup step - though by "Make" I probably mean something more like "glorified shell script", as the Makefile in question consists entirely of phony targets. It detects the OS with the usual bunch of ifs, and by default does one of 3 things:

- Windows - generates a VC++ project

- OS X - generates an Xcode project

- Unix (other) - generates Ninja files for Debug/RelWithDebInfo

(Typically there's also the option to generate Ninja files on OS X if you like - good for automated build and/or if you'd just rather use some other editor (which is not unreasonable).)

Once it finishes, on Windows you load "build/vs2017/whatever.sln" into VC++; on OS X you load "build/xcode/whatever.xcodeproj" into Xcode; on Unix (other) you change to "build/Debug" or "build/Release" and run "ninja". And off you go. After that, it all just kind of runs itself.

The Makefile consists of basically stuff like this:

    .PHONY:unix
    unix:
            rm -Rf build/Debug
            mkdir -p build/Debug
            cd build/Debug && cmake -G "Ninja" -DCMAKE_BUILD_TYPE=Debug ../..
            rm -Rf build/Release
            mkdir -p build/Release
            cd build/Debug && cmake -G "Ninja" -DCMAKE_BUILD_TYPE=RelWithDebInfo ../..
plus some ifs to ensure the right target(s) are available depending on host OS.

(I've found it beneficial to regenerate everything entirely from scratch each time in the Makefile - ensures you're always working from a clean slate, with no cached variables sticking around from old runs. The odd package does have an unusually time-consuming configuration process, but I've always ended up managing to bypass these somehow - it's possible a future revision of my "process" will have to actually address this properly.)

This process does confuse people that don't read the instructions, as they type "make", some stuff happens, and then nothing. But I've found it to work well enough.

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

#154

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.

Dead meaning what, stable? I still use Dropbox on a daily basis and Paper is now my go-to for note-taking.

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

#155

Earlier quoted context omitted.

no, they won't "generate native makefiles" (I prefer Ninja myself) - this is what used to build software

Leveraging compositional abstraction doesn't change what you use the thing for. I use cmake (well I don't often, but when I do) to build my projects. How it accomplishes that is if little concern.

> I use cmake (well I don't often, but when I do) to build my projects.

no, you don't

remove from your system make (ninja, msbuild, ...) and see how cmake builds your project

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

#156

Earlier quoted context omitted.

Why migrate from CMake to meson?

Nobody who has used CMake would ask that so I assume you haven't! The answer is that CMake is mad and full of gotchas. Think of it like the PHP of build systems. Here is a classic example: https://cmake.org/cmake/help/latest/command/if.html#variable...

This is actually a useful comment and points out something I didn't know (about how the CMake if statement resolves variables).

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

#158

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.

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 to sell their 'get public URL' wrappers as the replacement for the functionality, but that only covered a tiny aspect (and OneDrive, Google Drive, etc already offered that stuff) - sharing photos - and even that was slower due to them wrapping the files in some sort of viewer instead of giving the raw file data like the public folder did, while using some sort of hash ID to identify the file instead of the actual filename (this was another convenience lost since with the public folder i could guess the URL to share without copy/pasting).

I never found anything as convenient as Dropbox's public folder while the rest of their offering wasn't anything i cared much about and even then by that time both Google and Microsoft's offers were better (and with Microsoft's available right out of the box in Windows).

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

#159
post #24

Earlier quoted context omitted.

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

> 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 calculator or quick and dirty scripts because i do not want to write any code that may break in 2-3 years without me doing anything wrong.

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

#160

Earlier quoted context omitted.

Leveraging compositional abstraction doesn't change what you use the thing for. I use cmake (well I don't often, but when I do) to build my projects. How it accomplishes that is if little concern.

> I use cmake (well I don't often, but when I do) to build my projects. no, you don't remove from your system make (ninja, msbuild, ...) and see how cmake builds your project

>see how cmake builds your project

Yes exactly when you remove a piece of the build system the build system stops working.

When I use bazel I need python installed or it doesn't work. That doesn't mean my build system is python. It means my build system takes advantage of python. Same for cmake and make.

Post reply on HN