[Kde-bindings] QtRuby4 gem successfully built for Windows

Melton, Ryan rmelton at ball.com
Thu Feb 4 18:00:45 UTC 2010


Richard,

I finally succeeded in creating an updated qtruby4 gem for Windows bundled with QT 4.6.1.

Two Questions:
1. What is the best way for me to get the gem file to you and to send you the changes to the numerous files?

2. Can you explain the 2.0.5 version number? For the windows binary gem, I versioned it as 4.6.1.0.1084277 where 4.6.1 is the bundled Qt version, 0 being the release number, and 1084277 being the subversion revision of kdebindings I used to build the code.

Also, below are my notes on getting the code to build.

Thanks,
Ryan




Lessons Learned:
1. Smoke would not link correctly against Qt 4.5.3.  After upgrading to 4.6.1 linking succeeded.
2. Things work better with cmake if the Qt bin directory is in the path.

Files Modified:
1. CMakeLists.txt.qtruby - remove Perl requirement and add generator directory
2. generator/parser/CMakeLists.txt - Fix install line to be compatible with windows. See http://cmake.org/pipermail/cmake/2008-September/023876.html.
3. ruby/qtruby/src/CMakeLists.txt - Make a no dbus version of the target_link_libraries lines
4. ruby/qtruby/src/marshall_primitives.h - Remove "static" from lines 253, 265, 275, and 284
5. ruby/qtruby/src/qtruby.cpp - place #ifdef QT_QTDBUS around several lines - Add #undef read after #include ruby.h
6. ruby/qtruby/tools/rbuic/ui4.h - Delete Q_DECL_EXPORT and Q_DECL_IMPORT from lines 73 and 74 if on windows
7. ruby/qtscript/qtscript.cpp - Add #undef read, #undef write, #undef connect, #undef accept after #include ruby.h
8. ruby/qtscript/qtscripthandlers.cpp - Add #undef read, #undef write, #undef connect, #undef accept after #include ruby.h
9. ruby/qttest/qttest.cpp - Add #undef read, #undef write, #undef connect, #undef accept after #include ruby.h
10. ruby/qttest/qttesthandlers.cpp - Add #undef read, #undef write, #undef connect, #undef accept after #include ruby.h
11. ruby/qtuitools/qtuitools.cpp - Add #undef read, #undef write, #undef connect, #undef accept after #include ruby.h
12. ruby/qtuitools/qtuitoolshandlers.cpp - Add #undef read, #undef write, #undef connect, #undef accept after #include ruby.h
13. ruby/qtwebkit/qtwebkit.cpp - Add #undef read, #undef write, #undef connect, #undef accept after #include ruby.h
14. ruby/qtwebkit/qtwebkithandlers.cpp - Add #undef read, #undef write, #undef connect, #undef accept after #include ruby.h
15. smoke/qt/CMakeLists.txt - Create a version of config.xml.cmake that did not include dbus
16. smoke/qt/qt_includes.h - Remove include of QtDBus/QtDBus
17. smoke/qt/QtGuess.txt - Earlier described patch to look in the right directory for headers, remove ${QT_QTDBUS_LIBRARY}
18. smoke/qtcore/QtGuess.txt - Earlier described patch to look in the right directory for headers, remove ${QT_QTDBUS_LIBRARY}

