Compilation success with MSYS2/MinGW
I was able to build the DLL with Rochus Keller's project files with MinGW on 64bit Windows 10 version with some changes:
Probably misspelling in MinGW headers:
+++ b/src/draw2d/win/dctx_win.cpp
- ctx->lbrush->RotateTransform(ctx->gradient_angle);
+ ctx->lbrush->RotateTranform(ctx->gradient_angle);
Did not find headers:
+++ b/src/draw2d/win/draw2d_win.ixx
-#include <gdiplus.h>
-#include <gdipluspixelformats.h>
+#include <gdiplus/gdiplus.h>
+#include <gdiplus/gdipluspixelformats.h>
Not sure why this failed. Commented out for now:
+++ b/src/draw2d/win/osimage.cpp
- status = bitmap->Save(stream, &clsid);
+ //status = bitmap->Save(stream, &clsid);
i64 prefix is a Microsoft extension. Replaced with LL:
+++ b/src/osbs/win/btime.c
-#define EPOCHFILETIME (116444736000000000i64)
+#define EPOCHFILETIME (116444736000000000LL)
Error due to encoding:
+++ b/src/osgui/win/osedit.c
- SendMessage(edit->control.hwnd, EM_SETPASSWORDCHAR, (WPARAM)L'•', (LPARAM)0);
+ SendMessage(edit->control.hwnd, EM_SETPASSWORDCHAR, (WPARAM)L'#', (LPARAM)0);
Not sure why this failed. Edit fixed the problem:
+++ b/src/osgui/win/oswindow.c
- enum gui_role_t role;
+ gui_role_t role;
Processor type not picked up. Temporary work around:
+++ b/src/sewer/arch.hxx
- #error Unknown processor
+ #define __x64__
Compiler not supported. Temporary work around:
+++ b/src/sewer/win/bmem_win.c
#if !defined (_MSC_VER)
-#error Unknow compiler
#endif
The DLL built fine and worked with the ported Oberon+ examples. The edits here are minor and it look feasible to to support MinGW in the future.
Hi @tenko! thank you very much for the feedback and use NAppGUI.
At the moment, MinGW is not "officially" supported by the project. However, looking at your comments, I don't think will be very expensive to add this support. I'll keep it in mind for future reviews of the build system.
Great.
For information MSYS2 gcc version is up to date: gcc version 11.2.0 (Rev5, Built by MSYS2 project)
Hi @tenko, I am interested on testing NAppGUI on MinGW. Can you provide those project files?
After running cmake -S ./src -B ./build I am getting the following which is not mentioned in your post.
-- Ninja
CMake Error at C:/msys64/home/Note13/_myGitHub/_synclist_public_/nappgui_src/prj/CMakeCompilers.cmak
e:113 (message):
Unknown compiler
Call Stack (most recent call first):
C:/msys64/home/Note13/_myGitHub/_synclist_public_/nappgui_src/prj/CMakeNAppGUI.cmake:35 (include)
CMakeLists.txt:9 (include)