-
-
Notifications
You must be signed in to change notification settings - Fork 4.6k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
CMake Set temporarily the policy CMP0074 to OLD #2454
CMake Set temporarily the policy CMP0074 to OLD #2454
Conversation
I will test this PR asap 😄. I'm not sure that if(POLICY CMP0074)
# TODO:
# 1. Find*.cmake modules need to be individually verified.
# 2. PCLConfig.cmake needs to be changed.
cmake_policy(SET CMP0074 OLD)
endif() in the main |
For version comparison we have a variable called If I understand correctly, ultimately we might only need to rename
That's ok by me.
It will explicitly suppress warnings and it will be a policy which we will know that we need to revisit once we're done with the next release. There should be no harm for the time being. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
If that's the case, then ok 😄 I'm trying this PR right now. If you also want my feedback just wait few hours (or less). |
Works just fine in my setup 👍 |
Gonna merge this and update the change log for the release. Edit: Thanks @svenevs and @claudiofantacci |
There is some issue with this PR. Line 475 in f9cbe14
it causes cmake_policy(POP) beeing skipped - resoulting in this error when building cloudcompare:
|
@svenevs @claudiofantacci why did we decide to use push/pop? The last relevant thought on this topic was from Claudio here:
The reason why I am asking is that these stack manipulations keep on bringing problems. Apart from above referenced #2625 (which we fixed in 1.9.1), there is a new bug report here. To be honest, I don't understand what's wrong there and have no idea how to fix it besides from getting rid of push/pop altogether. What do you think about this possibility? Note that in the meantime we are setting policy 74 to NEW, so ever less reasons to push/pop, right? |
Because for that release we needed to set the policy to the old behavior (all of the However, if you remove the policy stuff the warnings are easy enough to ignore and it really makes no difference to me whether its kept or not. In reality all it means is that something users are supposed to have control over do not have that control. If you think it's buggy then just remove it. The implication: anybody using a cmake aware of CMP0074 but using an older policy stack (e.g., using cmake 3.13 and a minimum required version of 3.3) will always get a warning with Note that CMP0011 and CMP0074 are related, and in my humble opinion PCL should have zero desire to support CMP0011 being set to Sorry for being unresponsive lately, things are going really poorly for me right now and it's not going to get better for the rest of the year :/ What I was hoping to do was just obliterate this file and do a proper config module in addition to exporting the PCL cmake targets. Maybe it would be helpful for me to outline what I wanted to do in a "future cmake issue"? I can outline the steps that I think should be taken and try and give counsel, but I'm worried about "being in charge of the issue" because I don't have time to implement any of it. For example, do we really need the PCL All in One Installer? What's it's use case and is it even still being maintained? Is that the pre-built binary stuff for osx and for windows? Those are both pretty ancient, and these days if you want to enable pre-built binaries you should probably just get on |
Yeah, this I understood. But I thought that
This should be over in a fortnight 😄
👍
AFAIK @UnaNancyOwen uses it to generate prebuilt binaries. The page you referenced is not updated, but we have binaries uploaded to Github releases. |
@SergioRAgostinho sorry for disappearing on this.
Ref: #2425
FWIW the warnings about
CMP0048
andCMP0054
are subtly different. CMake is saying "hey I told you this would happen, but theOLD
version is legit going away". For 0048 the main hiccup is what you want done with thedev
part of the version number,project(PCL VERSION major.minor.patch.tweak)
but they must all be integers. Having the"dev"
is nice for strings but not for version comparison.Anyway, I think freezing CMake stuff at this point is probably a good idea, and make
1.9.1
prioritize upgrading the cmake stuff. Having all of the policies fixed is nice, but at the end of the day we can probably fix the build system up before anythingOLD
truly gets deleted from CMake.Other people should test the
find_package(PCL)
stuff besides me. It went fine on my end, but it's important other people test it...For reference, the changes to
PCLConfig.cmake
are really just