Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Building wxGTK 3.2 under macOS doesn't work #24460

Open
barracuda156 opened this issue Apr 7, 2024 · 7 comments
Open

Building wxGTK 3.2 under macOS doesn't work #24460

barracuda156 opened this issue Apr 7, 2024 · 7 comments
Labels
build Any build issue (with or without CMake) GTK macOS Specific to Cocoa macOS port

Comments

@barracuda156
Copy link

Could someone advise on a procedure to build wxWidgets 3.2 with GTK/X11 on macOS, without any Cocoa/ObjC?
wxWidgets 3.0 worked nicely with GTK, but 3.2 somehow violates configure setup and forces Cocoa files which fail to compile on anything but very recent macOS versions.

(To be clear, I am not asking to fix anything, I just want to understand an appropriate approach.)

@barracuda156 barracuda156 added the build Any build issue (with or without CMake) label Apr 7, 2024
@vadz
Copy link
Contributor

vadz commented Apr 7, 2024

Using configure --with-gtk should work but this is really not the right place for discussing this -- please use mailing list, forum or IRC for support requests and only use the issue tracker for reporting issues in wxWidgets itself.

Thanks!

@vadz vadz closed this as not planned Won't fix, can't repro, duplicate, stale Apr 7, 2024
@barracuda156
Copy link
Author

@vadz To be honest it looks like a bug in wxWidgets, since it also fails on macOS 14 with clang:

/opt/local/var/macports/build/_opt_svacchanda_SonomaPorts_graphics_wxWidgets-3.2/wxWidgets-3.2/work/wxWidgets-3.2.4/build/bk-deps /usr/bin/clang++ -std=gnu++11 -c -o basedll_evtloop_cf.o     -I/opt/local/var/macports/build/_opt_svacchanda_SonomaPorts_graphics_wxWidgets-3.2/wxWidgets-3.2/work/wxWidgets-3.2.4/build/lib/wx/include/gtk3-unicode-3.2 -I../include -I/opt/local/include -isysroot/Library/Developer/CommandLineTools/SDKs/MacOSX14.sdk -D_FILE_OFFSET_BITS=64 -I/opt/local/include/gtk-3.0 -I/opt/local/include/at-spi2-atk/2.0 -I/opt/local/include/at-spi-2.0 -I/opt/local/include/dbus-1.0 -I/opt/local/lib/dbus-1.0/include -I/opt/local/include/gio-unix-2.0 -I/opt/local/include/cairo -I/opt/local/include/pango-1.0 -I/opt/local/include/harfbuzz -I/opt/local/include/fribidi -I/opt/local/include/atk-1.0 -I/opt/local/include/pixman-1 -I/opt/local/include/freetype2 -I/opt/local/include/gdk-pixbuf-2.0 -I/opt/local/include/libpng16 -I/opt/local/include/glib-2.0 -I/opt/local/lib/glib-2.0/include  -D__WXGTK__      -DWXBUILDING -DwxUSE_GUI=0 -DWXMAKINGDLL_BASE -DwxUSE_BASE=1 -dynamic -fPIC -DPIC -Wall -Wundef -Wunused-parameter -Wno-ctor-dtor-privacy -Woverloaded-virtual -Wno-deprecated-declarations -I/opt/local/include/pango-1.0 -I/opt/local/include/harfbuzz -I/opt/local/include/fribidi -I/opt/local/include/cairo -I/opt/local/include/pixman-1 -I/opt/local/include/glib-2.0 -I/opt/local/lib/glib-2.0/include -I/opt/local/include/freetype2 -I/opt/local/include/libpng16 -I/opt/local/include/gdk-pixbuf-2.0 -I/opt/local/include/gtk-3.0/unix-print -I/opt/local/include/gtk-3.0 -I/opt/local/include/at-spi2-atk/2.0 -I/opt/local/include/at-spi-2.0 -I/opt/local/include/dbus-1.0 -I/opt/local/lib/dbus-1.0/include -I/opt/local/include/gio-unix-2.0 -I/opt/local/include/atk-1.0 -D_THREAD_SAFE -I/opt/local/include/SDL2 -I/opt/local/include/libsecret-1 -pipe -Os -stdlib=libc++ -isysroot/Library/Developer/CommandLineTools/SDKs/MacOSX14.sdk -arch arm64 -fno-common  -fvisibility=hidden -fvisibility-inlines-hidden -I/opt/local/include -isysroot/Library/Developer/CommandLineTools/SDKs/MacOSX14.sdk -pipe -Os -stdlib=libc++ -isysroot/Library/Developer/CommandLineTools/SDKs/MacOSX14.sdk -arch arm64 ../src/osx/core/evtloop_cf.cpp
In file included from ../src/osx/core/cfstring.cpp:22:
../include/wx/osx/core/cfstring.h:34:56: error: unknown type name 'CFStringRef'; did you mean 'wxCFStringRef'?
class WXDLLIMPEXP_BASE wxCFStringRef : public wxCFRef< CFStringRef >
                                                       ^~~~~~~~~~~
                                                       wxCFStringRef
