4 ms·
What's the alternative? That's how make, cmake, msbuild, ninja,docker, and basically every other build tool I'm aware of works
by maccard 6y ago
What's the alternative? That's how make, cmake, msbuild, ninja,docker, and basically every other build tool I'm aware of works
- haolez 6y agoMake doesn't work like that.
- orthecreedence 6y agoWait, make has a global state? I was under the impression most make targets are stored somewhere in the project itself (like a build/ directory). I think this is a fine approach, BTW. I think global state should be avoided unless necessary.
- haolez 6y agoMake does what you tell it to do. While some projects have the setup that you've described, many others do not. Make will only check the timestamps of the generated assets and decide to build (or not) based on that.
- nyanpasu64 6y agoCMake does that and is a truly demented implementation, mixing user-specified initial state (supplied the first time you run CMake and carried on to future argument-less invocations), derived state, and cached compiler locations and versions in a single CMakeCache.txt file. Edit CMakeLists.txt? Time to delete CMakeCache.txt! Upgrade your compiler? Time to delete CMakeCache.txt! I haven't used Meson all that much, but I recall it's a bit better than CMake but I still ran into a similar issue at one point.
- nikisweeting 6y agoDocker doesn't do that. You can create a .env file, but it only reads the options you give it, Docker never writes/caches to that file.
- Aeolun 6y agoYou take the arguments every time? Or you read them from a configuration file. But you do not automatically add them to the configuration file unless the user explicitly tells you to do so.