Always install scintilla and lexilla libs when STC is enabled (PR #23707)

68 views
Skip to first unread message

dvertx

unread,
Jul 11, 2023, 2:21:37 PM7/11/23
to wx-...@googlegroups.com, Subscribed

I see that stc sample gets linked with scintilla and lexilla, yet both libraries were not installed when building wxWidgets as shared libraries. libwxscintilla and libwxlexilla were built, but did not get installed with sudo make install command. Tested on Ubuntu 22.04.2 LTS


You can view, comment on, or merge this pull request online at:

  https://github.com/wxWidgets/wxWidgets/pull/23707

Commit Summary

  • 2d1c5d3 Always install scintilla and lexilla libs when STC is enabled

File Changes

(1 file)

Patch Links:


Reply to this email directly, view it on GitHub, or unsubscribe.
You are receiving this because you are subscribed to this thread.Message ID: <wxWidgets/wxWidgets/pull/23707@github.com>

Ian McInerney

unread,
Jul 11, 2023, 2:35:55 PM7/11/23
to wx-...@googlegroups.com, Subscribed

I think that is actually a bug with the sample's link line. The scintilla and lexilla libraries should be linked into the wxstc shared library already, so there shouldn't be a need for the static libraries to be installed and linked against by the user code when the shared library is used. (see https://github.com/wxWidgets/wxWidgets/blob/44b99195bc4395944bab8071c6d7adcbdcdf8773/Makefile.in#L13627 for where it is already linked into wxstc).


Reply to this email directly, view it on GitHub, or unsubscribe.

You are receiving this because you are subscribed to this thread.Message ID: <wxWidgets/wxWidgets/pull/23707/c1631311822@github.com>

dvertx

unread,
Jul 11, 2023, 2:53:09 PM7/11/23
to wx-...@googlegroups.com, Subscribed

I don't see that libwx_gtk3u_stc-3.3.so.0.0.0 exports any scintilla and lexilla methods. For example, there are no Scintilla::AutoComplete, Scintilla::CallTip etc, nor are there any LexerX12::Factory, Scintilla::LexerBase etc. And when you compile with --disable-shared, libwxscintilla-3.3.a and libwxlexilla-3.3.a gets installed within /usr/local/lib


Reply to this email directly, view it on GitHub, or unsubscribe.

You are receiving this because you are subscribed to this thread.Message ID: <wxWidgets/wxWidgets/pull/23707/c1631349060@github.com>

Ian McInerney

unread,
Jul 11, 2023, 3:12:05 PM7/11/23
to wx-...@googlegroups.com, Subscribed

I don't see that libwx_gtk3u_stc-3.3.so.0.0.0 exports any scintilla and lexilla methods.

wx provides a wrapper over scintilla and lexilla, so it doesn't rexport them, you use wx functions to access the underlying Scintilla objects instead.

And when you compile with --disable-shared, libwxscintilla-3.3.a and libwxlexilla-3.3.a gets installed within /usr/local/lib

That's because they are needed when wx is a static library. As a static library, wx_stc only includes the wx wrapper portion of the wxstc control, and so it has to provide the wxscintilla and wxlexilla libraries so the wx library can link properly. That is all handled at build time by for the shared library, so it isn't needed there.

As an experiment, you can remove the libraries for wxscintilla and wxlexilla from the link line in the makefile (see line 162 of the master version) and try it. I removed those two libraries and the stc sample still linked properly and opened.


Reply to this email directly, view it on GitHub, or unsubscribe.

You are receiving this because you are subscribed to this thread.Message ID: <wxWidgets/wxWidgets/pull/23707/c1631374460@github.com>

dvertx

unread,
Jul 11, 2023, 3:14:02 PM7/11/23
to wx-...@googlegroups.com, Subscribed

I did a further test. I went directly into ./sample/stc directory and ran make.
Below is the output:

~/wxWidgets/debug/samples/stc$ make
/home/dvertx/wxWidgets/debug/bk-deps g++ -c -o stctest_stctest.o -I/home/dvertx/wxWidgets/debug/lib/wx/include/gtk3-unicode-3.3 -I../../../include -D_FILE_OFFSET_BITS=64 -pthread -I/usr/include/gtk-3.0 -I/usr/include/at-spi2-atk/2.0 -I/usr/include/at-spi-2.0 -I/usr/include/dbus-1.0 -I/usr/lib/x86_64-linux-gnu/dbus-1.0/include -I/usr/include/gio-unix-2.0 -I/usr/include/cairo -I/usr/include/pango-1.0 -I/usr/include/harfbuzz -I/usr/include/fribidi -I/usr/include/atk-1.0 -I/usr/include/pixman-1 -I/usr/include/uuid -I/usr/include/freetype2 -I/usr/include/gdk-pixbuf-2.0 -I/usr/include/libpng16 -I/usr/include/x86_64-linux-gnu -I/usr/include/libmount -I/usr/include/blkid -I/usr/include/glib-2.0 -I/usr/lib/x86_64-linux-gnu/glib-2.0/include  -D__WXGTK__      -I../../../samples/stc -DWXUSINGDLL -I../../../samples/stc/../../samples -pthread -Wall -Wundef -Wunused-parameter -Wno-ctor-dtor-privacy -Woverloaded-virtual -O2 -I/usr/include/pango-1.0 -I/usr/include/harfbuzz -I/usr/include/libmount -I/usr/include/blkid -I/usr/include/fribidi -I/usr/include/cairo -I/usr/include/pixman-1 -I/usr/include/glib-2.0 -I/usr/lib/x86_64-linux-gnu/glib-2.0/include -I/usr/include/uuid -I/usr/include/freetype2 -I/usr/include/libpng16 -I/usr/include/gtk-3.0/unix-print -I/usr/include/gtk-3.0 -I/usr/include/at-spi2-atk/2.0 -I/usr/include/at-spi-2.0 -I/usr/include/dbus-1.0 -I/usr/lib/x86_64-linux-gnu/dbus-1.0/include -I/usr/include/gio-unix-2.0 -I/usr/include/atk-1.0 -I/usr/include/gdk-pixbuf-2.0 -I/usr/include/x86_64-linux-gnu  -fvisibility=hidden -fvisibility-inlines-hidden -fPIC -DPIC   ../../../samples/stc/stctest.cpp
/home/dvertx/wxWidgets/debug/bk-deps g++ -c -o stctest_edit.o -I/home/dvertx/wxWidgets/debug/lib/wx/include/gtk3-unicode-3.3 -I../../../include -D_FILE_OFFSET_BITS=64 -pthread -I/usr/include/gtk-3.0 -I/usr/include/at-spi2-atk/2.0 -I/usr/include/at-spi-2.0 -I/usr/include/dbus-1.0 -I/usr/lib/x86_64-linux-gnu/dbus-1.0/include -I/usr/include/gio-unix-2.0 -I/usr/include/cairo -I/usr/include/pango-1.0 -I/usr/include/harfbuzz -I/usr/include/fribidi -I/usr/include/atk-1.0 -I/usr/include/pixman-1 -I/usr/include/uuid -I/usr/include/freetype2 -I/usr/include/gdk-pixbuf-2.0 -I/usr/include/libpng16 -I/usr/include/x86_64-linux-gnu -I/usr/include/libmount -I/usr/include/blkid -I/usr/include/glib-2.0 -I/usr/lib/x86_64-linux-gnu/glib-2.0/include  -D__WXGTK__      -I../../../samples/stc -DWXUSINGDLL -I../../../samples/stc/../../samples -pthread -Wall -Wundef -Wunused-parameter -Wno-ctor-dtor-privacy -Woverloaded-virtual -O2 -I/usr/include/pango-1.0 -I/usr/include/harfbuzz -I/usr/include/libmount -I/usr/include/blkid -I/usr/include/fribidi -I/usr/include/cairo -I/usr/include/pixman-1 -I/usr/include/glib-2.0 -I/usr/lib/x86_64-linux-gnu/glib-2.0/include -I/usr/include/uuid -I/usr/include/freetype2 -I/usr/include/libpng16 -I/usr/include/gtk-3.0/unix-print -I/usr/include/gtk-3.0 -I/usr/include/at-spi2-atk/2.0 -I/usr/include/at-spi-2.0 -I/usr/include/dbus-1.0 -I/usr/lib/x86_64-linux-gnu/dbus-1.0/include -I/usr/include/gio-unix-2.0 -I/usr/include/atk-1.0 -I/usr/include/gdk-pixbuf-2.0 -I/usr/include/x86_64-linux-gnu  -fvisibility=hidden -fvisibility-inlines-hidden -fPIC -DPIC   ../../../samples/stc/edit.cpp
/home/dvertx/wxWidgets/debug/bk-deps g++ -c -o stctest_prefs.o -I/home/dvertx/wxWidgets/debug/lib/wx/include/gtk3-unicode-3.3 -I../../../include -D_FILE_OFFSET_BITS=64 -pthread -I/usr/include/gtk-3.0 -I/usr/include/at-spi2-atk/2.0 -I/usr/include/at-spi-2.0 -I/usr/include/dbus-1.0 -I/usr/lib/x86_64-linux-gnu/dbus-1.0/include -I/usr/include/gio-unix-2.0 -I/usr/include/cairo -I/usr/include/pango-1.0 -I/usr/include/harfbuzz -I/usr/include/fribidi -I/usr/include/atk-1.0 -I/usr/include/pixman-1 -I/usr/include/uuid -I/usr/include/freetype2 -I/usr/include/gdk-pixbuf-2.0 -I/usr/include/libpng16 -I/usr/include/x86_64-linux-gnu -I/usr/include/libmount -I/usr/include/blkid -I/usr/include/glib-2.0 -I/usr/lib/x86_64-linux-gnu/glib-2.0/include  -D__WXGTK__      -I../../../samples/stc -DWXUSINGDLL -I../../../samples/stc/../../samples -pthread -Wall -Wundef -Wunused-parameter -Wno-ctor-dtor-privacy -Woverloaded-virtual -O2 -I/usr/include/pango-1.0 -I/usr/include/harfbuzz -I/usr/include/libmount -I/usr/include/blkid -I/usr/include/fribidi -I/usr/include/cairo -I/usr/include/pixman-1 -I/usr/include/glib-2.0 -I/usr/lib/x86_64-linux-gnu/glib-2.0/include -I/usr/include/uuid -I/usr/include/freetype2 -I/usr/include/libpng16 -I/usr/include/gtk-3.0/unix-print -I/usr/include/gtk-3.0 -I/usr/include/at-spi2-atk/2.0 -I/usr/include/at-spi-2.0 -I/usr/include/dbus-1.0 -I/usr/lib/x86_64-linux-gnu/dbus-1.0/include -I/usr/include/gio-unix-2.0 -I/usr/include/atk-1.0 -I/usr/include/gdk-pixbuf-2.0 -I/usr/include/x86_64-linux-gnu  -fvisibility=hidden -fvisibility-inlines-hidden -fPIC -DPIC   ../../../samples/stc/prefs.cpp
g++ -o stctest  stctest_stctest.o stctest_edit.o stctest_prefs.o    -L/home/dvertx/wxWidgets/debug/lib   -Wl,-rpath,/home/dvertx/wxWidgets/debug/lib   -pthread  -lwx_gtk3u_stc-3.3  -lwx_gtk3u_core-3.3  -lwx_baseu-3.3         -lgtk-3 -lgdk-3 -lpangocairo-1.0 -lpango-1.0 -lharfbuzz -latk-1.0 -lcairo-gobject -lcairo -lgdk_pixbuf-2.0 -lgio-2.0 -lgobject-2.0 -lgthread-2.0 -pthread -lglib-2.0 -lX11 -lXxf86vm -lSM -lxkbcommon -lgtk-3 -lgdk-3 -lpangocairo-1.0 -lpango-1.0 -lharfbuzz -latk-1.0 -lcairo-gobject -lcairo -lgdk_pixbuf-2.0 -lgio-2.0 -lgobject-2.0 -lglib-2.0 -lXtst -lpangoft2-1.0 -lpango-1.0 -lgobject-2.0 -lglib-2.0 -lharfbuzz -lfontconfig -lfreetype -lpng -lz -ljpeg -ltiff -ljbig    -pthread   -Wl,--version-script,/home/dvertx/wxWidgets/debug/version-script -lz -lm -lpcre2-8  -lwxscintilla-3.3 -lwxlexilla-3.3  -lz -lm

The last line has ... -lwxscintilla-3.3 -lwxlexilla-3.3 -lz -lm as part of its parameter


Reply to this email directly, view it on GitHub, or unsubscribe.

You are receiving this because you are subscribed to this thread.Message ID: <wxWidgets/wxWidgets/pull/23707/c1631376789@github.com>

VZ

unread,
Jul 11, 2023, 3:28:34 PM7/11/23
to wx-...@googlegroups.com, Subscribed

Closed #23707.


Reply to this email directly, view it on GitHub, or unsubscribe.

You are receiving this because you are subscribed to this thread.Message ID: <wxWidgets/wxWidgets/pull/23707/issue_event/9791501647@github.com>

VZ

unread,
Jul 11, 2023, 3:28:34 PM7/11/23
to wx-...@googlegroups.com, Subscribed

@imciner2 is correct, these libraries don't need to be installed because there is no need to link with them when using shared wx libraries which already include them.

Also, modifying the generated Makefile.in doesn't make sense anyhow, as any changes to it will be overwritten by the next update, so I'm closing this PR.

If you have a problem, please describe what is it, exactly, i.e. what are you trying to do and what doesn't work in a separate issue or on the mailing list. Thanks!


Reply to this email directly, view it on GitHub, or unsubscribe.

You are receiving this because you are subscribed to this thread.Message ID: <wxWidgets/wxWidgets/pull/23707/c1631394756@github.com>

Reply all
Reply to author
Forward
0 new messages