../include/wx/osx/core/cfstring.h:34:24: note: 'wxCFStringRef' declared here
class WXDLLIMPEXP_BASE wxCFStringRef : public wxCFRef< CFStringRef >
                       ^
In file included from ../src/osx/core/cfstring.cpp:22:
In file included from ../include/wx/osx/core/cfstring.h:17:
../include/wx/osx/core/cfref.h:372:13: error: field has incomplete type 'wxCFStringRef'
    refType m_ptr;
            ^
../include/wx/osx/core/cfstring.h:34:47: note: in instantiation of template class 'wxCFRef<wxCFStringRef>' requested here
class WXDLLIMPEXP_BASE wxCFStringRef : public wxCFRef< CFStringRef >
                                              ^
../include/wx/osx/core/cfstring.h:34:24: note: definition of 'wxCFStringRef' is not complete until the closing '}'
class WXDLLIMPEXP_BASE wxCFStringRef : public wxCFRef< CFStringRef >
                       ^
../include/wx/osx/core/cfstring.h:51:19: error: unknown type name 'CFStringRef'; did you mean 'wxCFStringRef'?
    wxCFStringRef(CFStringRef ref)
                  ^~~~~~~~~~~
                  wxCFStringRef
../include/wx/osx/core/cfstring.h:34:24: note: 'wxCFStringRef' declared here
class WXDLLIMPEXP_BASE wxCFStringRef : public wxCFRef< CFStringRef >
                       ^
../include/wx/osx/core/cfstring.h:51:31: error: copy constructor must pass its first argument by reference
    wxCFStringRef(CFStringRef ref)
                              ^
                              const &
../include/wx/osx/core/cfstring.h:67:31: error: unknown type name 'CFStringRef'; did you mean 'wxCFStringRef'?
    static wxString AsString( CFStringRef ref, wxFontEncoding encoding = wxFONTENCODING_DEFAULT ) ;
                              ^~~~~~~~~~~
                              wxCFStringRef
../include/wx/osx/core/cfstring.h:34:24: note: 'wxCFStringRef' declared here
class WXDLLIMPEXP_BASE wxCFStringRef : public wxCFRef< CFStringRef >
                       ^
../include/wx/osx/core/cfstring.h:68:53: error: unknown type name 'CFStringRef'; did you mean 'wxCFStringRef'?
    static wxString AsStringWithNormalizationFormC( CFStringRef ref, wxFontEncoding encoding = wxFONTENCODING_DEFAULT ) ;
                                                    ^~~~~~~~~~~
                                                    wxCFStringRef
../include/wx/osx/core/cfstring.h:34:24: note: 'wxCFStringRef' declared here
class WXDLLIMPEXP_BASE wxCFStringRef : public wxCFRef< CFStringRef >
                       ^
../include/wx/osx/core/cfstring.h:52:20: error: unknown type name 'CFStringRef'; did you mean 'wxCFStringRef'?
        : wxCFRef< CFStringRef >(ref)
                   ^~~~~~~~~~~
                   wxCFStringRef
