We actually are upgrading to the latest and greatest CMake just so we can get easyer library integration.ĬMake has better functionality that becomes available with newer versions. ![]() Now we're limited in OS because of some vendor drivers, but that doesn't limit us in something as trivial as CMake. Right now I'm working on an embedded Linux project where we're (slowly) upgrading all the tooling to be as close to the latest release we can get. It does? It seems to me you can freely upgrade to any CMake 3.X.X version without repercussions, all the way untill CMake 4.X.X gets released. The very system used to make the code portable and make sure it can find the correct versions of other things itself becomes something that has incompatible versions to mange, then don't upgrade to version ABC, but at least upgrade to version XYZ. ![]() Your argument against an easy upgrade now to version XYZ today is that an optional upgrade to a non-existant version ABC in the future is that it "could be difficult"?. The latest released Linux CMake version is 3.21.1, which is easily installable for Ubuntu 18.04 based distros and backwards compatible with all CMake 3.X.X versions.īut what about the day when you want to build something where a newer CMake is not easily installable, like potentially some obscure embedded system or for retrocomputing? (I would even suggest starting there) The you would indeed not have the latest and greatest buildfeatures CMake can offer. You can pick the subset of programs directly available between all your target system and then be done with it, sure. I think the conclusion is that you can't have your cake and eat it too. I personally never had a problem with CMake portability on Linux or Windows, but that's just the CMake advocate in me. One thing I can say is that Makefiles are pretty much the exact opposite of portable, because they require some really weird installs on Windows. I have no experience with autoconfig other than a specific project I had to port to Windows, which was a pain. Portable code acknowledges the different environments and handles them gracefully. ![]() Portable code doesn't live in an isolated environment.
0 Comments
Leave a Reply. |
AuthorWrite something about yourself. No need to be fancy, just an overview. ArchivesCategories |