force building of ccmake for CMake 3.12.1 + fix deps#6967
force building of ccmake for CMake 3.12.1 + fix deps#6967boegel merged 4 commits intoeasybuilders:developfrom
Conversation
|
Why would you need this? ccmake gets built by without this. |
|
+1 on @akesandgren's remark, can you clarify why you added this @smoors? |
|
@akesandgren @boegel |
|
That then suggests that we need to make a better job of telling it where ncurses is. |
|
@akesandgren with |
|
@smoors Can we explicitly specify the location where I agree with @akesandgren that it's pretty strange this hasn't popped up before, I guess that's why he was asking (not because he dislikes adding the option) |
|
If that's what it's doing then I don't have any objections as such. But as @boegel says, we should take a look at how it detects curses so we can make sure it picks up the EB one even on systems which happen to have ncurses system-installed. I know that it's often done in a way that doesn't work the way we'd like it to. (Not talking just about curses here but Findxxx functions in general) |
|
@akesandgren @boegel the updated patch specifies the path to the curses libs. |
|
Curses is indeed installed but not curses-dev. Found Curses: /hpc2n/eb/software/Compiler/GCCcore/7.3.0/ncurses/6.1/lib/libncurses.so And more to the point, ccmake is linked against libncurses.so.6 and our system installed one is libncurses.so.5 So I think there is something else going on here. |
| configopts = '-- -DCMAKE_USE_OPENSSL=1 -DCMAKE_PREFIX_PATH=$EBROOTNCURSES' | ||
| configopts = '-- -DCMAKE_USE_OPENSSL=1' | ||
| configopts += ' -DCURSES_CURSES_LIBRARY=$EBROOTNCURSES/lib/libcurses.%s' % SHLIB_EXT | ||
| configopts += ' -DCURSES_NCURSES_LIBRARY=$EBROOTNCURSES/lib/libncurses.%s' % SHLIB_EXT |
There was a problem hiding this comment.
@smoors We need to specify both? Also, shouldn't we leave the CMAKE_PREFIX_PATH in place?
Maybe I'm too overly careful here, but I just want to avoid introducing regressions.
Also, it's still not clear to me why it didn't work for you without the -DCURSES_*, it would be good to know...
|
@boegel it is not clear to me either, but this cmake thing is not so easy for me to understand and I don't have too much time to spend on it. I was actually hoping to get some help from experts like you guys.. |
|
@smoors No risk of that. Oh, now i see what you mean. Sorry about that, bad formatting of my answer. I keep forgetting that some things are considered "formatting" characters... |
|
@smoors Could you please pick out the actual error you're getting from the build, not just the stdout message that if doesn't find curses but the config.log text that says exactly why it fails to find it. |
|
@akesandgren That would be |
|
No, CMake bootstraps with configure if i read my build log correctly |
|
Oh, right, I got things mixed up here... Sorry. |
|
@akesandgren that's a relief! I am way too sensitive for these things 😃 there are several other errors, not sure if they are related, see here: |
|
I'm busy in a deep learning course (my first) so i'll try to look at stuff somewhat later. |
|
i sent the log via slack. |
|
The building of CMake is done in two steps, first using configure/make to create an initial cmake binary, then using that binary to run cmake on itself. The problem is that the second step doesn't pick up on lib(n)curses and libflow correctly using the current CMake easyconfig files. What we have to do is to use this configopt setting: (Tell CMake about all it searches for that is in our ncurses so it doesn't pick any of that up from the system.) There is no need for the -DCMAKE_PREFIX_PATH=$EBROOTNCURSES which can be dropped. And since CMake also uses bzip2, zlib, curl we could add the following, but if not it will build those internally so there is probably no risk of them getting picked up from any system installed versions. |
|
@smoors Are you up for making these changes to the most recent |
|
And of course for that later part we need in the dependency section |
|
@boegel yes, though I am not sure if we should do this for older CMake versions as well, since we did not have problems with them, and I don't want to introduce regressions to them. what do you think? |
|
ah you probably meant only |
|
@smoors I'm fine with not doing it for older |
|
|
||
| dependencies = [ | ||
| ('ncurses', '6.0'), | ||
| ('ncurses', '6.1'), |
There was a problem hiding this comment.
@smoors Please stick to ncurses 6.0 here, bumping the version is going to lead to headaches..
|
Test report by @boegel |
|
Test report by @boegel |
|
Test report by @boegel |
|
Going in, thanks @smoors! |
(created using
eb --new-pr)