../include/wx/osx/core/cfstring.h:34:24: note: 'wxCFStringRef' declared here
class WXDLLIMPEXP_BASE wxCFStringRef : public wxCFRef< CFStringRef >
                       ^
../include/wx/osx/core/cfstring.h:52:11: error: type 'wxCFRef<wxCFStringRef>' is not a direct or virtual base of 'wxCFStringRef'
        : wxCFRef< CFStringRef >(ref)
          ^~~~~~~~~~~~~~~~~~~~~~
../include/wx/osx/core/cfstring.h:57:20: error: unknown type name 'CFStringRef'; did you mean 'wxCFStringRef'?
        : wxCFRef< CFStringRef >(otherRef)
                   ^~~~~~~~~~~
                   wxCFStringRef
../include/wx/osx/core/cfstring.h:34:24: note: 'wxCFStringRef' declared here
class WXDLLIMPEXP_BASE wxCFStringRef : public wxCFRef< CFStringRef >
                       ^
../include/wx/osx/core/cfstring.h:57:11: error: type 'wxCFRef<wxCFStringRef>' is not a direct or virtual base of 'wxCFStringRef'
        : wxCFRef< CFStringRef >(otherRef)
          ^~~~~~~~~~~~~~~~~~~~~~
../include/wx/osx/core/cfstring.h:85:43: error: unknown type name 'CFStringRef'
inline wxCFStringRef wxCFStringRefFromGet(CFStringRef p)
                                          ^
In file included from ../src/osx/core/mimetype.cpp:21:
In file included from ../include/wx/osx/private.h:4:
In file included from ../include/wx/osx/core/private.h:23:
../include/wx/osx/core/cfarray.h:56:14: error: unknown type name 'WX_NSArray'
    operator WX_NSArray() { return (WX_NSArray) this->get(); }
             ^
In file included from ../src/osx/core/mimetype.cpp:21:
In file included from ../include/wx/osx/private.h:4:
../include/wx/osx/core/private.h:43:22: warning: 'wxOSX_USE_IPHONE' is not defined, evaluates to 0 [-Wundef]
#if ( !wxUSE_GUI && !wxOSX_USE_IPHONE ) || wxOSX_USE_COCOA_OR_CARBON
                     ^
../src/osx/core/cfstring.cpp:594:9: error: use of undeclared identifier 'reset'
        reset( wxCFRetain( CFSTR("") ) );
        ^
../src/osx/core/cfstring.cpp:617:13: error: use of undeclared identifier 'reset'
            reset( ref );
            ^
../src/osx/core/cfstring.cpp:621:13: error: use of undeclared identifier 'reset'
            reset( wxCFRetain( CFSTR("") ) );
            ^
../src/osx/core/cfstring.cpp:630:25: error: out-of-line definition of 'AsStringWithNormalizationFormC' does not match any declaration in 'wxCFStringRef'
wxString wxCFStringRef::AsStringWithNormalizationFormC( CFStringRef ref, wxFontEncoding encoding )
                        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../src/osx/core/cfstring.cpp:637:35: error: no matching member function for call to 'AsString'
    wxString str = wxCFStringRef::AsString(cfMutableString,encoding);
                   ~~~~~~~~~~~~~~~^~~~~~~~
../include/wx/osx/core/cfstring.h:67:21: note: candidate function not viable: cannot convert argument of incomplete type 'CFMutableStringRef' (aka '__CFString *') to 'wxCFStringRef' for 1st argument
    static wxString AsString( CFStringRef ref, wxFontEncoding encoding = wxFONTENCODING_DEFAULT ) ;
                    ^
../include/wx/osx/core/cfstring.h:65:14: note: candidate function not viable: allows at most single argument 'encoding', but 2 arguments were provided
    wxString AsString( wxFontEncoding encoding = wxFONTENCODING_DEFAULT ) const;
             ^