The code was built with this batch file:
set PATH=C:\Qt\2010.01\qt\bin;C:\Qt\2010.01\mingw\bin;%PATH%
rmdir /S /Q CMakeFiles
rmdir /S /Q generator
rmdir /S /Q smoke
rmdir /S /Q ruby
del cmake_install.cmake
del CmakeCache.txt
del Makefile
set CC=mingw32-gcc.exe
set CXX=mingw32-g++.exe
copy ..\..\kdelibs\cmake\modules\FindQt4.cmake ..\cmake\modules\
copy ..\..\kdelibs\cmake\modules\FindRUBY.cmake ..\cmake\modules\
copy ..\..\kdelibs\cmake\modules\MacroOptionalFindPackage.cmake ..\cmake\modules\
copy ..\..\kdelibs\cmake\modules\MacroPushRequiredVars.cmake ..\cmake\modules\
copy ..\..\kdelibs\cmake\modules\Qt4Macros.cmake ..\cmake\modules\
copy ..\..\kdelibs\cmake\modules\Qt4ConfigDependentSettings.cmake ..\cmake\modules\
copy ..\..\kdelibs\cmake\modules\Qt4Macros.cmake ..\cmake\modules\
copy ..\..\kdelibs\cmake\modules\HandleImportedTargetsInCMakeRequiredLibraries.cmake ..\cmake\modules\
cmake ^
-G "MinGW Makefiles" ^
-DRUBY_EXECUTABLE="C:/ruby/bin/ruby.exe" ^
-DCMAKE_MAKE_PROGRAM=mingw32-make.exe ^
-DCUSTOM_RUBY_SITE_ARCH_DIR="C:/ruby/lib/ruby/site_ruby/1.8/i386-msvcrt" ^
-DCUSTOM_RUBY_SITE_LIB_DIR="C:/ruby/lib/ruby/site_ruby/1.8" ^
-Wno-dev ^
-DENABLE_SMOKE=on ^
-DENABLE_QTCORE_SMOKE=on ^
-DENABLE_QTNETWORK_SMOKE=on ^
-DENABLE_QTDBUS_SMOKE=off ^
-DENABLE_QTGUI_SMOKE=on ^
-DENABLE_QTSVG_SMOKE=on ^
-DENABLE_QTSQL_SMOKE=on ^
-DENABLE_QTXML_SMOKE=on ^
-DENABLE_QTXMLPATTERNS_SMOKE=on ^
-DENABLE_QTOPENGL_SMOKE=on ^
-DENABLE_QTWEBKIT_SMOKE=on ^
-DENABLE_QTSCRIPT_SMOKE=on ^
-DENABLE_QTUITOOLS_SMOKE=on ^
-DENABLE_QTTEST_SMOKE=on ^
-DENABLE_QTMULTIMEDIA_SMOKE=on ^
-DENABLE_PHONON_SMOKE=off ^
-DENABLE_QSCI_SMOKE=off ^
-DENABLE_QWT_SMOKE=off ^
-DENABLE_QIMAGEBLITZ_SMOKE=off ^
-DENABLE_KDE_SMOKE=off ^
-DENABLE_KDECORE_SMOKE=off ^
-DENABLE_KDEUI_SMOKE=off ^
-DENABLE_KIO_SMOKE=off ^
-DENABLE_KPARTS_SMOKE=off ^
-DENABLE_KFILE_SMOKE=off ^
-DENABLE_KNEWSTUFF2_SMOKE=off ^
-DENABLE_KNEWSTUFF3_SMOKE=off ^
-DENABLE_KUTILS_SMOKE=off ^
-DENABLE_KDEVPLATFORM_SMOKE=off ^
-DENABLE_KHTML_SMOKE=off ^
-DENABLE_KTEXTEDITOR_SMOKE=off ^
-DENABLE_SOLID_SMOKE=off ^
-DENABLE_PLASMA_SMOKE=off ^
-DENABLE_ATTICA_SMOKE=off ^
-DENABLE_QTRUBY=on ^
-DENABLE_QTWEBKIT_RUBY=on ^
-DENABLE_QTUITOOLS_RUBY=on ^
-DENABLE_QTSCRIPT=on ^
-DENABLE_QTTEST=on ^
-DENABLE_PHONON_RUBY=off ^
-DENABLE_QSCINTILLA_RUBY=off ^
-DENABLE_QWT_RUBY=off ^
-DENABLE_SOPRANO_RUBY=off ^
-DENABLE_KDEVPLATFORM_RUBY=off ^
-DENABLE_KORUNDUM_RUBY=off ^
-DENABLE_KHTML_RUBY=off ^
-DENABLE_KTEXTEDITOR_RUBY=off ^
-DENABLE_SOLID_RUBY=off ^
-DENABLE_PLASMA_RUBY=off ^
-DENABLE_KROSSRUBY=off ^
..
mingw32-make.exe



This message and any enclosures are intended only for the addressee.  Please  
notify the sender by email if you are not the intended recipient.  If you are  
not the intended recipient, you may not use, copy, disclose, or distribute this  
message or its contents or enclosures to any other person and any such actions  
may be unlawful.  Ball reserves the right to monitor and review all messages  
and enclosures sent to or from this email address.



More information about the Kde-bindings mailing list