From kde-bindings Sat May 03 22:25:04 2008 From: "Ilmar Kruis" Date: Sat, 03 May 2008 22:25:04 +0000 To: kde-bindings Subject: [Kde-bindings] Qyoto on Windows Message-Id: <6dfefa000805031525q17d2fb03x74d6e3b7dafd9b8a () mail ! gmail ! com> X-MARC-Message: https://marc.info/?l=kde-bindings&m=120985354224978 MIME-Version: 1 Content-Type: multipart/mixed; boundary="--===============1165173635==" --===============1165173635== Content-Type: multipart/alternative; boundary="----=_Part_23469_13890704.1209853504257" ------=_Part_23469_13890704.1209853504257 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 7bit Content-Disposition: inline Hello! I'm quite interested in using Qyoto as cross-platform gui for my projects. But I'll need a windows version. So, I've been messing around for a day or so to get smoke and qyoto compile, but finally ended up with an AccessViolationException at the very first call to new QApplication(); (in CallSmokeMethod). This might be because of the hacking I did to get things to compile though. Here is the end result of what I tried to do to get stuff compiling (tried with VS2005 at first, but quickly switched to make/mingw...): - Download Qt/WIN OpenSource Edition 4.4 RC1 (MinGW) - Checkout kdebindings in spaceless path - Checkout CMake modules - Setup MSYS with MinGW (GCC 4.2.1-sjlj) - Download ActivePerl (5.10) - Download CMake (2.4) - Rename CMakeLists.txt.qyoto to CMakeLists.txt - Change ${LIB_INSTALL_DIR} to ${CMAKE_INSTALL_PREFIX}/bin in smoke/qt/CMakeLists.txt and csharp/qyoto/CMakeLists.txt (LIB_INSTALL_DIR doesn't show up as option in CMake GUI) - Run CMake on kdebindings ( binaries in ./build, using MSYS makefiles target ) - Set Qwt5_INCLUDE_DIR to zero - Set GMCS_EXECUTABLE to csc.exe - Set GACUTIL_EXECUTABLE to gacutil.exe - Remove 2>/dev/null from qtguess.pl (not recognized) - Replace Qt/lib/libQt**.a with Qt/bin/Qt**.dll in qtguess.pl (static linking fails with loads of object not found) - Remove Qt/bin/QtUITools.dll from qtguess.pl - Undefine _GLIBCXX_HAVE_ISWBLANK in /lib/gcc/mingw32/4.2.1-sjlj/include/c++/mingw32/bits - Change push ( @headers, $File::Find::dir . substr($1, 2) ); to push ( @headers, $File::Find::dir .'/'. $1 ); in generate.pl (sources are in include/Qt/../../src, not include/Qt/../src) - Remove qdbus*.h, quiloader.h, qaccessible*.h, qitemeditorfactory.h, qsqldatabase.h from header_list (DBus and Accessiblity are not available, factory stuff couldn't be linked) - Replace / (forward slash) with \\ (double backslash) in csc.exe arguments in build/CMakeFiles/qt-dotnet.dir/build.make (csc doesn't support /-paths) - Remove using Qyoto; from csharp/qyoto/src/SmokeInvocation.cs - `make` - Change #include to #include in smokedata.cpp, x_3.cpp, x_4.cpp and x_6.cpp - Set $(smokeqt_EXTERNAL_OBJECTS) -L/d/Qt/4.4.0-rc1/bin -lQtCore4 -lQtGui4 -lQtNetwork4 -lQtOpenGL4 -lQtSql4 -lQtSvg4 -lQtXml4 -lQtWebKit4 -Wl,-Bdynamic in smoke\qt\CMakeFiles\smokeqt.dir\build.make (changed to shared, /lib to /bin and removed QtUITools) - `make` - Ignore loads of 'redeclared without dllimport attribute: previous dllimport ignored' warnings - Compiles until uics, which can't find DomUI when linking Ilmar Kruis ------=_Part_23469_13890704.1209853504257 Content-Type: text/html; charset=UTF-8 Content-Transfer-Encoding: 7bit Content-Disposition: inline Hello!

I'm quite interested in using Qyoto as cross-platform gui for my projects. But I'll need a windows version. So, I've been messing around for a day or so to get smoke and qyoto compile, but finally ended up with an AccessViolationException at the very first call to new QApplication(); (in CallSmokeMethod). This might be because of the hacking I did to get things to compile though. Here is the end result of what I tried to do to get stuff compiling (tried with VS2005 at first, but quickly switched to make/mingw...):

- Download Qt/WIN OpenSource Edition 4.4 RC1 (MinGW)
- Checkout kdebindings in spaceless path
- Checkout CMake modules
- Setup MSYS with MinGW (GCC 4.2.1-sjlj)
- Download ActivePerl (5.10)
- Download CMake (2.4)

- Rename CMakeLists.txt.qyoto to CMakeLists.txt
- Change ${LIB_INSTALL_DIR} to ${CMAKE_INSTALL_PREFIX}/bin in smoke/qt/CMakeLists.txt and csharp/qyoto/CMakeLists.txt (LIB_INSTALL_DIR doesn't show up as option in CMake GUI)
- Run CMake on kdebindings ( binaries in ./build, using MSYS makefiles target )
- Set Qwt5_INCLUDE_DIR to zero
- Set GMCS_EXECUTABLE to csc.exe
- Set GACUTIL_EXECUTABLE to gacutil.exe

- Remove 2>/dev/null from qtguess.pl (not recognized)
- Replace Qt/lib/libQt**.a with Qt/bin/Qt**.dll in qtguess.pl (static linking fails with loads of object not found)
- Remove Qt/bin/QtUITools.dll from qtguess.pl
- Undefine _GLIBCXX_HAVE_ISWBLANK in /lib/gcc/mingw32/4.2.1-sjlj/include/c++/mingw32/bits

- Change push ( @headers, $File::Find::dir . substr($1, 2) ); to push ( @headers, $File::Find::dir .'/'. $1 ); in generate.pl (sources are in include/Qt/../../src, not include/Qt/../src)
- Remove qdbus*.h, quiloader.h, qaccessible*.h, qitemeditorfactory.h, qsqldatabase.h from header_list (DBus and Accessiblity are not available, factory stuff couldn't be linked)

- Replace / (forward slash) with \\ (double backslash) in csc.exe arguments in build/CMakeFiles/qt-dotnet.dir/build.make (csc doesn't support /-paths)
- Remove using Qyoto; from csharp/qyoto/src/SmokeInvocation.cs

- `make`

- Change #include <dom/qdom.h> to #include <qdom.h> in smokedata.cpp, x_3.cpp, x_4.cpp and x_6.cpp
- Set $(smokeqt_EXTERNAL_OBJECTS) -L/d/Qt/4.4.0-rc1/bin -lQtCore4 -lQtGui4 -lQtNetwork4 -lQtOpenGL4 -lQtSql4 -lQtSvg4 -lQtXml4 -lQtWebKit4 -Wl,-Bdynamic in smoke\qt\CMakeFiles\smokeqt.dir\build.make
(changed to shared, /lib to /bin and removed QtUITools)

- `make`

- Ignore loads of 'redeclared without dllimport attribute: previous dllimport ignored' warnings

- Compiles until uics, which can't find DomUI when linking

Ilmar Kruis

------=_Part_23469_13890704.1209853504257-- --===============1165173635== Content-Type: text/plain; charset="us-ascii" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Content-Disposition: inline _______________________________________________ Kde-bindings mailing list Kde-bindings@kde.org https://mail.kde.org/mailman/listinfo/kde-bindings --===============1165173635==--