../src/osx/core/cfstring.cpp:642:25: error: out-of-line definition of 'AsString' does not match any declaration in 'wxCFStringRef'
wxString wxCFStringRef::AsString( CFStringRef ref, wxFontEncoding WXUNUSED_IN_UNICODE(encoding) )
                        ^~~~~~~~
../src/osx/core/cfstring.cpp:688:22: error: use of undeclared identifier 'get'
    return AsString( get(), encoding );
                     ^
/opt/local/var/macports/build/_opt_svacchanda_SonomaPorts_graphics_wxWidgets-3.2/wxWidgets-3.2/work/wxWidgets-3.2.4/build/bk-deps /usr/bin/clang++ -std=gnu++11 -c -o basedll_strconv_cf.o     -I/opt/local/var/macports/build/_opt_svacchanda_SonomaPorts_graphics_wxWidgets-3.2/wxWidgets-3.2/work/wxWidgets-3.2.4/build/lib/wx/include/gtk3-unicode-3.2 -I../include -I/opt/local/include -isysroot/Library/Developer/CommandLineTools/SDKs/MacOSX14.sdk -D_FILE_OFFSET_BITS=64 -I/opt/local/include/gtk-3.0 -I/opt/local/include/at-spi2-atk/2.0 -I/opt/local/include/at-spi-2.0 -I/opt/local/include/dbus-1.0 -I/opt/local/lib/dbus-1.0/include -I/opt/local/include/gio-unix-2.0 -I/opt/local/include/cairo -I/opt/local/include/pango-1.0 -I/opt/local/include/harfbuzz -I/opt/local/include/fribidi -I/opt/local/include/atk-1.0 -I/opt/local/include/pixman-1 -I/opt/local/include/freetype2 -I/opt/local/include/gdk-pixbuf-2.0 -I/opt/local/include/libpng16 -I/opt/local/include/glib-2.0 -I/opt/local/lib/glib-2.0/include  -D__WXGTK__      -DWXBUILDING -DwxUSE_GUI=0 -DWXMAKINGDLL_BASE -DwxUSE_BASE=1 -dynamic -fPIC -DPIC -Wall -Wundef -Wunused-parameter -Wno-ctor-dtor-privacy -Woverloaded-virtual -Wno-deprecated-declarations -I/opt/local/include/pango-1.0 -I/opt/local/include/harfbuzz -I/opt/local/include/fribidi -I/opt/local/include/cairo -I/opt/local/include/pixman-1 -I/opt/local/include/glib-2.0 -I/opt/local/lib/glib-2.0/include -I/opt/local/include/freetype2 -I/opt/local/include/libpng16 -I/opt/local/include/gdk-pixbuf-2.0 -I/opt/local/include/gtk-3.0/unix-print -I/opt/local/include/gtk-3.0 -I/opt/local/include/at-spi2-atk/2.0 -I/opt/local/include/at-spi-2.0 -I/opt/local/include/dbus-1.0 -I/opt/local/lib/dbus-1.0/include -I/opt/local/include/gio-unix-2.0 -I/opt/local/include/atk-1.0 -D_THREAD_SAFE -I/opt/local/include/SDL2 -I/opt/local/include/libsecret-1 -pipe -Os -stdlib=libc++ -isysroot/Library/Developer/CommandLineTools/SDKs/MacOSX14.sdk -arch arm64 -fno-common  -fvisibility=hidden -fvisibility-inlines-hidden -I/opt/local/include -isysroot/Library/Developer/CommandLineTools/SDKs/MacOSX14.sdk -pipe -Os -stdlib=libc++ -isysroot/Library/Developer/CommandLineTools/SDKs/MacOSX14.sdk -arch arm64 ../src/osx/core/strconv_cf.cpp
18 errors generated.
make: *** [basedll_cfstring.o] Error 1
make: *** Waiting for unfinished jobs....
../include/wx/osx/core/private.h:65:48: error: use of undeclared identifier 'NSString'; did you mean 'cString'?
WXDLLIMPEXP_BASE wxString wxStringWithNSString(NSString *nsstring);
                                               ^~~~~~~~
                                               cString
