pkulchenko / wxlua

wxlua: Lua bindings for wxWidgets cross-platform GUI toolkit; supports Lua 5.1, 5.2, 5.3, 5.4, LuaJIT and wxWidgets 3.x
304 stars 59 forks source link

Building from current master seems broken #78

Closed alerque closed 4 years ago

alerque commented 4 years ago

I'm trying to update the wxlua-git package on Arch Linux to build again. The wxlua package at v3.0.0.9 currently builds fine against the system default Lua 5.4. Using almost the same build script against v3.0.0.9-30-g8b1faba fails to build. It looks like the last time I successfully built the package was v3.0.0.9-22-gdfd9963, so this is probably something in the last 8 commits, but given that something else on the system could have changed I'm not sure on that yet.

After extracting the sources and changing into the wxLua directory, I'm configuring it like this:

cmake -S . -B build \
    -DCMAKE_INSTALL_PREFIX=/usr \
    -DwxLua_LUA_LIBRARY_USE_BUILTIN=FALSE \
    -DwxLua_LUA_LIBRARY_BUILD_SHARED=TRUE \
    -DwxLua_LUA_LIBRARY="/usr/lib/liblua.so" \
    -DwxLua_LUA_INCLUDE_DIR="/usr/include/" \
    -DCMAKE_BUILD_TYPE=Release \
    -DwxWidgets_COMPONENTS="stc;gl;html;aui;adv;core;net;base" \
    -DwxLuaBind_COMPONENTS="stc;gl;html;aui;adv;core;net;base" \
    -DBUILD_SHARED_LIBS=TRUE

...then building it like this:

make -C build

The cmake proccess seems to complete okay, then make gets to 33% before going kaput with some compiler errors working on cpp sources. Here is a full log:

-- * ---------------------------------------------------------------------------
-- * CMake command line options and tips specific to this project
-- *
-- * In the CMake GUI you can set values and press configure a few times
-- * and until there are no more red items, then press generate.
-- *
-- * Usage: cmake -D[OPTION_NAME]=[OPTION_VALUE] /path/to/CMakeLists.txt/
-- * ---------------------------------------------------------------------------
-- * -DHELP=TRUE
-- *   Show this help message and exit, no files will be generated.
-- * -DCMAKE_BUILD_TYPE=[Debug, Release, RelWithDebInfo, MinSizeRel] : (Default Debug)
-- *   Makefiles : You must set the build type to Debug, Release...
-- *   MSVC GUI  : No need to set this since you can choose it in the GUI.
-- * -DBUILD_SHARED_LIBS=[TRUE, FALSE] : (Default static in MSW, shared in Linux)
-- *   Build shared (.DLL or .so) or static (.lib or .a) libraries.
-- * ---------------------------------------------------------------------------
--
--
-- *****************************************************************************
-- * BUILD TYPE:        Release
-- * BUILD_SHARED_LIBS: TRUE
-- *****************************************************************************
-- * System is 32-bit FALSE, is 64-bit TRUE
-- *****************************************************************************
-- * CMAKE_SOURCE_DIR = /home/caleb/projects/aur/wxlua-git/src/wxlua/wxLua
-- * CMAKE_BINARY_DIR = /home/caleb/projects/aur/wxlua-git/src/wxlua/wxLua/build
-- *****************************************************************************
--
-- * ---------------------------------------------------------------------------
-- * wxWidgets library settings :
-- *
-- * Note that ONLY an all shared (DLL) or all static build is supported.
-- *   I.E. If you choose shared you must link to shared wxWidgets libs.
-- *   Set -DBUILD_SHARED_LIBS=[TRUE, FALSE] to control shared/static lib.
-- *
-- * Finding wxWidgets for MSW and MSVC
-- * -DwxWidgets_ROOT_DIR=[path] : (e.g. /path/to/wxWidgets/)
-- *   Path to the root of the wxWidgets build, must at least set this.
-- * -DwxWidgets_LIB_DIR=[path] : (e.g. /path/to/wxWidgets/lib/vc_lib/)
-- *   Path to the wxWidgets lib dir also set this if libs can't be found.
-- * -DwxWidgets_CONFIGURATION=[configuration] :
-- *   Set wxWidgets configuration; e.g. msw, mswu, mswunivu...
-- *   Where 'u' = unicode and 'd' = debug.
-- *   MSVC GUI : You need only choose msw, mswu, mswuniv, mswunivu since
-- *              release or debug mode is chosen in the GUI.
-- * -DwxWidgets_COMPONENTS=[...stc;html;adv;core;base or mono] :
-- *   For non-monolithic builds choose the wxWidgets libs to link to.
-- *    xrc;xml;gl;net;media;propgrid;richtext;aui;stc;html;adv;core;base
-- *   For monolithic builds choose mono and the contribs libs.
-- *    stc;mono
-- *   The extra decorations, e.g. wxmsw28ud_adv.lib, will be searched for.
-- *   Libs that cannot be found will be printed below, please fix/remove
-- *   them to be able to build this project.
-- *   You will get compilation/linker errors if wxWidgets is not found.
-- *
-- * Finding wxWidgets for GCC and Unix type systems
-- * -DwxWidgets_CONFIG_EXECUTABLE=[path/to/wx-config] :
-- *   Specify path to wx-config script for GCC and Unix type builds
-- * ---------------------------------------------------------------------------
--
-- * Using these wxWidgets components: stc;gl;html;aui;adv;core;net;base
-- *
-- * Found wxWidgets :
-- * - wxWidgets_VERSION           = 3.0.5 = 3.0.5
-- * - wxWidgets_COMPONENTS        = stc;gl;html;aui;adv;core;net;base
-- * - wxWidgets_INCLUDE_DIRS      = /usr/lib/wx/include/gtk2-unicode-3.0;/usr/include/wx-3.0
-- * - wxWidgets_LIBRARY_DIRS      =
-- * - wxWidgets_LIBRARIES         = -pthread;;;-lwx_gtk2u_stc-3.0;-lwx_gtk2u_gl-3.0;-lwx_gtk2u_html-3.0;-lwx_gtk2u_aui-3.0;-lwx_gtk2u_adv-3.0;-lwx_gtk2u_core-3.0;-lwx_baseu_net-3.0;-lwx_baseu-3.0
-- * - wxWidgets_CXX_FLAGS         = -pthread
-- * - wxWidgets_DEFINITIONS       = _FILE_OFFSET_BITS=64;__WXGTK__
-- * - wxWidgets_DEFINITIONS_DEBUG =
-- * - wxWidgets_PORTNAME          = gtk2
-- * - wxWidgets_UNIVNAME          =
-- * - wxWidgets_UNICODEFLAG       = u
-- * - wxWidgets_DEBUGFLAG         =
-- *
-- * WARNING: Specified wxLuaBinding lib 'webview' in variable wxLuaBind_COMPONENTS is missing from wxWidgets_COMPONENTS so it will not be compiled.
-- * WARNING: Specified wxLuaBinding lib 'xrc' in variable wxLuaBind_COMPONENTS is missing from wxWidgets_COMPONENTS so it will not be compiled.
-- * WARNING: Specified wxLuaBinding lib 'richtext' in variable wxLuaBind_COMPONENTS is missing from wxWidgets_COMPONENTS so it will not be compiled.
-- * WARNING: Specified wxLuaBinding lib 'propgrid' in variable wxLuaBind_COMPONENTS is missing from wxWidgets_COMPONENTS so it will not be compiled.
-- * WARNING: Specified wxLuaBinding lib 'media' in variable wxLuaBind_COMPONENTS is missing from wxWidgets_COMPONENTS so it will not be compiled.
-- * WARNING: Specified wxLuaBinding lib 'xml' in variable wxLuaBind_COMPONENTS is missing from wxWidgets_COMPONENTS so it will not be compiled.
-- * wxLua using external/system Lua library :
-- *   - include dir : /usr/include/
-- *   - library     : /usr/lib/liblua.so
-- Could NOT find Doxygen (missing: DOXYGEN_EXECUTABLE)
-- * WARNING: Doxygen NOT found, wxLua_doxygen target will not be generated.
-- Configuring done
-- Generating done
-- Build files have been written to: /home/caleb/projects/aur/wxlua-git/src/wxlua/wxLua/build
make: Entering directory '/home/caleb/projects/aur/wxlua-git/src/wxlua/wxLua/build'
make[1]: Entering directory '/home/caleb/projects/aur/wxlua-git/src/wxlua/wxLua/build'
make[2]: Entering directory '/home/caleb/projects/aur/wxlua-git/src/wxlua/wxLua/build'
Scanning dependencies of target wxLuaLib
make[2]: Leaving directory '/home/caleb/projects/aur/wxlua-git/src/wxlua/wxLua/build'
make[2]: Entering directory '/home/caleb/projects/aur/wxlua-git/src/wxlua/wxLua/build'
[  1%] Building C object modules/wxlua/CMakeFiles/wxLuaLib.dir/bit.c.o
[  2%] Building CXX object modules/wxlua/CMakeFiles/wxLuaLib.dir/dummy.cpp.o
[  3%] Building C object modules/wxlua/CMakeFiles/wxLuaLib.dir/lbitlib.c.o
[  4%] Building CXX object modules/wxlua/CMakeFiles/wxLuaLib.dir/wxlbind.cpp.o
[  4%] Building CXX object modules/wxlua/CMakeFiles/wxLuaLib.dir/wxlcallb.cpp.o
[  5%] Building CXX object modules/wxlua/CMakeFiles/wxLuaLib.dir/wxlconsole.cpp.o
[  6%] Building CXX object modules/wxlua/CMakeFiles/wxLuaLib.dir/wxllua.cpp.o
[  7%] Building CXX object modules/wxlua/CMakeFiles/wxLuaLib.dir/wxlobject.cpp.o
[  8%] Building CXX object modules/wxlua/CMakeFiles/wxLuaLib.dir/wxlstate.cpp.o
[  9%] Building CXX object modules/wxlua/CMakeFiles/wxLuaLib.dir/wxlua_bind.cpp.o
[  9%] Linking CXX shared library ../../lib/Release/libwxlua-wx30gtk2u-3.0.0.9.so
make[2]: Leaving directory '/home/caleb/projects/aur/wxlua-git/src/wxlua/wxLua/build'
[  9%] Built target wxLuaLib
make[2]: Entering directory '/home/caleb/projects/aur/wxlua-git/src/wxlua/wxLua/build'
Scanning dependencies of target wxLuaBindLib
make[2]: Leaving directory '/home/caleb/projects/aur/wxlua-git/src/wxlua/wxLua/build'
make[2]: Entering directory '/home/caleb/projects/aur/wxlua-git/src/wxlua/wxLua/build'
[  9%] Building CXX object modules/wxbind/CMakeFiles/wxLuaBindLib.dir/src/wxgl_bind.cpp.o
[ 10%] Building CXX object modules/wxbind/CMakeFiles/wxLuaBindLib.dir/src/wxstc_bind.cpp.o
[ 11%] Building CXX object modules/wxbind/CMakeFiles/wxLuaBindLib.dir/src/wxhtml_bind.cpp.o
[ 12%] Building CXX object modules/wxbind/CMakeFiles/wxLuaBindLib.dir/src/wxhtml_wxlhtml.cpp.o
[ 13%] Building CXX object modules/wxbind/CMakeFiles/wxLuaBindLib.dir/src/wxaui_bind.cpp.o
[ 14%] Building CXX object modules/wxbind/CMakeFiles/wxLuaBindLib.dir/src/wxadv_bind.cpp.o
[ 14%] Building CXX object modules/wxbind/CMakeFiles/wxLuaBindLib.dir/src/wxadv_wxladv.cpp.o
[ 15%] Building CXX object modules/wxbind/CMakeFiles/wxLuaBindLib.dir/src/wxcore_appframe.cpp.o
[ 16%] Building CXX object modules/wxbind/CMakeFiles/wxLuaBindLib.dir/src/wxcore_bind.cpp.o
[ 17%] Building CXX object modules/wxbind/CMakeFiles/wxLuaBindLib.dir/src/wxcore_clipdrag.cpp.o
[ 18%] Building CXX object modules/wxbind/CMakeFiles/wxLuaBindLib.dir/src/wxcore_controls.cpp.o
[ 19%] Building CXX object modules/wxbind/CMakeFiles/wxLuaBindLib.dir/src/wxcore_core.cpp.o
[ 19%] Building CXX object modules/wxbind/CMakeFiles/wxLuaBindLib.dir/src/wxcore_defsutils.cpp.o
[ 20%] Building CXX object modules/wxbind/CMakeFiles/wxLuaBindLib.dir/src/wxcore_dialogs.cpp.o
[ 21%] Building CXX object modules/wxbind/CMakeFiles/wxLuaBindLib.dir/src/wxcore_event.cpp.o
[ 22%] Building CXX object modules/wxbind/CMakeFiles/wxLuaBindLib.dir/src/wxcore_gdi.cpp.o
[ 23%] Building CXX object modules/wxbind/CMakeFiles/wxLuaBindLib.dir/src/wxcore_geometry.cpp.o
[ 24%] Building CXX object modules/wxbind/CMakeFiles/wxLuaBindLib.dir/src/wxcore_graphics.cpp.o
[ 24%] Building CXX object modules/wxbind/CMakeFiles/wxLuaBindLib.dir/src/wxcore_help.cpp.o
[ 25%] Building CXX object modules/wxbind/CMakeFiles/wxLuaBindLib.dir/src/wxcore_image.cpp.o
[ 26%] Building CXX object modules/wxbind/CMakeFiles/wxLuaBindLib.dir/src/wxcore_mdi.cpp.o
[ 27%] Building CXX object modules/wxbind/CMakeFiles/wxLuaBindLib.dir/src/wxcore_menutool.cpp.o
[ 28%] Building CXX object modules/wxbind/CMakeFiles/wxLuaBindLib.dir/src/wxcore_picker.cpp.o
[ 29%] Building CXX object modules/wxbind/CMakeFiles/wxLuaBindLib.dir/src/wxcore_print.cpp.o
[ 30%] Building CXX object modules/wxbind/CMakeFiles/wxLuaBindLib.dir/src/wxcore_sizer.cpp.o
[ 30%] Building CXX object modules/wxbind/CMakeFiles/wxLuaBindLib.dir/src/wxcore_windows.cpp.o
[ 31%] Building CXX object modules/wxbind/CMakeFiles/wxLuaBindLib.dir/src/wxcore_wxlcore.cpp.o
[ 32%] Building CXX object modules/wxbind/CMakeFiles/wxLuaBindLib.dir/src/wxnet_bind.cpp.o
[ 33%] Building CXX object modules/wxbind/CMakeFiles/wxLuaBindLib.dir/src/wxbase_base.cpp.o
/home/caleb/projects/aur/wxlua-git/src/wxlua/wxLua/modules/wxbind/src/wxbase_base.cpp: In function ‘int wxLua_wxMsgCatalog_GetString(lua_State*)’:
/home/caleb/projects/aur/wxlua-git/src/wxlua/wxLua/modules/wxbind/src/wxbase_base.cpp:4497:61: error: no matching function for call to ‘wxMsgCatalog::GetString(const wxString&, unsigned int&, const wxString&)’
 4497 |     wxString* returns = (wxString*)self->GetString(sz, n, ct);
      |                                                             ^
