3 ms·
I don't understand why you mention CMake. CMake is not a build system, it does not replace make, or vsproj, or even pkgconfig. It's a _meta_ build system - th
by Galanwe 4y ago
I don't understand why you mention CMake.
CMake is not a build system, it does not replace make, or vsproj, or even pkgconfig.
It's a _meta_ build system - that is it generates makefiles/vsproj/etc.
CMake does not _find_ libraries magically. You can have CMake modules to use pkgconfig, or custom search scenarios, or whatever else you want, to find libraries and flags.
Really it's two different things working at different levels, one does not replace the other.
- gabereiser 4y agoThis is correct. CMake is a configuration tool, not a build system. It generates make/xcodeproj/vcsln/or the like. It's meant as a replacement for autoconf or the ./configure scripts previously used to auto-configure Makefiles.
- mathstuf 4y agoFWIW, I consider CMake a "build system" in that it defines a set of semantics to describe a build. It uses "build tools" to implement these semantics. FD: CMake developer
- mananaysiempre 4y agoCMake-generated Makefiles call CMake at build time—unlike autotools where m4 and Perl are not required once you’ve built the distribution tarball. If you really really want, with autoconf alone you can even write the config.h by hand, the template contains lists all the defines that should go there. (With automake added to the mix, you probably can’t.)
- mort96 4y agoCMake has an independent module resolution system with Find*.cmake files. It's not great, and not a lot of libraries support it, but if you're on a Linux system you may find those Find*.cmake files in /usr/lib/cmake.
- nickelpro 4y agoI'm referring to the dedicated PackageNameConfig.cmake files that you'll find pretty much everywhere these days, not the old FindPackage.cmake modules.
- synergy20 4y agoCmake actually 'fixes' weakness in pkg-config for me, e.g. converting -I to -isystem, big deal for me at least.