/Library/Developer/CommandLineTools/SDKs/MacOSX14.sdk/System/Library/Frameworks/Carbon.framework/Frameworks/OpenScripting.framework/Headers/ASRegistry.h:212:3: note: 'cString' declared here
  cString                       = cStringClass /* old name for cStringClass - can't be used in .r files*/
  ^
In file included from ../src/osx/core/mimetype.cpp:21:
In file included from ../include/wx/osx/private.h:4:
../include/wx/osx/core/private.h:65:58: error: use of undeclared identifier 'nsstring'; did you mean 'cString'?
WXDLLIMPEXP_BASE wxString wxStringWithNSString(NSString *nsstring);
                                                         ^~~~~~~~
                                                         cString
/Library/Developer/CommandLineTools/SDKs/MacOSX14.sdk/System/Library/Frameworks/Carbon.framework/Frameworks/OpenScripting.framework/Headers/ASRegistry.h:212:3: note: 'cString' declared here
  cString                       = cStringClass /* old name for cStringClass - can't be used in .r files*/
  ^
In file included from ../src/osx/core/mimetype.cpp:21:
In file included from ../include/wx/osx/private.h:4:
../include/wx/osx/core/private.h:65:27: error: calling a private constructor of class 'wxString'
WXDLLIMPEXP_BASE wxString wxStringWithNSString(NSString *nsstring);
                          ^
../include/wx/string.h:324:3: note: declared private here
  wxString(int);
  ^
In file included from ../src/osx/core/mimetype.cpp:21:
In file included from ../include/wx/osx/private.h:4:
../include/wx/osx/core/private.h:66:18: error: unknown type name 'NSString'; did you mean 'wxString'?
WXDLLIMPEXP_BASE NSString* wxNSStringWithWxString(const wxString &wxstring);
                 ^~~~~~~~
                 wxString
../include/wx/osx/core/cfstring.h:25:28: note: 'wxString' declared here
class WXDLLIMPEXP_FWD_BASE wxString;
                           ^
In file included from ../src/osx/core/mimetype.cpp:21:
../include/wx/osx/private.h:6:5: warning: 'wxOSX_USE_IPHONE' is not defined, evaluates to 0 [-Wundef]
#if wxOSX_USE_IPHONE
    ^
../include/wx/osx/private.h:8:7: warning: 'wxOSX_USE_COCOA' is not defined, evaluates to 0 [-Wundef]
#elif wxOSX_USE_COCOA
      ^
3 warnings and 5 errors generated.
make: *** [basedll_core_mimetype.o] Error 1
In file included from ../src/osx/core/evtloop_cf.cpp:34:
In file included from ../include/wx/osx/private.h:4:
In file included from ../include/wx/osx/core/private.h:23:
../include/wx/osx/core/cfarray.h:56:14: error: unknown type name 'WX_NSArray'
    operator WX_NSArray() { return (WX_NSArray) this->get(); }
             ^
In file included from ../src/osx/core/evtloop_cf.cpp:34:
In file included from ../include/wx/osx/private.h:4:
../include/wx/osx/core/private.h:43:22: warning: 'wxOSX_USE_IPHONE' is not defined, evaluates to 0 [-Wundef]
#if ( !wxUSE_GUI && !wxOSX_USE_IPHONE ) || wxOSX_USE_COCOA_OR_CARBON
                     ^
../include/wx/osx/core/private.h:65:48: error: use of undeclared identifier 'NSString'; did you mean 'cString'?
WXDLLIMPEXP_BASE wxString wxStringWithNSString(NSString *nsstring);
                                               ^~~~~~~~
                                               cString
/Library/Developer/CommandLineTools/SDKs/MacOSX14.sdk/System/Library/Frameworks/Carbon.framework/Frameworks/OpenScripting.framework/Headers/ASRegistry.h:212:3: note: 'cString' declared here
  cString                       = cStringClass /* old name for cStringClass - can't be used in .r files*/
  ^
