MantisBT - CMake
View Issue Details
0009775CMakeModulespublic2009-10-24 05:452010-09-09 23:54
stevelamerton 
Miguel Figueroa 
normalminoralways
closedfixed 
CMake-2-8 
CMake 2.8.3CMake 2.8.3 
0009775: FindwxWidgets does not support new wxWidgets 2.9 libraries
In wxWidgets 2.9+ the stc and wxscintilla modules were moved from contrib into the main library. I have attached a patch against the FindwxWigets.cmake file in 2.8-rc2 which adds support for them.
No tags attached.
patch wxnewlibs.patch (879) 2009-10-24 05:45
https://public.kitware.com/Bug/file/2599/wxnewlibs.patch
Issue History
2009-10-24 05:45stevelamertonNew Issue
2009-10-24 05:45stevelamertonFile Added: wxnewlibs.patch
2009-10-24 09:54Bill HoffmanStatusnew => assigned
2009-10-24 09:54Bill HoffmanAssigned To => Miguel Figueroa
2010-03-07 03:40Miguel FigueroaNote Added: 0019745
2010-03-07 03:55Miguel FigueroaRelationship addedhas duplicate 0008954
2010-03-07 06:04stevelamertonNote Added: 0019748
2010-03-07 13:44Miguel FigueroaNote Added: 0019751
2010-03-07 13:45Miguel FigueroaRelationship deletedhas duplicate 0008954
2010-03-07 13:56Miguel FigueroaNote Added: 0019752
2010-03-12 07:57stevelamertonNote Added: 0019853
2010-08-28 10:23Kovarththanan RajaratnamCategoryCMake => Modules
2010-08-29 13:50Miguel FigueroaNote Added: 0022002
2010-08-29 13:50Miguel FigueroaStatusassigned => resolved
2010-08-29 13:50Miguel FigueroaResolutionopen => fixed
2010-08-30 13:27Miguel FigueroaStatusresolved => closed
2010-09-09 23:54David ColeFixed in Version => CMake 2.8.3
2010-09-09 23:54David ColeTarget Version => CMake 2.8.3

Notes
(0019745)
Miguel Figueroa   
2010-03-07 03:40   
I haven't compiled wxWidgets 2.9 in windows yet. Could you provide a listing of the library directory?

In particular, I can infer from your patch that there are two libraries created

- wxscintilla/wxscintillad
- wxmsw29_stc/wxmsw29d_stc

Is this correct?

I suppose there is no way to use one without the other, right?

Thanks,
--Miguel
(0019748)
stevelamerton   
2010-03-07 06:04   
Sure, the current listing is:

wxbase29u
wxbase29u_net
wxbase29u_xml
wxexpat
wxjpeg
wxmsw29u_adv
wxmsw29u_aui
wxmsw29u_core
wxmsw29u_gl
wxmsw29u_html
wxmsw29u_media
wxmsw29u_propgrid *
wxmsw29u_qa
wxmsw29u_ribbon *
wxmsw29u_richtext
wxmsw29u_stc *
wxmsw29u_xrc
wxpng
wxregexu
wxscintilla *
wxtiff
wxzlib

I have starred the libraries that I think are new in wx2.9, they all need to be added to the list, and yes there is no way of using wxscintilla without wxmsw29d_stc. If you would like me to produce a new patch I can do. Also I am not sure this is a duplicate of 0008954 as the point of this patch is that they are now in the standard build rather than in contrib!
(0019751)
Miguel Figueroa   
2010-03-07 13:44   
Could you test the following patch? I have pasted it below since it is a simple one... Note that you need to include both stc and scintilla to link to the stc module. That is:

find_package(wxWidgets REQUIRED core stc scintilla)

This is discussed in another note.

diff --git a/Modules/FindwxWidgets.cmake b/Modules/FindwxWidgets.cmake
--- a/Modules/FindwxWidgets.cmake
+++ b/Modules/FindwxWidgets.cmake
@@ -252,7 +252,7 @@
     # FIXME: What if both regex libs are available. regex should be
     # found outside the loop and only wx${LIB}${_UCD}${_DBG}.
     # Find wxWidgets common libraries.
- FOREACH(LIB ${wxWidgets_COMMON_LIBRARIES})
+ FOREACH(LIB ${wxWidgets_COMMON_LIBRARIES} scintilla)
       FIND_LIBRARY(WX_${LIB}${_DBG}
         NAMES
         wx${LIB}${_UCD}${_DBG} # for regex
@@ -303,7 +303,8 @@
     MARK_AS_ADVANCED(WX_mono${_DBG})
 
     # Find wxWidgets multilib libraries.
- FOREACH(LIB core adv aui html media xrc dbgrid gl qa richtext)
+ FOREACH(LIB core adv aui html media xrc dbgrid gl qa richtext
+ stc ribbon propgrid)
       FIND_LIBRARY(WX_${LIB}${_DBG}
         NAMES
         wxmsw${_UNV}29${_UCD}${_DBG}_${LIB}
(0019752)
Miguel Figueroa   
2010-03-07 13:56   
I removed the automatic insertion of scintilla when using stc, since this is really another issue, namely, dependency checking. I am tempted to implement a solution for this, but I am worried about compatibility issues and dependencies changing. That is, what if the richtext library, doesn't depend on html in a previous or future version of wxWidgets? Any comments on this? Is there a place I can find the history of multilibs and their dependencies (from wxWidgets 2.5 to 2.9)?

To implement I could do a find for each COMPONENT and insert its dependencies, where the dependencies would be listed (possibly by version number):

set(WX_richtext_DEPENDS adv html xml)

Thoughts?

--Miguel
(0019853)
stevelamerton   
2010-03-12 07:57   
Yes this works fine for me, thanks. I am afraid I do not know of such a list for library dependencies though.
(0022002)
Miguel Figueroa   
2010-08-29 13:50   
Fixed in the following changeset:

commit 6bbf2a0e8e983b193e48ad1b227c46cf6ea9a85b
Author: Miguel A. Figueroa-Villanueva <miguelf@ieee.org>
Date: Sun Aug 29 12:22:18 2010 -0400

    ENH: 0009775 Added support for new wxWidgets 2.9 libraries.
    
    Added support for new libraries in wxWidgets 2.9 that are
    part of the main distribution. These are: wxPropertyGrid,
    wxSTC, wxScintilla, and wxRibbon.