In file included from /usr/include/wx-3.0/wx/intl.h:17,
                 from /usr/include/wx-3.0/wx/wx.h:22,
                 from /home/caleb/projects/aur/wxlua-git/src/wxlua/wxLua/modules/wxbind/src/wxbase_base.cpp:15:
/usr/include/wx-3.0/wx/translation.h:82:21: note: candidate: ‘const wxString* wxMsgCatalog::GetString(const wxString&, unsigned int) const’
   82 |     const wxString *GetString(const wxString& sz, unsigned n = UINT_MAX) const;
      |                     ^~~~~~~~~
/usr/include/wx-3.0/wx/translation.h:82:21: note:   candidate expects 2 arguments, 3 provided
/home/caleb/projects/aur/wxlua-git/src/wxlua/wxLua/modules/wxbind/src/wxbase_base.cpp: In function ‘int wxLua_wxTranslations_GetTranslatedString1(lua_State*)’:
/home/caleb/projects/aur/wxlua-git/src/wxlua/wxLua/modules/wxbind/src/wxbase_base.cpp:4996:92: error: no matching function for call to ‘wxTranslations::GetTranslatedString(const wxString&, unsigned int&, const wxString&, const wxString&)’
 4996 |     wxString* returns = (wxString*)self->GetTranslatedString(origString, n, domain, context);
      |                                                                                            ^
