gammasoft71 / xtd

Free open-source modern C++17 / C++20 framework to create console, GUI (forms like WinForms) and unit test applications and libraries on Microsoft Windows, Apple macOS and Linux.
https://gammasoft71.github.io/xtd
MIT License
735 stars 57 forks source link

[QUESTION] This library is using wxWidgets? #219

Closed ghost closed 1 year ago

ghost commented 1 year ago

Oh this is unexpected. I admit I'm a bit surprised. Should this be stated clearly on README.md?

This is the output of cmake:

CMake Error at C:/msys64/mingw64/share/cmake/Modules/FindPackageHandleStandardArgs.cmake:230 (message):
  Could NOT find wxWidgets (missing: wxWidgets_LIBRARIES
  wxWidgets_INCLUDE_DIRS)
Call Stack (most recent call first):
  C:/msys64/mingw64/share/cmake/Modules/FindPackageHandleStandardArgs.cmake:600 (_FPHSA_FAILURE_MESSAGE)
  C:/msys64/mingw64/share/cmake/Modules/FindwxWidgets.cmake:977 (find_package_handle_standard_args)
  src/xtd.drawing.native.wxwidgets/CMakeLists.txt:18 (find_package)

Update: yeah, it seems to depend on gnulib too: fatal error: execinfo.h: No such file or directory

gammasoft71 commented 1 year ago

First of all, thanks for your interest in xtd ;-)

wxWidgets

You are right that the use of wxWidgets as a backend is not specified in the README.md of the project, as well as StackWalker, StackTrace, Win32 Api, Cocoa, Gtk+, uuid... which are libraries that xtd relies on. However, the use of wxWidgets is mentioned in the Download, install and uninstall page , in the External tools libraries and toolkits page, and many other places in the documentation. If you look at the xtd roadmap, you will see that for xtd version 2.0.0, the Win32 backend will be added. For version 3.0.0 the Gtk4 backend will be added, etc...

For information

wxWidgets is used as backend for the moment. But in the future other backend could be available, like Win32, Cocoa, Gtk, X11, Fltk, Qt, SDL2, ... Later, it will be up to the user to choose the backend he wants (generic or not). Knowing that by default xtd will define the best backend depending on the target: Win32 for Windows, Cocoa for macOS, Gtk for linux with Gnome, Qt for linux with KDE, ... xtd, gives no access to the backend used. You cannot for example decide to use a xtd::forms::form and a wxButton from the wxWidgets backend. The two controls are not compatible. You must use xtd::forms::button.

execinfo.h

See my answer in issue #220.

Regards,

Gammasoft71