wxMax for wxWidgets 3.0.2

BlitzMax Forums/Brucey's Modules/wxMax for wxWidgets 3.0.2

Brucey(Posted 2015) [#1]
wxMax has been updated to the lastest version of wxWidgets, 3.0.2.

It currently works with the following platforms and architectures :

Windows - x86, x64
OS X - x86, x64
Linux - x86, x64

To create 64-bit native wxMax applications, you will need to use bmx-ng, which is still in development.

A native Raspberry Pi build is also planned. (but compilation may take several months :-p )

It can be downloaded from the usual source repositories :

SVN : https://code.google.com/p/wxmax/source/checkout

Git/SVN (mirror) : https://github.com/maxmods/wx.mod


Ole JR(Posted 2015) [#2]
Thanks a bunch!

Now if I only could get BMax to work with tdm 4.8.1/4.9.2 again, (disk crash/swap), I could test it out too..


Henri(Posted 2015) [#3]
Very cool update, thanks a lot.

-Henri


Ole JR(Posted 2015) [#4]
Just a heads up, it doesn't compile (here atleast) with tdm64 4.9.2.

Getting this while trying to compile.
Error: This file requires compiler and library support for the ISO C++ 2011 standard.
This support is currently experimental, and must be enabled with the 
-std=c++11 or -std=gnu++11 compiler options.


So tdm64 v4.8.1 it is for now!

(And bmx-ng windows doesn't like threading yet, but that's no problem)


Derron(Posted 2015) [#5]
More detailled the error with 4.9.2 and NG is:

 #error This file requires compiler and library support for the \
  ^
In file included from E:/BMX-NG/mod/wx.mod/include/wx/string.h:46:0,
                 from E:/BMX-NG/mod/wx.mod/include/wx/memory.h:15,
                 from E:/BMX-NG/mod/wx.mod/include/wx/object.h:19,
                 from E:/BMX-NG/mod/wx.mod/include/wx/wx.h:15,
                 from E:/BMX-NG/mod/wx.mod/wx.mod/wxglue.h:26,
                 from E:/BMX-NG/mod/wx.mod/wx.mod/wxglue.cpp:23:
E:/BMX-NG/mod/wx.mod/include/wx/strvararg.h:350:18: error: 'is_enum' in namespace 'std' does not name a template type
     typedef std::is_enum<T> is_enum;
                  ^
E:/BMX-NG/mod/wx.mod/include/wx/strvararg.h:354:54: error: 'is_enum' was not declared in this scope
     enum { value = wxFormatStringSpecifierNonPodType<is_enum::value>::value };
                                                      ^
E:/BMX-NG/mod/wx.mod/include/wx/strvararg.h:354:68: error: template argument 1 is invalid
     enum { value = wxFormatStringSpecifierNonPodType<is_enum::value>::value };
                                                                    ^
Build Error: failed to compile E:/BMX-NG/mod/wx.mod/wx.mod/wxglue.cpp
E:\BMX-NG\bin>


On Linux using "vanilla" (the only thing I checked) only had one error (made an pull request for it on github). Scintilla sample also worked without gtk-notices in the console *bravo*.


EDIT: I opened up "wx.mod/wx.mod/wx.bmx" and in the section of "?Win32" I appended: ModuleInfo "CC_OPTS: -std=gnu++11" which lead to compile something more - but ends up with other files needing similar checks.
I am not sure if there is a better place to set it up for "all" modules, else it seems we need to add this to every module file in wx.mod (eg. wx.mod/wxpalette.mod/wxpalette.bmx) etc.


bye
Ron


Ole JR(Posted 2015) [#6]
For now I'll atleast stick with 4.8.1 and let Brucey focus on other things :-)


Derron(Posted 2015) [#7]
Hope he sticks with "sed" to edit all the 220 files to append the module info.


bye
Ron


xlsior(Posted 2015) [#8]
Doesn't compile for me under Windows, gcc 4.7.1:

Compiling:unicode.cpp
Compiling:system.cpp
Compiling:isnt.cpp
Compiling:crypt.cpp
Compiling:crc.cpp
Compiling:rawread.cpp
Compiling:encname.cpp
Compiling:resource.cpp
Compiling:match.cpp
C:/Code/Blitzmax/mod/wx.mod/wxrarinputstream.mod/src/unrar/crc.cpp: In function 'uint CRC(uint, const void*, uint)':
C:/Code/Blitzmax/mod/wx.mod/wxrarinputstream.mod/src/unrar/crc.cpp:23:22: error: 'uintptr_t' was not declared in this scope
C:/Code/Blitzmax/mod/wx.mod/wxrarinputstream.mod/src/unrar/crc.cpp:23:32: error: expected ')' before 'Data'
C:/Code/Blitzmax/mod/wx.mod/wxrarinputstream.mod/src/unrar/crc.cpp:29:3: error: expected ')' before 'while'
to compile (1) C:/Code/Blitzmax/mod/wx.mod/wxrarinputstream.mod/src/unrar/crc.cpp




Brucey(Posted 2015) [#9]
Sigh... thanks for that, Marc. It seemed like a good idea at the time ;-)

Support gets more... interesting... as there are more versions of gcc to support. Currently we have a spread of at least 4.7 -> 4.9, all of which have different requirements.
Of course, I could push the minimum requirements for 3.0.2 to 4.8.x... solving some of the issues... but I suppose I can add #ifdef/typedef for that, for now.


xlsior(Posted 2015) [#10]
Sigh... thanks for that, Marc. It seemed like a good idea at the time ;-)


What MinGW version do you recommend yourself at this point?

I tried recompiling the stock blitzmax with 4.8.1 but had issues with that due to the whole 32/64 incorrect CPU architecture errors... 4.7.1 works OK with stock.

I had 4.8.1 in combination with your NG release, but that doesn't want to compile a ton of the 3rd party modules at this point, so I still have the 4.7.1 for the bulk of 'normal' things


xlsior(Posted 2015) [#11]
--Just trying the 32-bit built of 4.9.2: similar problem with compiling WX.mod:

Compiling:keys.bmx
Compiling:consts.bmx
Compiling:wxglue.cpp
Compiling:common.bmx
In file included from C:/Code/BlitzmaxNew/MinGW32/lib/gcc/mingw32/4.9.2/include/c++/type_traits:35:0,
from C:/Code/BlitzmaxNew/mod/wx.mod/include/wx/strvararg.h:25,
from C:/Code/BlitzmaxNew/mod/wx.mod/include/wx/string.h:46,
from C:/Code/BlitzmaxNew/mod/wx.mod/include/wx/memory.h:15,
from C:/Code/BlitzmaxNew/mod/wx.mod/include/wx/object.h:19,
from C:/Code/BlitzmaxNew/mod/wx.mod/include/wx/wx.h:15,
from C:/Code/BlitzmaxNew/mod/wx.mod/wx.mod/wxglue.h:26,
from C:/Code/BlitzmaxNew/mod/wx.mod/wx.mod/wxglue.cpp:23:
C:/Code/BlitzmaxNew/MinGW32/lib/gcc/mingw32/4.9.2/include/c++/bits/c++0x_warning.h:32:2: error: #error This file requires compiler and library support for the ISO C++ 2011 standard. This support is currently experimental, and must be enabled with the -std=c++11 or -std=gnu++11 compiler options.
#error This file requires compiler and library support for the \


Also, when using the 32-bit 4.9.2 some of the other bah.mod modules also fail to compile, e.g. bah.box2D will fail compilation with:
Compiling:box2d.bmx
Compile Error: Unable to convert from Void to Int.


(Using both bmk_ng and bcc_ng)


Derron(Posted 2015) [#12]
@xlsior
We discussed that problem with "std=c++11" in an issue already:
https://github.com/maxmods/wx.mod/issues/4

Feel free to add suggestions/thoughts there too (if you have a github account). This leaves the threads here a bit untainted/more clean.


bye
Ron


Pete Rigz(Posted 2015) [#13]
Cool, I'll shall give this a whirl with TimelineFX soon, thanks Brucey :)


Pete Rigz(Posted 2015) [#14]
I've tried compiling here with TDM 4.8.1 and getting the same error as above:

C:/BlitzMax148/mod/wx.mod/wxrarinputstream.mod/src/unrar/crc.cpp: In function 'uint CRC(uint, const void*, uint)':
C:/BlitzMax148/mod/wx.mod/wxrarinputstream.mod/src/unrar/crc.cpp:23:22: error: 'uintptr_t' was not declared in this scope
   while (Size>0 && ((uintptr_t)Data & 7))
                      ^
C:/BlitzMax148/mod/wx.mod/wxrarinputstream.mod/src/unrar/crc.cpp:23:32: error: expected ')' before 'Data'
   while (Size>0 && ((uintptr_t)Data & 7))
                                ^
C:/BlitzMax148/mod/wx.mod/wxrarinputstream.mod/src/unrar/crc.cpp:29:3: error: expected ')' before 'while'
   while (Size>=8)
   ^
Build Error: failed to compile C:/BlitzMax148/mod/wx.mod/wxrarinputstream.mod/src/unrar/crc.cpp
C:\BlitzMax148\bin>gcc -v
Using built-in specs.
COLLECT_GCC=gcc
COLLECT_LTO_WRAPPER=c:/blitzmax150/mingw32/bin/../libexec/gcc/mingw32/4.8.1/lto-wrapper.exe
Target: mingw32
Configured with: ../gcc-4.8.1/configure --prefix=/mingw --host=mingw32 --build=mingw32 --without-pic --enable-shared --enable-static --with-gnu-ld --enable-lto --enable-libssp --disable-multilib --enable-languages=c,c++,fortran,objc,obj-c++,ada --disable-sjlj-exceptions --with-dwarf2 --disable-win32-registry --enable-libstdcxx-debug --enable-version-specific-runtime-libs --with-gmp=/usr/src/pkg/gmp-5.1.2-1-mingw32-src/bld --with-mpc=/usr/src/pkg/mpc-1.0.1-1-mingw32-src/bld --with-mpfr= --with-system-zlib --with-gnu-as --enable-decimal-float=yes --enable-libgomp --enable-threads --with-libiconv-prefix=/mingw32 --with-libintl-prefix=/mingw --disable-bootstrap LDFLAGS=-s CFLAGS=-D_USE_32BIT_TIME_T
Thread model: win32
gcc version 4.8.1 (GCC)


I might be a bit behind the times in the latest gcc setups though, I kept my blitzmax install as it was and just cloned the latest wx, and installed tdm 4.8.1...