[CMake] wxWidgets on Win32 (MSW)

Bill Hoffman bill.hoffman at kitware.com
Sun May 25 09:14:24 EDT 2008


Miguel A. Figueroa-Villanueva wrote:
> On Sat, May 24, 2008 at 10:52 AM, Bill Hoffman wrote:
>> Bill Hoffman wrote:
>>> Mathieu Malaterre wrote:
>>>> Hum... I tried again today and I cannot reproduce it. So to properly
>>>> find wxWidgets on my machine I need to get rid of all entries in the
>>>>  PATH_SUFFIXES section.
>>>>
>>>> I would love to get rid it of that nasty bug before the next release
>>>> of cmake, so could the maintainer of wxWidgets stand up and tell me
>>>> what he/she was trying to do with:
>>>>
Something else is going on for you Mathieu, it works for me, see below.

>>> This is not a problem for the wxWidgets maintainer.  It is a bug in CMake.
>>>  I will try to track it down.  PATH_SUFFIXES should not break things.
>> Sorry, spoke too soon.  There is a bug, but also the  C:/ D:/ stuff is
>> pretty bogus.
> 
> Bill, What do you mean by bogus? I guess the D:/ might seem pretty
> bogus, but why C:/ too?
> 
> The D:/ stuff is there for legacy reasons... I just picked it up from
> the FindwxWindows.cmake file. Since they were looking in D:/ by
> default, I decided to search there as well for backward compatibility
> of some sort.
> 
> The C:/ is there for legacy reasons as well, but also because IIRC the
> default installation directory for wxWidgets is: C:/wxWidgets-X.X.X.
> If this is the case, then I believe that there is more than legacy to
> this issue.
> 
It just does not seem that stable as people could have it on any drive. 
  However, it should not really hurt, and I don't think this is causing 
the trouble the Mathieu is reporting.


I finally tested this on my machine, and it works fine!

I installed wxWidgets 2.8.7 with the windows installer from the 
wxWidgets download.  Then I built it and ran
project(foo)
cmake_minimum_required(VERSION 2.6)
FIND_PACKAGE(wxWidgets)


It found it just fine, and with the c:, as you can see:
(The  PATH_SUFFIXES  had not negative effect...)

WX_advd:FILEPATH=C:/wxWidgets-2.8.7/lib/vc_lib/wxmsw28d_adv.lib
....
//Set wxWidgets configuration (mswd)
wxWidgets_CONFIGURATION:STRING=mswd
wxWidgets_LIB_DIR:PATH=C:/wxWidgets-2.8.7/lib/vc_lib
//wxWidgets base/installation directory?
wxWidgets_ROOT_DIR:PATH=C:/wxWidgets-2.8.7
wxWidgets_wxrc_EXECUTABLE:FILEPATH=wxWidgets_wxrc_EXECUTABLE-NOTFOUND
//Details about finding wxWidgets
FIND_PACKAGE_MESSAGE_DETAILS_wxWidgets:INTERNAL=[TRUE]
//wxWidgets_LIB_DIR
WX_LIB_DIR:INTERNAL=C:/wxWidgets-2.8.7/lib/vc_lib
//wxWidgets_ROOT_DIR
WX_ROOT_DIR:INTERNAL=C:/wxWidgets-2.8.7

Mathieu what is in your PATH?   The find stuff does search the PATH, 
perhaps there is something in your PATH that is causing this?

Other than that, I think you might have to put some print statements 
into CMake's cmFindBase.cxx and try to figure out how it is finding the 
non drive letter version of wxWidgets on your machine.

-Bill




More information about the CMake mailing list