diff --git a/configure b/configure index a3eb41ddc5..d5aa44bd3b 100755 --- a/configure +++ b/configure @@ -7918,6 +7918,8 @@ fi eval "$wx_cv_use_iniconf" +fi + enablestring= defaultval=$wxUSE_ALL_FEATURES @@ -7947,7 +7949,6 @@ fi eval "$wx_cv_use_regkey" -fi if test "$wxUSE_GUI" = "yes"; then @@ -22111,7 +22112,9 @@ rm -f core conftest.err conftest.$ac_objext \ if test -z "$wx_cv_lib_gtk"; then wx_cv_lib_gtk=none else - GTK_LIBS="$GTK_LIBS -lX11" + if test "$USE_WIN32" != 1 ; then + GTK_LIBS="$GTK_LIBS -lX11" + fi wx_cv_cflags_gtk=$GTK_CFLAGS wx_cv_libs_gtk=$GTK_LIBS @@ -28766,7 +28769,7 @@ else $as_echo "$as_me: WARNING: wxGetDiskSpace() function won't work without statfs()" >&2;} fi -if test "$wxUSE_SNGLINST_CHECKER" = "yes"; then +if test "$wxUSE_SNGLINST_CHECKER" = "yes" -a "$USE_WIN32" != 1 ; then for ac_func in fcntl flock do : as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh` @@ -31306,7 +31309,7 @@ fi if test "$wxUSE_FSWATCHER" = "yes"; then - if test "$wxUSE_MSW" != "1"; then + if test "$USE_WIN32" != 1; then if test "$wxUSE_UNIX" = "yes"; then for ac_header in sys/inotify.h do : @@ -33495,7 +33498,7 @@ done if test "$wxUSE_SOCKETS" = "yes"; then - if test "$TOOLKIT" != "MSW"; then + if test "$USE_WIN32" != 1 ; then ac_fn_c_check_func "$LINENO" "socket" "ac_cv_func_socket" if test "x$ac_cv_func_socket" = xyes; then : @@ -33558,7 +33561,7 @@ fi fi if test "$wxUSE_SOCKETS" = "yes" ; then - if test "$TOOLKIT" != "MSW"; then + if test "$USE_WIN32" != 1 ; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking what is the type of the third argument of getsockname" >&5 $as_echo_n "checking what is the type of the third argument of getsockname... " >&6; } if ${wx_cv_type_getsockname3+:} false; then : @@ -35371,11 +35374,6 @@ if test "$wxUSE_MSW" = 1 ; then fi - if test "$wxUSE_DIB" = "yes"; then - $as_echo "#define wxUSE_WXDIB 1" >>confdefs.h - - fi - if test "$wxUSE_POSTSCRIPT_ARCHITECTURE_IN_MSW" = "yes"; then $as_echo "#define wxUSE_POSTSCRIPT_ARCHITECTURE_IN_MSW 1" >>confdefs.h @@ -35454,6 +35452,11 @@ $as_echo "$as_me: WARNING: Debug help API and wxStackWalker won't be available" fi fi + if test "$wxUSE_DIB" = "yes"; then + $as_echo "#define wxUSE_WXDIB 1" >>confdefs.h + + fi + if test "$wxUSE_INICONF" = "yes"; then $as_echo "#define wxUSE_INICONF 1" >>confdefs.h diff --git a/configure.in b/configure.in index f09322a3a0..cbfc2dd4a3 100644 --- a/configure.in +++ b/configure.in @@ -749,9 +749,10 @@ WX_ARG_FEATURE(threads, [ --enable-threads use threads], wxUSE_THREA if test "$wxUSE_MSW" = 1 ; then WX_ARG_DISABLE(dbghelp, [ --enable-dbghelp use dbghelp.dll API (Win32 only)], wxUSE_DBGHELP) WX_ARG_ENABLE(iniconf, [ --enable-iniconf use wxIniConfig (Win32 only)], wxUSE_INICONF) -WX_ARG_FEATURE(regkey, [ --enable-regkey use wxRegKey class (Win32 only)], wxUSE_REGKEY) fi +WX_ARG_FEATURE(regkey, [ --enable-regkey use wxRegKey class (Win32 only)], wxUSE_REGKEY) + if test "$wxUSE_GUI" = "yes"; then dnl --------------------------------------------------------------------------- @@ -2782,8 +2783,10 @@ if test "$wxUSE_GUI" = "yes"; then dnl looks better in AC_MSG_RESULT wx_cv_lib_gtk=none else - dnl we use symbols from X11 directly so we should link with it - GTK_LIBS="$GTK_LIBS -lX11" + if test "$USE_WIN32" != 1 ; then + dnl we use symbols from X11 directly so we should link with it + GTK_LIBS="$GTK_LIBS -lX11" + fi dnl we need to cache GTK_CFLAGS and GTK_LIBS for the dnl subsequent runs @@ -4345,7 +4348,7 @@ fi dnl check for fcntl() or at least flock() needed by Unix implementation of dnl wxSingleInstanceChecker -if test "$wxUSE_SNGLINST_CHECKER" = "yes"; then +if test "$wxUSE_SNGLINST_CHECKER" = "yes" -a "$USE_WIN32" != 1 ; then AC_CHECK_FUNCS(fcntl flock, break) if test "$ac_cv_func_fcntl" != "yes" -a "$ac_cv_func_flock" != "yes"; then @@ -5293,10 +5296,10 @@ dnl File system watcher checks dnl --------------------------------------------------------------------------- if test "$wxUSE_FSWATCHER" = "yes"; then - dnl wxFileSystemWatcher is always available under MSW but we need either + dnl wxFileSystemWatcher is always available under Windows but we need either dnl inotify or kqueue support in the system for it under Unix (this dnl includes OS X which does have kqueue but no other platforms) - if test "$wxUSE_MSW" != "1"; then + if test "$USE_WIN32" != 1; then if test "$wxUSE_UNIX" = "yes"; then AC_CHECK_HEADERS(sys/inotify.h,,, [AC_INCLUDES_DEFAULT()]) if test "$ac_cv_header_sys_inotify_h" = "yes"; then @@ -5962,8 +5965,8 @@ dnl wxSocket dnl ------------------------------------------------------------------------ if test "$wxUSE_SOCKETS" = "yes"; then - dnl under MSW we always have sockets - if test "$TOOLKIT" != "MSW"; then + dnl under Windows we always have sockets + if test "$USE_WIN32" != 1 ; then dnl under Solaris and OS/2, socket functions live in -lsocket AC_CHECK_FUNC(socket,, [ @@ -5982,10 +5985,8 @@ if test "$wxUSE_SOCKETS" = "yes"; then fi if test "$wxUSE_SOCKETS" = "yes" ; then - dnl this test may be appropriate if building under cygwin - dnl right now I'm assuming it also uses the winsock stuff - dnl like mingw does.. -- RL - if test "$TOOLKIT" != "MSW"; then + dnl under Windows we do not use getsockname + if test "$USE_WIN32" != 1 ; then dnl determine the type of third argument for getsockname dnl This test needs to be done in C++ mode since gsocket.cpp now dnl is C++ code and pointer cast that are possible even without @@ -7264,10 +7265,6 @@ if test "$wxUSE_MSW" = 1 ; then AC_DEFINE(wxUSE_DC_CACHEING) fi - if test "$wxUSE_DIB" = "yes"; then - AC_DEFINE(wxUSE_WXDIB) - fi - if test "$wxUSE_POSTSCRIPT_ARCHITECTURE_IN_MSW" = "yes"; then AC_DEFINE(wxUSE_POSTSCRIPT_ARCHITECTURE_IN_MSW) fi @@ -7316,6 +7313,10 @@ if test "$USE_WIN32" = 1 ; then fi fi + if test "$wxUSE_DIB" = "yes"; then + AC_DEFINE(wxUSE_WXDIB) + fi + if test "$wxUSE_INICONF" = "yes"; then AC_DEFINE(wxUSE_INICONF) fi diff --git a/docs/msw/msys2-gtk.txt b/docs/msw/msys2-gtk.txt new file mode 100644 index 0000000000..097e2ee191 --- /dev/null +++ b/docs/msw/msys2-gtk.txt @@ -0,0 +1,96 @@ +Building wxGTK port with Win32 MSys2 GDK backend +------------------------------------------------ + +GTK+ widget toolkit has multiple GDK backends and one of them is Win32. +It is a wrapper around Windows API. + +These notes don't consider building wxGTK with X11 backend under Windows. + +The MSys2 website is http://www.msys2.org/ + +These building steps are NOT the normal way to build MSys2 MinGW packages. +But, they are a way the wxWidgets developers can test that wxWidgets +can build the wxGTK/Win32 libraries under MSys2 MinGW. + +For the MSys2 way please see https://github.com/Alexpux/MINGW-packages + +Building steps: + +#Note: The "#" is used in front of a comment to help the people who cut +# and paste these directions. +#Warning: At the time these directions were written the GTK version 3 +# was NOT able to create wxGTK/Win32 libraries that were usable. + +#1. Install the mingw32 packages needed to build wxGTK/Win32 using the +# configure/make build method. +# From the MSys2 prompt or MSys2 MinGW prompt: + +# The 32 bit Mingw packages are prefixed with "mingw-w64-i686-"; +# Change the prefix to "mingw-w64-x86_64-" if you wish to do 64 bit. + +pacman -S make +pacman -S mingw-w64-i686-cppunit +pacman -S mingw-w64-i686-libjpeg-turbo +pacman -S mingw-w64-i686-libpng +pacman -S mingw-w64-i686-libtiff +pacman -S mingw-w64-i686-gcc +pacman -S mingw-w64-i686-pkg-config +## gtk2 can take a long time to update/find fonts +pacman -S mingw-w64-i686-gtk2 + + +# Packages that are needed but are normally installed already. +pacman -S mingw-w64-i686-gcc-libs +pacman -S mingw-w64-i686-expat +pacman -S mingw-w64-i686-xz +pacman -S mingw-w64-i686-zlib +pacman -S mingw-w64-i686-gdk-pixbuf2 + + +#2. Build the wxGTK/Win32 static library +#2a.Open MSys2 MinGW Prompt +# (These steps were tested on MinGW32; but, should work under MinGW64) +#2b.Use the cd command to change directory to the wxWidgets top folder. + + +#2c.Create the "build-gtk2-static" folder to build the static libraries +mkdir -p build-gtk2-static + +#2d.Configure wxWidgets +# Option "--disable-precomp-headers" is NOT needed. +# I am doing it to check for compile issues; +# And, I think my old 32 bit Windows machine +# works best with it disabled. +cd build-gtk2-static && \ + ../configure --with-gtk=2 \ + --disable-shared \ + --disable-precomp-headers \ + && cd .. + +#2e.make the wxGTK static libraries +cd build-gtk2-static && make && cd .. + + +#3 Build and run the minimal static sample +#3a.Build the minimal sample +cd build-gtk2-static/samples/minimal && make && cd ../../.. + +#3b.Run the minimal sample +./build-gtk2-static/samples/minimal/minimal.exe + + +#4 Build and run the typetest static sample to verify MIME database works +cd build-gtk2-static/samples/typetest && make && cd ../../.. +./build-gtk2-static/samples/typetest/typetest.exe + +#5 Build and run the drawing static sample +cd build-gtk2-static/samples/drawing && make && cd ../../.. +cd samples/drawing && ../../build-gtk2-static/samples/drawing/drawing.exe && cd ../.. + +#6 Build and run the splash static sample +cd build-gtk2-static/samples/splash && make && cd ../../.. +cd samples/splash && ../../build-gtk2-static/samples/splash/splash.exe && cd ../.. + +#7 Build and run the widgets static sample +cd build-gtk2-static/samples/widgets && make && cd ../../.. +cd samples/widgets && ../../build-gtk2-static/samples/widgets/widgets.exe && cd ../.. diff --git a/docs/msw/msys2-msw.txt b/docs/msw/msys2-msw.txt new file mode 100644 index 0000000000..54a07ba1b5 --- /dev/null +++ b/docs/msw/msys2-msw.txt @@ -0,0 +1,84 @@ +Building wxMSW port with Win32 MSys2 backend +------------------------------------------------ + +The MSys2 website is http://www.msys2.org/ + +These building steps are NOT the normal way to build MSys2 MinGW packages. +But, they are a way the wxWidgets developers can test that wxWidgets +can build the wxMSW libraries under MSys2 MinGW. + +For the MSys2 way please see https://github.com/Alexpux/MINGW-packages + +Building steps: + +#Note: The "#" is used in front of a comment to help the people who cut +# and paste these directions. + +#1. Install the mingw32 packages needed to build wxMSW using the +# configure/make build method. +# From the MSys2 prompt or MSys2 MinGW prompt: + +# The 32 bit Mingw packages are prefixed with "mingw-w64-i686-"; +# Change the prefix to "mingw-w64-x86_64-" if you wish to do 64 bit. + +pacman -S make +pacman -S mingw-w64-i686-cppunit +pacman -S mingw-w64-i686-libjpeg-turbo +pacman -S mingw-w64-i686-libpng +pacman -S mingw-w64-i686-libtiff +pacman -S mingw-w64-i686-gcc + +# Packages that are needed but are normally installed already. +pacman -S mingw-w64-i686-gcc-libs +pacman -S mingw-w64-i686-expat +pacman -S mingw-w64-i686-xz +pacman -S mingw-w64-i686-zlib + + +#2. Build the wxMSW static library +#2a.Open MSys2 MinGW Prompt +# (These steps were tested on MinGW32; but, should work under MinGW64) +#2b.Use the cd command to change directory to the wxWidgets top folder. + + +#2c.Create the "build-msw-static" folder to build the static libraries +mkdir -p build-msw-static + +#2d.Configure wxWidgets +# Option "--disable-precomp-headers" is NOT needed. +# I am doing it to check for compile issues; +# And, I think my old 32 bit Windows machine +# works best with it disabled. +cd build-msw-static && \ + ../configure --with-msw \ + --disable-shared \ + --disable-precomp-headers \ + && cd .. + +#2e.make the wxMSW static libraries +cd build-msw-static && make && cd .. + + +#3 Build and run the minimal static sample +#3a.Build the minimal sample +cd build-msw-static/samples/minimal && make && cd ../../.. + +#3b.Run the minimal sample +./build-msw-static/samples/minimal/minimal.exe + + +#4 Build and run the typetest static sample to verify MIME database works +cd build-msw-static/samples/typetest && make && cd ../../.. +./build-msw-static/samples/typetest/typetest.exe + +#5 Build and run the drawing static sample +cd build-msw-static/samples/drawing && make && cd ../../.. +cd samples/drawing && ../../build-msw-static/samples/drawing/drawing.exe && cd ../.. + +#6 Build and run the splash static sample +cd build-msw-static/samples/splash && make && cd ../../.. +cd samples/splash && ../../build-msw-static/samples/splash/splash.exe && cd ../.. + +#7 Build and run the widgets static sample +cd build-msw-static/samples/widgets && make && cd ../../.. +cd samples/widgets && ../../build-msw-static/samples/widgets/widgets.exe && cd ../.. diff --git a/include/wx/gtk/mimetype.h b/include/wx/gtk/mimetype.h index 9d08613aa3..ed645c6de3 100644 --- a/include/wx/gtk/mimetype.h +++ b/include/wx/gtk/mimetype.h @@ -23,7 +23,9 @@ class WXDLLIMPEXP_CORE wxGTKMimeTypesManagerImpl : public wxMimeTypesManagerImpl { protected: +#if defined(__UNIX__) wxString GetIconFromMimeType(const wxString& mime) wxOVERRIDE; +#endif }; diff --git a/include/wx/msw/chkconf.h b/include/wx/msw/chkconf.h index 585b7182ff..ef851ee9a4 100644 --- a/include/wx/msw/chkconf.h +++ b/include/wx/msw/chkconf.h @@ -183,11 +183,6 @@ #define wxUSE_SECRETSTORE 0 #endif -#if !wxUSE_OWNER_DRAWN && !defined(__WXUNIVERSAL__) -# undef wxUSE_CHECKLISTBOX -# define wxUSE_CHECKLISTBOX 0 -#endif - #if wxUSE_SPINCTRL # if !wxUSE_SPINBTN # ifdef wxABORT_ON_CONFIG_ERROR @@ -199,6 +194,16 @@ # endif #endif +/* wxMSW-specific checks: notice that this file is also used with wxUniv + and can even be used with wxGTK, when building it under Windows. + */ +#if defined(__WXMSW__) && !defined(__WXUNIVERSAL__) +# if !wxUSE_OWNER_DRAWN +# undef wxUSE_CHECKLISTBOX +# define wxUSE_CHECKLISTBOX 0 +# endif +#endif + /* Compiler-specific checks. */ diff --git a/src/gtk/mimetype.cpp b/src/gtk/mimetype.cpp index 000d44632d..105842ce7a 100644 --- a/src/gtk/mimetype.cpp +++ b/src/gtk/mimetype.cpp @@ -19,6 +19,7 @@ #include "wx/gtk/private/string.h" #include "wx/gtk/private/object.h" +#if defined(__UNIX__) wxString wxGTKMimeTypesManagerImpl::GetIconFromMimeType(const wxString& mime) { wxString icon; @@ -58,6 +59,7 @@ wxString wxGTKMimeTypesManagerImpl::GetIconFromMimeType(const wxString& mime) #endif // GTK_CHECK_VERSION(2,14,0) return icon; } +#endif // defined(__UNIX__) wxMimeTypesManagerImpl *wxGTKMimeTypesManagerFactory::CreateMimeTypesManagerImpl() {