In file included from /usr/include/wx-3.0/wx/intl.h:17,
                 from /usr/include/wx-3.0/wx/wx.h:22,
                 from /home/caleb/projects/aur/wxlua-git/src/wxlua/wxLua/modules/wxbind/src/wxbase_base.cpp:15:
/usr/include/wx-3.0/wx/translation.h:156:21: note: candidate: ‘const wxString* wxTranslations::GetTranslatedString(const wxString&, const wxString&) const’
  156 |     const wxString *GetTranslatedString(const wxString& origString,
      |                     ^~~~~~~~~~~~~~~~~~~
/usr/include/wx-3.0/wx/translation.h:156:21: note:   candidate expects 2 arguments, 4 provided
/usr/include/wx-3.0/wx/translation.h:158:21: note: candidate: ‘const wxString* wxTranslations::GetTranslatedString(const wxString&, unsigned int, const wxString&) const’
  158 |     const wxString *GetTranslatedString(const wxString& origString,
      |                     ^~~~~~~~~~~~~~~~~~~
/usr/include/wx-3.0/wx/translation.h:158:21: note:   candidate expects 3 arguments, 4 provided
/home/caleb/projects/aur/wxlua-git/src/wxlua/wxLua/modules/wxbind/src/wxbase_base.cpp: In function ‘int wxLua_wxTranslations_GetTranslatedString(lua_State*)’:
/home/caleb/projects/aur/wxlua-git/src/wxlua/wxLua/modules/wxbind/src/wxbase_base.cpp:5020:74: error: conversion from ‘const wxString’ to ‘unsigned int’ is ambiguous
 5020 |     wxString* returns = (wxString*)self->GetTranslatedString(origString, domain, context);
      |                                                                          ^~~~~~
In file included from /usr/include/wx-3.0/wx/memory.h:15,
                 from /usr/include/wx-3.0/wx/object.h:19,
                 from /usr/include/wx-3.0/wx/wx.h:15,
                 from /home/caleb/projects/aur/wxlua-git/src/wxlua/wxLua/modules/wxbind/src/wxbase_base.cpp:15:
/usr/include/wx-3.0/wx/string.h:1623:5: note: candidate: ‘wxString::operator const char*() const’ (near match)
 1623 |     operator const char*() const { return c_str(); }
      |     ^~~~~~~~
/usr/include/wx-3.0/wx/string.h:1623:5: note:   no known conversion from ‘const char*’ to ‘unsigned int’
/usr/include/wx-3.0/wx/string.h:1624:5: note: candidate: ‘wxString::operator const wchar_t*() const’ (near match)
 1624 |     operator const wchar_t*() const { return c_str(); }
      |     ^~~~~~~~
/usr/include/wx-3.0/wx/string.h:1624:5: note:   no known conversion from �const wchar_t*’ to ‘unsigned int’
/usr/include/wx-3.0/wx/string.h:1629:5: note: candidate: ‘wxString::operator const void*() const’ (near match)
 1629 |     operator const void*() const { return c_str(); }
      |     ^~~~~~~~
/usr/include/wx-3.0/wx/string.h:1629:5: note:   no known conversion from ‘const void*’ to ‘unsigned int’
In file included from /usr/include/wx-3.0/wx/intl.h:17,
                 from /usr/include/wx-3.0/wx/wx.h:22,
                 from /home/caleb/projects/aur/wxlua-git/src/wxlua/wxLua/modules/wxbind/src/wxbase_base.cpp:15:
/usr/include/wx-3.0/wx/translation.h:159:50: note:   initializing argument 2 of ‘const wxString* wxTranslations::GetTranslatedString(const wxString&, unsigned int, const wxString&) const’
  159 |                                         unsigned n,
      |                                         ~~~~~~~~~^
make[2]: *** [modules/wxbind/CMakeFiles/wxLuaBindLib.dir/build.make:446: modules/wxbind/CMakeFiles/wxLuaBindLib.dir/src/wxbase_base.cpp.o] Error 1
make[2]: Leaving directory '/home/caleb/projects/aur/wxlua-git/src/wxlua/wxLua/build'
make[1]: *** [CMakeFiles/Makefile2:317: modules/wxbind/CMakeFiles/wxLuaBindLib.dir/all] Error 2
make[1]: Leaving directory '/home/caleb/projects/aur/wxlua-git/src/wxlua/wxLua/build'
make: *** [Makefile:171: all] Error 2
make: Leaving directory '/home/caleb/projects/aur/wxlua-git/src/wxlua/wxLua/build'
pkulchenko commented 4 years ago

@alerque, I suspect it's related to a couple of wxTranslations calls that changed their signature between 3.0.5 (you are using) and the latest master. I pushed the changes to the master branch that should fix this. Can you confirm?

alerque commented 4 years ago

Much better, but not quite there. Got to 95% this time, here is the tail end of the build log:

[ 89%] Building CXX object modules/luamodule/CMakeFiles/wxLuaModule.dir/__/wxlua/wxllua.cpp.o
[ 90%] Building CXX object modules/luamodule/CMakeFiles/wxLuaModule.dir/__/wxlua/wxlobject.cpp.o
[ 91%] Building CXX object modules/luamodule/CMakeFiles/wxLuaModule.dir/__/wxlua/wxlstate.cpp.o
[ 92%] Building CXX object modules/luamodule/CMakeFiles/wxLuaModule.dir/__/wxlua/wxlua_bind.cpp.o
[ 93%] Linking CXX shared library ../../lib/Release/libwx.so
make[2]: Leaving directory '/home/caleb/projects/aur/wxlua-git/src/wxlua/wxLua/build'
[ 93%] Built target wxLuaModule
make[2]: Entering directory '/home/caleb/projects/aur/wxlua-git/src/wxlua/wxLua/build'
Scanning dependencies of target wxLua_app
make[2]: Leaving directory '/home/caleb/projects/aur/wxlua-git/src/wxlua/wxLua/build'
make[2]: Entering directory '/home/caleb/projects/aur/wxlua-git/src/wxlua/wxLua/build'
[ 94%] Building CXX object apps/wxlua/CMakeFiles/wxLua_app.dir/wxlua.cpp.o
[ 95%] Linking CXX executable ../../bin/Release/wxLua
/usr/bin/ld: ../../lib/Release/libwxlua_bind-wx30gtk2u-3.0.0.9.so: undefined reference to `wxPluralFormsCalculatorPtr::~wxPluralFormsCalculatorPtr()'
collect2: error: ld returned 1 exit status
make[2]: *** [apps/wxlua/CMakeFiles/wxLua_app.dir/build.make:109: bin/Release/wxLua] Error 1
make[2]: Leaving directory '/home/caleb/projects/aur/wxlua-git/src/wxlua/wxLua/build'
make[1]: *** [CMakeFiles/Makefile2:457: apps/wxlua/CMakeFiles/wxLua_app.dir/all] Error 2
make[1]: Leaving directory '/home/caleb/projects/aur/wxlua-git/src/wxlua/wxLua/build'
make: *** [Makefile:171: all] Error 2
make: Leaving directory '/home/caleb/projects/aur/wxlua-git/src/wxlua/wxLua/build'
pkulchenko commented 4 years ago

/usr/bin/ld: ../../lib/Release/libwxlua_bind-wx30gtk2u-3.0.0.9.so: undefined reference to `wxPluralFormsCalculatorPtr::~wxPluralFormsCalculatorPtr()'

Hm, not sure where this is coming from. There are no references to wxPluralFormsCalculatorPtr in wxlua. Any idea? It seems to be a reference in a private field of wxMsgCatalog, but not sure why it would be undefined. I don't get these errors with the current master; will try to build with 3.0.5.

pkulchenko commented 4 years ago

The destructor should be defined in wxDEFINE_SCOPED_PTR(wxPluralFormsCalculator, wxPluralFormsCalculatorPtr) call in translation.cpp. Not sure why it's not working; the ifdefs seem to be correct.

alerque commented 4 years ago

Could this have to do with the custom build options? Particularly the widget and bind component lists being specified manually...are you testing using the same options?

pkulchenko commented 4 years ago

Could this have to do with the custom build options? Particularly the widget and bind component lists being specified manually...are you testing using the same options?

Could be. Where do you see widget and bind components specified? It looks like my list of components is the same as yours (or at least mine has more, not fewer components):

Yours:

-DwxWidgets_COMPONENTS="stc;gl;html;aui;adv;core;net;base" \ -DwxLuaBind_COMPONENTS="stc;gl;html;aui;adv;core;net;base" \

Mine:

-DwxWidgets_COMPONENTS="xrc;xml;stc;gl;html;aui;adv;core;net;base" \ -DwxLuaBind_COMPONENTS="xrc;xml;stc;gl;html;aui;adv;core;net;base" \

pkulchenko commented 4 years ago

I'll have to try compiling on Linux; I just compiled with 3.0.5 on Windows without any issues.

/usr/bin/ld: ../../lib/Release/libwxlua_bind-wx30gtk2u-3.0.0.9.so: undefined reference to `wxPluralFormsCalculatorPtr::~wxPluralFormsCalculatorPtr()'

I noticed that you're using gtk2; can you try with gtk3 (--with-gtk=3 option for wxidgets) or are you set on using gtk2?

alerque commented 4 years ago

I noticed that you're using gtk2; can you try with gtk3 (--with-gtk=3 option for wxidgets) or are you set on using gtk2?

I actually had not noticed that. I have wxgtk2 on my system as a dependency for another project that doesn't support GTK3 yet, but I also have wxgtk3. I think it's probably the fault of this build system that it's detecting the lowest available version rather than highest. Here is a quick look at the files on my system from each:

$ yay -Qlq wxgtk2
/usr/
/usr/bin/
/usr/bin/wx-config
/usr/lib/
/usr/lib/libwx_gtk2u_adv-3.0.so
/usr/lib/libwx_gtk2u_adv-3.0.so.0
/usr/lib/libwx_gtk2u_adv-3.0.so.0.5.0
/usr/lib/libwx_gtk2u_aui-3.0.so
/usr/lib/libwx_gtk2u_aui-3.0.so.0
/usr/lib/libwx_gtk2u_aui-3.0.so.0.5.0
/usr/lib/libwx_gtk2u_core-3.0.so
/usr/lib/libwx_gtk2u_core-3.0.so.0
/usr/lib/libwx_gtk2u_core-3.0.so.0.5.0
/usr/lib/libwx_gtk2u_gl-3.0.so
/usr/lib/libwx_gtk2u_gl-3.0.so.0
/usr/lib/libwx_gtk2u_gl-3.0.so.0.5.0
/usr/lib/libwx_gtk2u_html-3.0.so
/usr/lib/libwx_gtk2u_html-3.0.so.0
/usr/lib/libwx_gtk2u_html-3.0.so.0.5.0
/usr/lib/libwx_gtk2u_media-3.0.so
/usr/lib/libwx_gtk2u_media-3.0.so.0
/usr/lib/libwx_gtk2u_media-3.0.so.0.5.0
/usr/lib/libwx_gtk2u_propgrid-3.0.so
/usr/lib/libwx_gtk2u_propgrid-3.0.so.0
/usr/lib/libwx_gtk2u_propgrid-3.0.so.0.5.0
/usr/lib/libwx_gtk2u_qa-3.0.so
/usr/lib/libwx_gtk2u_qa-3.0.so.0
/usr/lib/libwx_gtk2u_qa-3.0.so.0.5.0
/usr/lib/libwx_gtk2u_ribbon-3.0.so
/usr/lib/libwx_gtk2u_ribbon-3.0.so.0
/usr/lib/libwx_gtk2u_ribbon-3.0.so.0.5.0
/usr/lib/libwx_gtk2u_richtext-3.0.so
/usr/lib/libwx_gtk2u_richtext-3.0.so.0
/usr/lib/libwx_gtk2u_richtext-3.0.so.0.5.0
/usr/lib/libwx_gtk2u_stc-3.0.so
/usr/lib/libwx_gtk2u_stc-3.0.so.0
/usr/lib/libwx_gtk2u_stc-3.0.so.0.5.0
/usr/lib/libwx_gtk2u_xrc-3.0.so
/usr/lib/libwx_gtk2u_xrc-3.0.so.0
/usr/lib/libwx_gtk2u_xrc-3.0.so.0.5.0
/usr/lib/wx/
/usr/lib/wx/config/
/usr/lib/wx/config/gtk2-unicode-3.0
/usr/lib/wx/include/
/usr/lib/wx/include/gtk2-unicode-3.0/
/usr/lib/wx/include/gtk2-unicode-3.0/wx/
/usr/lib/wx/include/gtk2-unicode-3.0/wx/setup.h
/usr/share/
/usr/share/licenses/
/usr/share/licenses/wxgtk2/
/usr/share/licenses/wxgtk2/LICENSE
$ yay -Qlq wxgtk3
/usr/
/usr/bin/
/usr/bin/wx-config-gtk3
/usr/lib/
/usr/lib/libwx_gtk3u_adv-3.0.so
/usr/lib/libwx_gtk3u_adv-3.0.so.0
/usr/lib/libwx_gtk3u_adv-3.0.so.0.5.0
/usr/lib/libwx_gtk3u_aui-3.0.so
/usr/lib/libwx_gtk3u_aui-3.0.so.0
/usr/lib/libwx_gtk3u_aui-3.0.so.0.5.0
/usr/lib/libwx_gtk3u_core-3.0.so
/usr/lib/libwx_gtk3u_core-3.0.so.0
/usr/lib/libwx_gtk3u_core-3.0.so.0.5.0
/usr/lib/libwx_gtk3u_gl-3.0.so
/usr/lib/libwx_gtk3u_gl-3.0.so.0
/usr/lib/libwx_gtk3u_gl-3.0.so.0.5.0
/usr/lib/libwx_gtk3u_html-3.0.so
/usr/lib/libwx_gtk3u_html-3.0.so.0
/usr/lib/libwx_gtk3u_html-3.0.so.0.5.0
/usr/lib/libwx_gtk3u_media-3.0.so
/usr/lib/libwx_gtk3u_media-3.0.so.0
/usr/lib/libwx_gtk3u_media-3.0.so.0.5.0
/usr/lib/libwx_gtk3u_propgrid-3.0.so
/usr/lib/libwx_gtk3u_propgrid-3.0.so.0
/usr/lib/libwx_gtk3u_propgrid-3.0.so.0.5.0
/usr/lib/libwx_gtk3u_qa-3.0.so
/usr/lib/libwx_gtk3u_qa-3.0.so.0
/usr/lib/libwx_gtk3u_qa-3.0.so.0.5.0
/usr/lib/libwx_gtk3u_ribbon-3.0.so
/usr/lib/libwx_gtk3u_ribbon-3.0.so.0
/usr/lib/libwx_gtk3u_ribbon-3.0.so.0.5.0
/usr/lib/libwx_gtk3u_richtext-3.0.so
/usr/lib/libwx_gtk3u_richtext-3.0.so.0
/usr/lib/libwx_gtk3u_richtext-3.0.so.0.5.0
/usr/lib/libwx_gtk3u_stc-3.0.so
/usr/lib/libwx_gtk3u_stc-3.0.so.0
/usr/lib/libwx_gtk3u_stc-3.0.so.0.5.0
/usr/lib/libwx_gtk3u_webview-3.0.so
/usr/lib/libwx_gtk3u_webview-3.0.so.0
/usr/lib/libwx_gtk3u_webview-3.0.so.0.5.0
/usr/lib/libwx_gtk3u_xrc-3.0.so
/usr/lib/libwx_gtk3u_xrc-3.0.so.0
/usr/lib/libwx_gtk3u_xrc-3.0.so.0.5.0
/usr/lib/wx/
/usr/lib/wx/3.0/
/usr/lib/wx/3.0/web-extensions/
/usr/lib/wx/3.0/web-extensions/webkit2_extu-3.0.so
/usr/lib/wx/config/
/usr/lib/wx/config/gtk3-unicode-3.0
/usr/lib/wx/include/
/usr/lib/wx/include/gtk3-unicode-3.0/
/usr/lib/wx/include/gtk3-unicode-3.0/wx/
/usr/lib/wx/include/gtk3-unicode-3.0/wx/setup.h
/usr/share/
/usr/share/licenses/
/usr/share/licenses/wxgtk3/
/usr/share/licenses/wxgtk3/LICENSE

What needs to happen (cmake options for building wxlua?) to use the GTK3 libraries in this case?

pkulchenko commented 4 years ago

You need to compile wxwidgets with gtk3 (add --with-gtk=3); there is nothing to specify for wxlua, as it will use whatever configuration wxwidgets is using.

pkulchenko commented 3 years ago

@alerque, I figured out undefined reference towxPluralFormsCalculatorPtr::~wxPluralFormsCalculatorPtr()'error while working on #80. You may need to set-DCMAKE_CXX_FLAGS="-DwxLUA_USE_wxTranslations=0"` for wxlua cmake, as the wxwidgets package you are using appears to be broken. You'll need the latest master branch for this option.