In file included from ../src/osx/core/evtloop_cf.cpp:34:
In file included from ../include/wx/osx/private.h:4:
../include/wx/osx/core/private.h:65:58: error: use of undeclared identifier 'nsstring'; did you mean 'cString'?
WXDLLIMPEXP_BASE wxString wxStringWithNSString(NSString *nsstring);
                                                         ^~~~~~~~
                                                         cString
/Library/Developer/CommandLineTools/SDKs/MacOSX14.sdk/System/Library/Frameworks/Carbon.framework/Frameworks/OpenScripting.framework/Headers/ASRegistry.h:212:3: note: 'cString' declared here
  cString                       = cStringClass /* old name for cStringClass - can't be used in .r files*/
  ^
In file included from ../src/osx/core/evtloop_cf.cpp:34:
In file included from ../include/wx/osx/private.h:4:
../include/wx/osx/core/private.h:65:27: error: calling a private constructor of class 'wxString'
WXDLLIMPEXP_BASE wxString wxStringWithNSString(NSString *nsstring);
                          ^
../include/wx/string.h:324:3: note: declared private here
  wxString(int);
  ^
In file included from ../src/osx/core/evtloop_cf.cpp:34:
In file included from ../include/wx/osx/private.h:4:
../include/wx/osx/core/private.h:66:18: error: unknown type name 'NSString'; did you mean 'wxString'?
WXDLLIMPEXP_BASE NSString* wxNSStringWithWxString(const wxString &wxstring);
                 ^~~~~~~~
                 wxString
../include/wx/osx/core/cfstring.h:25:28: note: 'wxString' declared here
class WXDLLIMPEXP_FWD_BASE wxString;
                           ^
In file included from ../src/osx/core/evtloop_cf.cpp:34:
../include/wx/osx/private.h:6:5: warning: 'wxOSX_USE_IPHONE' is not defined, evaluates to 0 [-Wundef]
#if wxOSX_USE_IPHONE
    ^
../include/wx/osx/private.h:8:7: warning: 'wxOSX_USE_COCOA' is not defined, evaluates to 0 [-Wundef]
#elif wxOSX_USE_COCOA
      ^
3 warnings and 5 errors generated.
make: *** [basedll_evtloop_cf.o] Error 1

(Initially I tried on 10.6 for ppc, that failed, but that is not an officially supported system; however, Sonoma is supposed to be supported, I believe.)

@oneeyeman1
Copy link
Contributor

@barracuda156 , what is your exact configure line? And if you don't want OSX - you can use any system.

@vadz vadz changed the title How to build wxGTK 3.2 on macOS (without Cocoa)? Building wxGTK 3.2 under macOS doesn't work Apr 12, 2024
@vadz
Copy link
Contributor

vadz commented Apr 12, 2024

Assuming you did use --with-gtk, this indeed looks like a bug.

