[Kde-bindings] QtRuby4 gem successfully built for Windows

Ian Monroe ian.monroe at gmail.com
Thu Feb 4 18:12:40 UTC 2010


On Thu, Feb 4, 2010 at 12:00 PM, Melton, Ryan <rmelton at ball.com> wrote:
> 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.

you can also use cmake-gui and specify such things manually. But yea,
it uses qmake to find things out about Qt automatically.

> 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}

Provide a patch instead. :)

> 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\

You could probably set CMAKE_MODULE_PATH instead.

> 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.
> _______________________________________________
> Kde-bindings mailing list
> Kde-bindings at kde.org
> https://mail.kde.org/mailman/listinfo/kde-bindings
>



More information about the Kde-bindings mailing list