support mingw

This commit is contained in:
lsv 2025-11-28 14:18:28 +05:00
parent 5defc3b12a
commit 47fda8071f
4 changed files with 27 additions and 7 deletions

View file

@ -6,7 +6,8 @@
"vector": "cpp",
"string.h": "c",
"libpq-fe.h": "c",
"new": "cpp"
"new": "cpp",
"ostream": "cpp"
},
"cmake.configureArgs": [

View file

@ -20,14 +20,31 @@ cmake --build . --config Release --target all -j 3 --
Могут быть проблемы с отсутствующем файлом файлом kwlist.h
Его можно взять в исходниках Postgresql 15 и положить в include/parser/
Могут быть проблемы с компиляцией JSON парсера.
Его можно исключить (как и эксперементальную часть с Git) добавление к переменной CXXFLAGS="-DNO_WXJSON_GIT"
Смотрите пример в INSTALL_EN.txt
ОС для сборки использовал «Альт Рабочая станция» 10
https://www.basealt.ru/alt-workstation/download#c1211
Редактировал и собирал на Visual Studio Сode
Сборка mingw (использоалась версия без установки llvm-mingw-20231128-msvcrt-ubuntu-20.04-x86_64)
------------
MINGW=/home/sergey/mingw/llvm-mingw-20231128-msvcrt-ubuntu-20.04-x86_64
1. сборка wxwidgets 3.2
mkdir msw-build
cd msw-build
PATH=$MINGW/bin:$PATH
../configure --host=x86_64-w64-mingw32 --with-msw
#Получим каталоги для #include
wxWidgets_INCLUDE_DIRS=`./wx-config --cxxflags`
2. сборка pgAdmin3
указать в mingw-windows-x64.cmake пути к нужным dll (exp файлам)
mkdir build
cd build
cmake -DCMAKE_TOOLCHAIN_FILE=../mingw-windows-x64.cmake ..
cmake --build . --config Release --target all -j 5 --

View file

@ -16,11 +16,11 @@ set(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER)
set(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY)
set(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY)
set(WXWIN_LIB /home/sergey/wxWidgets-3.2.2.1/msw-build/lib )
set(WXWIN /home/sergey/k/wxMSW-3.2.2 )
set(WXWIN /home/sergey/wxWidgets-3.2.2.1 )
set(PGDIR /home/sergey/k/pg17 )
set(PGBUILD /home/sergey/k )
set(wxWidgets_LIBRARIES "-L${WXWIN_LIB} -lwx_mswu_xrc-3.2-x86_64-w64-mingw32.dll -lwx_mswu_qa-3.2-x86_64-w64-mingw32.dll -lwx_baseu_net-3.2-x86_64-w64-mingw32.dll -lwx_mswu_html-3.2-x86_64-w64-mingw32.dll -lwx_mswu_core-3.2-x86_64-w64-mingw32.dll -lwx_baseu_xml-3.2-x86_64-w64-mingw32.dll -lwx_baseu-3.2-x86_64-w64-mingw32.dll -lwx_mswu_aui-3.2-x86_64-w64-mingw32.dll -lwx_baseu_xml-3.2-x86_64-w64-mingw32.dll -lwx_mswu_stc-3.2-x86_64-w64-mingw32.dll")
set(PGLIB "-L${PGDIR}/lib -lpq -lxml2")
set(XSLTLIB "-L${PGBUILD}/libxslt/lib -lxslt")
set(OTHERLIB " -lws2_32")
set(CMAKE_EXE_LINKER_FLAGS_INIT "-static-libgcc -static-libstdc++ -Wl,--subsystem,windows -mwindows ${wxWidgets_LIBRARIES} ${PGLIB} ${XSLTLIB} ${OTHERLIB}")
set(CMAKE_EXE_LINKER_FLAGS_INIT " -Wl,--subsystem,windows -mwindows ${wxWidgets_LIBRARIES} ${PGLIB} ${XSLTLIB} ${OTHERLIB}")

View file

@ -270,11 +270,13 @@ void pgAdmin3::OnFatalException() {
wxString err = "fatal error";
MyStackWalker sw(err);
#if wxUSE_ON_FATAL_EXCEPTION
sw.WalkFromException();
wxLogError(err);
wxMessageBox(err,
"wxExcept", wxOK | wxICON_ERROR);
#endif
#endif
}
bool pgAdmin3::OnInit()
{