Skip to content

Commit

Permalink
cmake: require C++11 for both release and devel.
Browse files Browse the repository at this point in the history
  • Loading branch information
michaelld committed Oct 18, 2017
1 parent f4c08a2 commit c8d94a9
Showing 1 changed file with 5 additions and 4 deletions.
9 changes: 5 additions & 4 deletions devel/cmake/Portfile
Expand Up @@ -4,6 +4,11 @@ PortSystem 1.0
PortGroup muniversal 1.0
PortGroup compiler_blacklist_versions 1.0

# require C++11 as of 2017-08-21
# release 3.9.3 was 2017-09-20
# https://gitlab.kitware.com/cmake/cmake/commit/c1f3eb9f2d628b2911aa17f65012fab0befc4b87
PortGroup cxx11 1.1

name cmake

categories devel
Expand Down Expand Up @@ -83,10 +88,6 @@ if {${subport} eq ${name}} {
patch-CMakeFindFrameworks.cmake.devel.diff \
patch-Source_CMakeVersionCompute.cmake.devel.diff

# require C++11 as of 2017-08-21
# https://gitlab.kitware.com/cmake/cmake/commit/c1f3eb9f2d628b2911aa17f65012fab0befc4b87
PortGroup cxx11 1.1

livecheck.type regex
livecheck.regex /cmake/cmake/commit/(\[0-9a-g\]+)
livecheck.version ${commit}
Expand Down

3 comments on commit c8d94a9

@kencu
Copy link
Contributor

@kencu kencu commented on c8d94a9 Oct 18, 2017

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

we might have a bootstrap issue here, as cmake is required to build the c++11 compiler clang-4.0 on these older systems...

@michaelld
Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

hmmm ... yeah that would be an issue, a chicken and egg problem, as it were.

did you test further to see if this really causes a bootstrap issue?

easiest solution would be to provide a "cmake39" port that supplies 3.9.0 (or cmake38 using the final 3.8 release), which does not require C++11 to build. doing this should not be particularly difficult.

@kencu
Copy link
Contributor

@kencu kencu commented on c8d94a9 Oct 19, 2017

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I didn't test it, but I think your cmake38 or cmake39 idea (last one that builds with gcc42, really) will likely be required to be held over.

Alternatively, we could force cmake to build through gcc6 (which uses autotools still, and probably forever will) but that's another whole kettle o' fish.

Last option is to build cmake with clang-3.7, which I believe is the last clang that we have that builds with autotools. It handles c++11 too.

Please sign in to comment.