https://internalpointers.com/post/modern-cmake-beginner-introduction
nice!
FYI, requiring version 3.14 or higher excludes Debian stable (buster) with version 3.13.4 from the build.
@Daniel Rossberg I know - unfortunately, that's the version where install(CODE) learned to support generator expressions.
I can try to work around it, but it'll be a bit awkward. Do we have someone maintaining packages on Debian Stable?
I also got a report yesterday that our build fails on latest stable CentOS because of CMake 3.14 (I think they're on 2.8...)
The lowest I can go is 3.12
Perhaps it's time to bootstrap CMake
I think the newer CMakes are warning about 2.8 series becoming unsupported, actually...
I wouldn't expect us to go back that far, I think that was 4 years ago. If the distros aren't keeping up, we probably should for users.
3.12 I think we can do, and that should cover most bases - in the past I'd used Debian Stable as the "conservative" benchmark.
Shows how old school I am, I guess - CentOS seems to have taken the crown now for "has the oldest stuff..."
well, I think that was a stable line
there probably was a different line for "up to date"
I don't know centos that well
Basically Redhat Enterprise without the branding, IIRC...
but for this user (former dev, phil dykstra), it was a show stopper
he resorted to compiling in a vm running debian
Centos is also the one that's crazy conservative with installed GCC versions - they're why we have to test for some working C++11 features, IIRC.
he's working on testing an AWS cluster using RT in Docker containers
Ah - they're providing CentOS images?
I don't know for certain, but upgrade options may be constrained by other criteria. or he maybe just values stable and doesn't want to fuss with anything until everyone else has :)
2.8 CMake is getting beyond "stable" into "obsolete" these days.
he ran into the transparent window bug too once he got it all working, so hoping he just pulled the wrong source release
O.o
OK, I think I've gotten the work-around in place for 3.12 - multiconfig will be the real test, but just passed in a basic install
hopefully not some issue with an X app running from a linux container displaying on another X host not running that linux
@Sean In case it's helpful: https://stackoverflow.com/questions/48831131/cmake-on-linux-centos-7-how-to-force-the-system-to-use-cmake3
yep, that's helpful. thanks.
@starseeker he's getting the transparency error on 7.32.0 source release and on STABLE checkout ... :(
grr...
with the rt window?
Oh, blast it. The hack we're doing for matching the CMAKE_INSTALL_PREFIX to our build config doesn't scale properly to multiconfig.
yes, with the rt window (actually a png-fb window)
he also got "archer tclcad init failure"
:(
Can he try trunk? The latter may be fixed there.
Might also be informative to see if the glfw demo apps have the transparency problem
Thanks, it works again. The point is that all of my Linux machines run with Debian stable, and not being able to compile BRL-CAD there would be suboptimal.
@Daniel Rossberg it's good to know we have an active use case for Debian stable. 3.12 should work for now - hopefully by the time we need to go newer than that Debian stable will also be updated. I see the newer Debians are on 3.18, so presumably that'll become the next stable eventually.
The first freeze for Debian 11 (bullseye) is planned for mid January. I.e., the release will likely be mid of the year.
/me nods. No rush - just want to be sure that when we (eventually) can bump the minimum version the logic gets cleaned up. Been doing some of that as I go through the 3rd party logic refactor, clearing out older workaround we no longer needed.
@Daniel Rossberg Was wondering, what is a good "minimally required" version of CMake for you these days?
My debian bullseye has version 3.18.4. I.e., it should not be higher than this one.
cmake already fails for me with 3.17, works with 3.24. check_linker_flag seems to be unknown misc/tools/env2c/CMakeLists.txt:62 .
<nod> - good call @Erik, introduced in 3.18: https://cmake.org/cmake/help/latest/module/CheckLinkerFlag.html
@Sean what do you think, bump minimum version or rework?
My inclination is to go to 3.18.4 per Daniel's debian bullseye...
Mm good question @starseeker that was just 2 years ago but I think it’s probably fine unless you know a problematic platform. Homebrew and Debian appear to have 3.23 and 3.24. Looks like FreeBSD 11 is 3.20+. Looks safe to bump to me.
@Erik is moving to 3.18 a problem on your platform?
Fedora 35 is cmake 3.22
nope, my machine with the oldest system cmake is 3.18
Redhat might be an issue...
Assuming they've moved off of 2.8.x anyway...
rhel86 is 3.20
OK, I think that's a winner then. There are some conditionalized bits of CMake logic waiting on a minimum version bump, so that'll let us clean those up too.
That's a good excuse to procrastinate the next dive into multiple-view object management - phew!
woo hoo! just barely, but that was enough to get us the cmake_language(EVAL) feature
Welp, I'm convinced... I still don't know much about CMake: https://izzys.casa/2023/06/everything-you-never-wanted-to-know-about-cmake-redux/
@Sean Thought you might find this interesting if you're not already aware: https://devblogs.microsoft.com/cppblog/cmake-debugger-allows-you-to-debug-your-cmake-scripts-and-more/
I haven't played with it, but I did see that when it came out.
Last updated: Jan 09 2025 at 00:46 UTC