← Back to team overview

kicad-developers team mailing list archive

Re: Fix CMakeLists.txt

 

Hi Orson,

thank you for taking the time to review and merge my patches!

Thank you for the patches, I have just merged them. I have slightly
modified the last patch - I realize that you used the correct convention
for calling execute_process(), but IIRC it did not work with msys2.
Therefore I simply added the suggested ${wxWidgets_CONFIG_OPTIONS} to
the command line and preserved "sh -c".

Unfortunately, your modified version of my third patch does not work for me. The reason is that wxWidgets_CONFIG_OPTIONS is of type LIST (not STRING).

This is the command I use to configure KiCad:
cmake \
    -DKICAD_SCRIPTING_WXPYTHON=OFF \
    -DKICAD_SPICE=OFF \
    -DCMAKE_BUILD_TYPE=Release \
    -DwxWidgets_CONFIG_EXECUTABLE=/usr/bin/wx-config \
    -DwxWidgets_CONFIG_OPTIONS=--toolkit=gtk2 \
    .

With this, the expression:
sh -c "${wxWidgets_CONFIG_EXECUTABLE} ${wxWidgets_CONFIG_OPTIONS} --query-toolkit"

evaluates to:
sh -c "/usr/bin/wx-config --toolkit=gtk2;--static=no --query-toolkit"

and the semicolon (which separates the elements of the list) terminates the command line. Consequently, both --static=no and --query-toolkit are dropped. Instead, you get an error message like "sh: --static=no: command not found." and the build script incorrectly assumes that GTK2 is used, even if we added --toolkit=gtk3 before.

I don't have an msys2 build environment, but maybe someone who has can try to check if your memory serves you right and the "correct convention" does not work. We might then have to find an alternative solution. But I am not a CMake guru, so any help is appreciated.

Best regards,
Marcus


Follow ups

References