CMake configuration error since 76f472aca2

Hi, guys!

I’m getting the following error when running cmake in a clean build directory:

CMake Error at CMakeLists.txt:209 (list):
  list GET given empty list

This happens since commit 76f472aca2. I was bypassing the problem by just reverting that commit in my local copy of the repo. However, the latest changes in the file changed by that commit created conflicts with my revert, so better to know what’s happening and solve it instead of just ignoring it.

The error happens even when no options are passed to cmake; I also tested it with the make and Ninja build systems, but the error persists.

Any idea?

Thank you!

Hi,
what architecture/operating system/cmake version/compiler version are you on?

I think @teemperor or @amadio might help.

After PR #777 is merged, we will print an warning instead of letting CMake fail, so this should get your builds running again.

However, there is an underlying problem that causes this error that should be fixed (otherwise you’ll run into obscure problems later on).

Can you test the commit from the PR and pastebin the whole CMake output? This way we can fix the actual problem that is causing the warning. Thanks!

@eguiraud: I’m on Arch Linux, CMake version 3.8.2, compiler version 7.1.1.

@teemperor, the PR does solve the error and now outputs a warning. The output of cmake is here: https://pastebin.com/LicdEhpD

Do you need anything else to help you with the error?

Thank you!

Ok, so it seems like you already hit another warning on the way. So the problem is that we can’t find the c++ header files with the help of your compiler. I’m not sure your your g++ or ccache is configured, but could you try to run without ccache first? Maybe it’s returning the wrong output when we try to invoce ccache -v. Could you try without ccache?

I still have those two warnings: https://pastebin.com/tCkF25Rg

Ok, seems like CMake fails to parse the libstdc++ path that gcc is returning (this is why you get this warning).

Can you rerun cmake but add " --trace-expand" as an argument? E.g. cmake <your normal args> --trace-expand ../path/to/root and pastebin the output of this. It’s a lot of output as it prints every executed CMake statement, so you might want to add a 2>log.txt at the end to save the debug output to this log file instead.

Done!

Standard output: https://pastebin.com/6AEQt0JB
Debug output (+30MB): https://filebin.ca/3Tm9V4LY3nB4

Btw, in case this helps you: I’m using no custom options with cmake in these tests, just cmake --trace-expand ../root-source

Thank you!

I see, it’s a locale problem. Please run LANG=C cmake ../root-source instead and it should work. I made a JIRA issue for this: ROOT-8917. It’s also fixed in PR #780, if you want, you can test this and confirm if it fixes your problem.

EDIT: Fixed in master now.

2 Likes

I just tested the PR and it seems to work fine: the configuration step completed successfully, and I’m now building with Ninja and ccache with no errors so far.

Thank you again :slight_smile:

1 Like

This topic was automatically closed 14 days after the last reply. New replies are no longer allowed.