diff --git a/pkgs/desktops/kde-4.8/default.nix b/pkgs/desktops/kde-4.8/default.nix index f086b06ab9d..6404173bb12 100644 --- a/pkgs/desktops/kde-4.8/default.nix +++ b/pkgs/desktops/kde-4.8/default.nix @@ -15,8 +15,7 @@ let # kdesdk/kioslave is splitted into kioslave-svn and kioslave-git kdesdk = [ "kioslave" ]; # Most of kdebindings do not compile due to a bug in the buildsystem - kdebindings = [ "kimono" "korundum" "kross-interpreters" "perlkde" - "qtruby" "qyoto" ]; + kdebindings = [ "kimono" "korundum" "kross-interpreters" "perlkde" "qyoto" ]; }; # Extra subpackages in the manifest format diff --git a/pkgs/desktops/kde-4.8/kdebindings/qtruby-include-smokeqt.patch b/pkgs/desktops/kde-4.8/kdebindings/qtruby-include-smokeqt.patch new file mode 100644 index 00000000000..7d20a3c1c0b --- /dev/null +++ b/pkgs/desktops/kde-4.8/kdebindings/qtruby-include-smokeqt.patch @@ -0,0 +1,13 @@ +diff --git a/CMakeLists.txt b/CMakeLists.txt +index 33078b4..1a6ad2e 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -5,7 +5,7 @@ set(COMPILE_RUBY FALSE CACHE INTERNAL "") + find_package(Ruby REQUIRED) + find_package(Qt4 REQUIRED) + find_package(Smoke COMPONENTS QtCore QtGui QtXml QtOpenGl QtSql QtNetwork QtDbus QtSvg Phonon QSci QtDeclarative QtScript QtWebkit QtUiTools QtTest Qwt) +-include_directories(${SMOKE_INCLUDE_DIR} ${CMAKE_CURRENT_SOURCE_DIR}/src ${QT_INCLUDES}) ++include_directories(${SMOKE_INCLUDE_DIR} ${SMOKE_QTCORE_INCLUDE_DIR} ${CMAKE_CURRENT_SOURCE_DIR}/src ${QT_INCLUDES}) + + set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} ${SMOKE_CMAKE_MODULE_DIR}) + include(MacroOptionalFindPackage) diff --git a/pkgs/desktops/kde-4.8/kdebindings/qtruby-install-prefix.patch b/pkgs/desktops/kde-4.8/kdebindings/qtruby-install-prefix.patch new file mode 100644 index 00000000000..bd95a0d8bd3 --- /dev/null +++ b/pkgs/desktops/kde-4.8/kdebindings/qtruby-install-prefix.patch @@ -0,0 +1,15 @@ +diff --git a/CMakeLists.txt b/CMakeLists.txt +index 33078b4..30aec0e 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -31,8 +31,8 @@ if (NOT COMPILE_RUBY) + return() + endif (NOT COMPILE_RUBY) + +-SET(CUSTOM_RUBY_SITE_ARCH_DIR ${RUBY_SITEARCH_DIR} CACHE DIR "custom installation directory for ruby binary extension" ) +-SET(CUSTOM_RUBY_SITE_LIB_DIR ${RUBY_SITELIB_DIR} CACHE DIR "custom installation directory for ruby extension" ) ++string(REPLACE "${RUBY_ROOT_DIR}" "${CMAKE_INSTALL_PREFIX}" CUSTOM_RUBY_SITE_ARCH_DIR ${RUBY_SITEARCH_DIR}) ++string(REPLACE "${RUBY_ROOT_DIR}" "${CMAKE_INSTALL_PREFIX}" CUSTOM_RUBY_SITE_LIB_DIR ${RUBY_SITELIB_DIR}) + + # compute an overall version number which can be compared at once + MATH(EXPR RUBY_VERSION_NUMBER "${RUBY_VERSION_MAJOR}*10000 + ${RUBY_VERSION_MINOR}*100 + ${RUBY_VERSION_PATCH}") diff --git a/pkgs/desktops/kde-4.8/kdebindings/qtruby.nix b/pkgs/desktops/kde-4.8/kdebindings/qtruby.nix new file mode 100644 index 00000000000..5dd25899e74 --- /dev/null +++ b/pkgs/desktops/kde-4.8/kdebindings/qtruby.nix @@ -0,0 +1,16 @@ +{ kde, cmake, smokeqt, ruby }: + +kde { + buildInputs = [ smokeqt ruby ]; + buildNativeInputs = [ cmake ]; + + # The second patch is not ready for upstream submmission. I should add an + # option() instead. + patches = [ ./qtruby-include-smokeqt.patch ./qtruby-install-prefix.patch ]; + + cmakeFlags="-DRUBY_ROOT_DIR=${ruby}"; + + meta = { + description = "Ruby bindings for Qt library"; + }; +}