I can't test this easily because I don't have GTK on my Mac (and don't really want to install it there), but it looks like CoreFoundation headers are not getting included.

@vadz vadz reopened this Apr 12, 2024
@vadz vadz added macOS Specific to Cocoa macOS port GTK labels Apr 12, 2024
@barracuda156
Copy link
Author

@vadz Ok, for the sake of making sure, I cloned the master, updated modules and ran whatever the defaults configure has. It failed:

/Users/svacchanda/Develop/wxWidgets/bk-deps g++ -std=gnu++11 -mmacosx-version-min=10.10 -c -o basedll_core_mimetype.o     -I/Users/svacchanda/Develop/wxWidgets/lib/wx/include/gtk3-unicode-3.3 -I./include -D_FILE_OFFSET_BITS=64 -I/opt/local/include/gtk-3.0 -I/opt/local/include/at-spi2-atk/2.0 -I/opt/local/include/at-spi-2.0 -I/opt/local/include -I/opt/local/include/dbus-1.0 -I/opt/local/lib/dbus-1.0/include -I/opt/local/include/gio-unix-2.0 -I/opt/local/include/cairo -I/opt/local/include/pango-1.0 -I/opt/local/include/harfbuzz -I/opt/local/include/fribidi -I/opt/local/include/atk-1.0 -I/opt/local/include/pixman-1 -I/opt/local/include/freetype2 -I/opt/local/include/gdk-pixbuf-2.0 -I/opt/local/include/libpng16 -I/opt/local/include/glib-2.0 -I/opt/local/lib/glib-2.0/include  -D__WXGTK__      -DWXBUILDING -DwxUSE_GUI=0 -DWXMAKINGDLL_BASE -DwxUSE_BASE=1 -dynamic -fPIC -DPIC -Wall -Wundef -Wunused-parameter -Wno-ctor-dtor-privacy -Woverloaded-virtual -O2 -I/opt/local/include/pango-1.0 -I/opt/local/include/harfbuzz -I/opt/local/include -I/opt/local/include/fribidi -I/opt/local/include/cairo -I/opt/local/include/pixman-1 -I/opt/local/include/glib-2.0 -I/opt/local/lib/glib-2.0/include -I/opt/local/include/freetype2 -I/opt/local/include/libpng16 -I/opt/local/include/gdk-pixbuf-2.0 -I/opt/local/include/gtk-3.0/unix-print -I/opt/local/include/gtk-3.0 -I/opt/local/include/at-spi2-atk/2.0 -I/opt/local/include/at-spi-2.0 -I/opt/local/include/dbus-1.0 -I/opt/local/lib/dbus-1.0/include -I/opt/local/include/gio-unix-2.0 -I/opt/local/include/atk-1.0 -I/opt/local/include/libsecret-1 -I/opt/local/include/gstreamer-1.0 -I/opt/local/include/orc-0.4 -fno-common  -fvisibility=hidden -fvisibility-inlines-hidden   ./src/osx/core/mimetype.cpp
In file included from ./src/osx/core/mimetype.cpp:20:
In file included from ./include/wx/osx/private.h:4:
In file included from ./include/wx/osx/core/private.h:22:
./include/wx/osx/core/cfarray.h:55:14: error: unknown type name 'WX_NSArray'
    operator WX_NSArray() { return (WX_NSArray) this->get(); }
             ^
In file included from ./src/osx/core/mimetype.cpp:20:
In file included from ./include/wx/osx/private.h:4:
./include/wx/osx/core/private.h:42:22: warning: 'wxOSX_USE_IPHONE' is not defined, evaluates to 0 [-Wundef]
#if ( !wxUSE_GUI && !wxOSX_USE_IPHONE ) || wxOSX_USE_COCOA_OR_CARBON
                     ^
./include/wx/osx/core/private.h:64:48: error: use of undeclared identifier 'NSString'; did you mean 'cString'?
WXDLLIMPEXP_BASE wxString wxStringWithNSString(NSString *nsstring);
                                               ^~~~~~~~
                                               cString
/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/Carbon.framework/Frameworks/OpenScripting.framework/Headers/ASRegistry.h:212:3: note: 'cString' declared here
  cString                       = cStringClass /* old name for cStringClass - can't be used in .r files*/
  ^
In file included from ./src/osx/core/mimetype.cpp:20:
In file included from ./include/wx/osx/private.h:4:
./include/wx/osx/core/private.h:64:58: error: use of undeclared identifier 'nsstring'; did you mean 'cString'?
WXDLLIMPEXP_BASE wxString wxStringWithNSString(NSString *nsstring);
                                                         ^~~~~~~~
                                                         cString
/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/Carbon.framework/Frameworks/OpenScripting.framework/Headers/ASRegistry.h:212:3: note: 'cString' declared here
  cString                       = cStringClass /* old name for cStringClass - can't be used in .r files*/
  ^
In file included from ./src/osx/core/mimetype.cpp:20:
In file included from ./include/wx/osx/private.h:4:
./include/wx/osx/core/private.h:64:27: error: calling a private constructor of class 'wxString'
WXDLLIMPEXP_BASE wxString wxStringWithNSString(NSString *nsstring);
                          ^
./include/wx/string.h:381:3: note: declared private here
  wxString(int);
  ^
In file included from ./src/osx/core/mimetype.cpp:20:
In file included from ./include/wx/osx/private.h:4:
./include/wx/osx/core/private.h:65:18: error: unknown type name 'NSString'; did you mean 'wxString'?
WXDLLIMPEXP_BASE NSString* wxNSStringWithWxString(const wxString &wxstring);
                 ^~~~~~~~
                 wxString
./include/wx/osx/core/cfstring.h:24:28: note: 'wxString' declared here
class WXDLLIMPEXP_FWD_BASE wxString;
                           ^
In file included from ./src/osx/core/mimetype.cpp:20:
./include/wx/osx/private.h:6:5: warning: 'wxOSX_USE_IPHONE' is not defined, evaluates to 0 [-Wundef]
#if wxOSX_USE_IPHONE
    ^
./include/wx/osx/private.h:8:7: warning: 'wxOSX_USE_COCOA' is not defined, evaluates to 0 [-Wundef]
#elif wxOSX_USE_COCOA
      ^
3 warnings and 5 errors generated.
make: *** [basedll_core_mimetype.o] Error 1

Specifically, I did just this:

cd /Users/svacchanda/Develop/wxWidgets/
export PATH=/opt/local/bin:/opt/local/sbin:/usr/bin:/usr/sbin:/bin:sbin
git submodule update --init
./configure --with-gtk=3
make

(Originally I tried from Macports, just editing the portfile to use GTK (since Macports’s wxGTK-3.0 builds and works perfectly fine), but it is confirmed to fail outside of Macports too.)

@barracuda156
Copy link
Author

This looks very wrong by the way:

% ./configure --with-gtk=3
checking build system type... aarch64-apple-darwin23.4.0
checking host system type... aarch64-apple-darwin23.4.0
checking for toolkit... gtk
checking for gcc... gcc
checking whether the C compiler works... yes
checking for C compiler default output file name... a.out
checking for suffix of executables... 
checking whether we are cross compiling... no
checking for suffix of object files... o
checking whether we are using the GNU C compiler... yes
checking whether gcc accepts -g... yes
checking for gcc option to accept ISO C89... none needed
checking whether we are using the Intel C compiler... no
checking how to run the C preprocessor... gcc -E
checking for grep that handles long lines and -e... /opt/local/bin/ggrep
checking for egrep... /opt/local/bin/ggrep -E
checking whether gcc needs -traditional... no
checking for g++... g++
checking whether we are using the GNU C++ compiler... yes
checking whether g++ accepts -g... yes
checking whether we are using the Intel C++ compiler... no
checking whether we are using the IBM xlC C++ compiler... no
checking whether g++ supports C++11 features by default... no
checking whether g++ supports C++11 features with -std=gnu++11... yes
checking for ar... ar
checking if C compiler (gcc -mmacosx-version-min=10.10) works with SDK/version options... yes
checking if C++ compiler (g++ -std=gnu++11 -mmacosx-version-min=10.10) works with SDK/version options... yes
checking if CoreFoundation/CFBase.h is usable... yes

macOS 10.10 had no arm64 in SDK. The earliest sensible SDK specifically for arm64 is macOS 11.

@vadz
Copy link
Contributor

vadz commented Apr 13, 2024

Sorry, it looks like this is genuinely broken. I think I know how to fix the WX_NSArray error (this needs to be defined for __APPLE__ and not just __WXMAC__ in `wx/defs.h), but the other ones look less clear and I'm probably not going to be able to do it blindly. Somebody actually interested in using wxGTK under macOS would have to look at it.

As for aarch64 in configure output, this is just what config.guess returns, and it's probably correct (at least if you do have an ARM Mac), this is unrelated to the target arch which can/must still be x86_64.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
build Any build issue (with or without CMake) GTK macOS Specific to Cocoa macOS port
Projects
None yet
Development

No branches or pull requests

3 participants