kicad-developers team mailing list archive
-
kicad-developers team
-
Mailing list archive
-
Message #16738
cmake errors wxWidgets
I'll try again to find someone who understands the ins and out of cmake
enough to steer me to some solution that make sense. Below you will see
what happens on Fedora always with kicad cmake and wxWidgets.
Notice that I am telling cmake exactly how to run my wx-config
script. In fact, I have that path on my path.
wx-config --libs
-L/home/jfm/wx-302/lib -pthread -lwx_gtk2u_xrc-3.0 -lwx_gtk2u_html-3.0
-lwx_gtk2u_qa-3.0 -lwx_gtk2u_adv-3.0 -lwx_gtk2u_core-3.0
-lwx_baseu_xml-3.0 -lwx_baseu_net-3.0 -lwx_baseu-3.0
I suppose it is too hard for cmake to simply use the results of
wx-config --libs, not convert it to some semi-colon list that won't
work on Linux in any case. But cmake doesn't do that, instead it
insists on using the system wxWidgets version, even if it doesn't
exist. I did indeed remove the system wxWidgets and all the programs
that use it. Did that change anything. Yes, it changed the error
message because blank was compared to wxWidgets 3.0.0 and found wanting.
So, 1) having wx-config on my PATH has no effect on the result; it fails.
2) removing the system wxWidgets (and all the programs that depend on
it) has no effect on the result; it fails the same way.
3) The the cmake log file doesn't contain any information about
wxWidgets at all.
I have hacked the cmake files to make this work on Fedora 19, and
Fedora20, and succeeded but it is nothing I would document for any
others using Fedora.
The problem is that stuff it finds is more or less correct but it isn't
in the right cmake variable for it to use it.
That is, the cmake code that executes simply does the wrong thing on
Linux, at least Fedora Linux.
Now, I can hack this into working again, but that would be pushing this
issue under the carpet again. What needs to happen is that when the
cmake flag -DwxWidgets_CONFIG_EXECUTABLE is encountered it uses the
result of wx-config --libs directly and skips the system check
completely, unless of course these libs really are the wrong version of
wxWidgets , which in my case is not the case.
Here is example of the error in all its glory.
cmake -DKICAD_SCRIPTING=ON -DKICAD_SCRIPTING_MODULES=ON
-DUSE_FP_LIB_TABLE=HARD_CODED_ON -DBUILD_GITHUB_PLUGIN=ON
-DPYTHON_DEST=/home/jfm/sitepkgs -DCMAKE_INSTALL_PREFIX=/home/jfm/kicad
-DwxWidgets_CONFIG_EXECUTABLE=/home/jfm/wx-302/bin/wx-config
CMake Error at CMakeModules/FindPackageHandleStandardArgs.cmake:131
(include):
include could not find load file:
Call Stack (most recent call first):
CMakeModules/FindwxWidgets.cmake:928 (include)
CMakeLists.txt:444 (find_package)
CMake Error at CMakeModules/FindPackageHandleStandardArgs.cmake:136
(message):
Could NOT find wxWidgets: Found unsuitable version "2.8.12", but required
is at least "3.0.0" (found
-L/home/jfm/wx-302/lib;-pthread;;;-lwx_gtk2u_gl-3.0;-lwx_gtk2u_aui-3.0;-lwx_gtk2u_adv-3.0;-lwx_gtk2u_html-3.0;-lwx_gtk2u_core-3.0;-lwx_baseu_net-3.0;-lwx_baseu-3.0;-lwx_baseu_xml-3.0;-lwx_gtk2u_stc-3.0)
Call Stack (most recent call first):
CMakeModules/FindPackageHandleStandardArgs.cmake:341
(_FPHSA_FAILURE_MESSAGE)
CMakeModules/FindwxWidgets.cmake:930 (find_package_handle_standard_args)
CMakeLists.txt:444 (find_package)
-- Configuring incomplete, errors occurred!
One more question for those who know. I seem to recall that when
building wxWidgets it is important to use additional flags so that gal
will be happy. I don't remember the libs involved but I seem to recall
that there were two libs needed.
Follow ups