All of lore.kernel.org
 help / color / mirror / Atom feed
From: Thierry Bultel <thierry.bultel@wanadoo.fr>
To: buildroot@busybox.net
Subject: [Buildroot] [PATCH] Add pyside + shiboken packages
Date: Thu, 19 Sep 2013 12:03:38 +0200	[thread overview]
Message-ID: <523ACBFA.2070401@wanadoo.fr> (raw)

Signed-off-by: Thierry Bultel <thierry.bultel@wanadoo.fr>
---
Adds support for pyside, pyside-tools and shiboken
Shiboken is also built for the host, else the target version
would need a configured qemu + binfmt_misc to run
the generator.
---
diff --git a/package/Config.in b/package/Config.in
index 779e9da..c1927dc 100644
--- a/package/Config.in
+++ b/package/Config.in
@@ -399,6 +399,9 @@ source "package/python-pyro/Config.in"
  source "package/python-pyzmq/Config.in"
  source "package/python-serial/Config.in"
  source "package/python-setuptools/Config.in"
+source "package/shiboken/Config.in"
+source "package/pyside/Config.in"
+source "package/pyside-tools/Config.in"
  source "package/python-thrift/Config.in"
  endmenu
  endif
diff --git a/package/pyside-tools/Config.in 
b/package/pyside-tools/Config.in
new file mode 100644
index 0000000..2e5d8d2
--- /dev/null
+++ b/package/pyside-tools/Config.in
@@ -0,0 +1,5 @@
+config BR2_PACKAGE_PYSIDE_TOOLS
+        bool "pyside-tools"
+    depends on BR2_PACKAGE_PYSIDE
+        help
+          PySide tools
diff --git a/package/pyside-tools/pyside-tools.mk 
b/package/pyside-tools/pyside-tools.mk
new file mode 100644
index 0000000..0b696dc
--- /dev/null
+++ b/package/pyside-tools/pyside-tools.mk
@@ -0,0 +1,62 @@
+############################
+#
+#    pyside-tools
+#
+#############################
+
+PYSIDE_TOOLS_VERSION=0.2.15
+PYSIDE_TOOLS_SITE=https://github.com/PySide/Tools/archive/
+PYSIDE_TOOLS_SOURCE=$(PYSIDE_TOOLS_VERSION).tar.gz
+PYSIDE_TOOLS_INSTALL_STAGING=YES
+PYSIDE_TOOLS_DEPENDENCIES=pyside
+
+PYSIDESANDBOXPATH=$(STAGING_DIR)
+
+PYSIDE_TOOLS_CONF_OPT+=-DCMAKE_INSTALL_PREFIX=$(PYSIDESANDBOXPATH)
+PYSIDE_TOOLS_CONF_OPT+=-DENABLE_ICECC=0
+
+PYSIDE_TOOLS_CONF_ENV+=PYTHONPATH=$(PYSIDESANDBOXPATH)/lib/python2.6/site-packages:$$PYTHONPATH 

+PYSIDE_TOOLS_CONF_ENV+=LD_LIBRARY_PATH=$(PYSIDESANDBOXPATH)/lib:$$LD_LIBRARY_PATH 

+PYSIDE_TOOLS_CONF_ENV+=PKG_CONFIG_PATH=$(PYSIDESANDBOXPATH)/lib/pkgconfig:$$PKG_CONFIG_PATH 

+
+#PYSIDE_MAKE_ENV+=VERBOSE=1
+
+PYSIDE_TOOLS_CMAKE_INSTALL_CMAKE=            \
+cmake_install.cmake                    \
+tests/cmake_install.cmake                \
+tests/rcc/cmake_install.cmake                \
+pyrcc/cmake_install.cmake                \
+pylupdate/cmake_install.cmake
+
+define PYSIDE_TOOLS_CONFIGURE_CMDS
+    (                                        \
+    cd $(@D) &&                                     \
+    mkdir -p build && cd build &&             \
+    rm -f CMakeCache.txt &&                             \
+    $(PYSIDE_TOOLS_CONF_ENV) $(HOST_DIR)/usr/bin/cmake .. \
+ 
-DCMAKE_TOOLCHAIN_FILE="$(HOST_DIR)/usr/share/buildroot/toolchainfile.cmake" 
     \
+    -DCMAKE_INSTALL_PREFIX="/usr"                             \
+    $(PYSIDE_TOOLS_CONF_OPT)                             \
+    )
+endef
+
+define PYSIDE_TOOLS_BUILD_CMDS
+    $(TARGET_MAKE_ENV) $(PYSIDE_TOOLS_MAKE_ENV) $(MAKE) 
$(PYSIDE_TOOLS_MAKE_OPT) -C $(@D)/build
+endef
+
+
+define PYSIDE_TOOLS_INSTALL_STAGING_CMDS
+    (                                                \
+    cd  $(@D)/build &&     \
+    for ins in $(PYSIDE_TOOLS_CMAKE_INSTALL_CMAKE); do             \
+       cat $$ins | sed -e 's|sysroot|sysroot/usr|g' > $${ins}2 ;        
             \
+    done;                                                \
+    sed -i -e 's/cmake_install.cmake/cmake_install.cmake2/g' 
cmake_install.cmake2;            \
+    sed -i -e 's/cmake_install.cmake/cmake_install.cmake2/g' 
tests/cmake_install.cmake2;        \
+    $(HOST_DIR)/usr/bin/cmake -DCMAKE_INSTALL_PREFIX=$(STAGING_DIR)/usr 
-P cmake_install.cmake2;    \
+    echo "pyside-tools staging install OK";         \
+    )
+endef
+
+$(eval $(generic-package))
+$(eval $(host-generic-package))
diff --git a/package/pyside/Config.in b/package/pyside/Config.in
new file mode 100644
index 0000000..61618b7
--- /dev/null
+++ b/package/pyside/Config.in
@@ -0,0 +1,6 @@
+config BR2_PACKAGE_PYSIDE
+        bool "pyside"
+    select BR2_PACKAGE_SHIBOKEN
+    depends on BR2_PACKAGE_QT
+        help
+          PySide
diff --git a/package/pyside/pyside.mk b/package/pyside/pyside.mk
new file mode 100644
index 0000000..70c26b6
--- /dev/null
+++ b/package/pyside/pyside.mk
@@ -0,0 +1,121 @@
+############################
+#
+#    Pyside
+#
+#############################
+
+PYSIDE_VERSION=1.2.1
+PYSIDE_SITE=https://distfiles.macports.org/py-pyside
+PYSIDE_SOURCE=pyside-qt4.8+$(PYSIDE_VERSION).tar.bz2
+PYSIDE_INSTALL_STAGING=YES
+PYSIDE_DEPENDENCIES=python qt shiboken host-cmake
+
+PYSIDESANDBOXPATH=$(STAGING_DIR)
+
+PYSIDE_CONF_OPT+=-DCMAKE_INSTALL_PREFIX=$(PYSIDESANDBOXPATH)
+PYSIDE_CONF_OPT+=-DENABLE_ICECC=0
+
+PYSIDE_CONF_ENV+=PYTHONPATH=$(PYSIDESANDBOXPATH)/lib/python2.6/site-packages:$$PYTHONPATH 

+PYSIDE_CONF_ENV+=LD_LIBRARY_PATH=$(PYSIDESANDBOXPATH)/lib:$$LD_LIBRARY_PATH 

+PYSIDE_CONF_ENV+=PKG_CONFIG_PATH=$(PYSIDESANDBOXPATH)/lib/pkgconfig:$$PKG_CONFIG_PATH 

+
+# Uncomment next line to attempt to understand something in what CMake 
does
+#PYSIDE_MAKE_ENV+=VERBOSE=1
+
+define PYSIDE_CONFIGURE_CMDS
+    (                                        \
+    cd $(@D) &&                                     \
+    mkdir -p build && cd build &&             \
+    rm -f CMakeCache.txt &&                             \
+    $(PYSIDE_CONF_ENV) $(HOST_DIR)/usr/bin/cmake .. \
+ 
-DCMAKE_TOOLCHAIN_FILE="$(HOST_DIR)/usr/share/buildroot/toolchainfile.cmake" 
     \
+    -DCMAKE_INSTALL_PREFIX="/usr"                             \
+    $(PYSIDE_CONF_OPT)                                 \
+    )
+endef
+
+
+define PYSIDE_BUILD_CMDS
+    $(TARGET_MAKE_ENV) $(PYSIDE_MAKE_ENV) $(MAKE) $(PYSIDE_MAKE_OPT) -C 
$(@D)/build
+endef
+
+PYSIDE_CMAKE_INSTALL_CMAKE=        \
+libpyside/cmake_install.cmake         \
+PySide/cmake_install.cmake        \
+PySide/QtTest/cmake_install.cmake    \
+PySide/QtCore/cmake_install.cmake    \
+tests/cmake_install.cmake        \
+tests/QtTest/cmake_install.cmake    \
+tests/QtCore/cmake_install.cmake    \
+tests/pysidetest/cmake_install.cmake    \
+tests/signals/cmake_install.cmake
+
+ifneq ($(BR2_PACKAGE_QT_GUI_MODULE),)
+PYSIDE_CMAKE_INSTALL_CMAKE+=PySide/QtGui/cmake_install.cmake
+PYSIDE_CMAKE_INSTALL_CMAKE+=tests/QtGui/cmake_install.cmake
+endif
+
+ifneq ($(BR2_PACKAGE_QT_NETWORK),)
+PYSIDE_CMAKE_INSTALL_CMAKE+=PySide/QtNetwork/cmake_install.cmake
+PYSIDE_CMAKE_INSTALL_CMAKE+=tests/QtNetwork/cmake_install.cmake
+endif
+
+ifneq ($(BR2_PACKAGE_QT_OPENGL_ES),)
+PYSIDE_CMAKE_INSTALL_CMAKE+=PySide/QtOpenGL/cmake_install.cmake
+PYSIDE_CMAKE_INSTALL_CMAKE+=tests/QtOpenGL/cmake_install.cmake
+endif
+
+ifneq ($(BR2_PACKAGE_QT_SQL_MODULE),)
+PYSIDE_CMAKE_INSTALL_CMAKE+=PySide/QtSql/cmake_install.cmake
+PYSIDE_CMAKE_INSTALL_CMAKE+=tests/QtSql/cmake_install.cmake
+endif
+
+ifneq ($(BR2_PACKAGE_QT_SVG),)
+PYSIDE_CMAKE_INSTALL_CMAKE+=PySide/QtSvg/cmake_install.cmake
+PYSIDE_CMAKE_INSTALL_CMAKE+=tests/QtSvg/cmake_install.cmake
+endif
+
+ifneq ($(BR2_PACKAGE_QT_XML),)
+PYSIDE_CMAKE_INSTALL_CMAKE+=PySide/QtXml/cmake_install.cmake
+PYSIDE_CMAKE_INSTALL_CMAKE+=tests/QtXml/cmake_install.cmake
+endif
+
+ifneq ($(BR2_PACKAGE_QT_SCRIPT),)
+PYSIDE_CMAKE_INSTALL_CMAKE+=PySide/QtScript/cmake_install.cmake
+PYSIDE_CMAKE_INSTALL_CMAKE+=tests/QtScript/cmake_install.cmake
+endif
+
+
+define PYSIDE_INSTALL_TARGET_CMDS
+    (                                                    \
+    cd  $(@D)/build &&         \
+    for ins in $(PYSIDE_CMAKE_INSTALL_CMAKE); do \
+       cat $$ins | sed -e 's|$(STAGING_DIR)|$(TARGET_DIR)/usr|g' > 
$${ins}2 ;                \
+    done;                                                    \
+    cat cmake_install.cmake | sed -e 
's/cmake_install.cmake/cmake_install.cmake2/g' > cmake_install.cmake2;    \
+    sed -i -e 's/cmake_install.cmake/cmake_install.cmake2/g' 
PySide/cmake_install.cmake2;            \
+    sed -i -e 's/cmake_install.cmake/cmake_install.cmake2/g' 
tests/cmake_install.cmake2;            \
+    $(HOST_DIR)/usr/bin/cmake -DCMAKE_INSTALL_PREFIX=$(TARGET_DIR)/usr 
-P cmake_install.cmake2;     \
+    echo "PySide target OK"; \
+    rm -rf $(TARGET_DIR)/include/PySide;         \
+    )
+endef
+
+
+define PYSIDE_INSTALL_STAGING_CMDS
+    (                                                    \
+    cd  $(@D)/build &&         \
+    echo "Replace $(STAGING_DIR) by $(STAGING_DIR)/usr";                 \
+    for ins in $(PYSIDE_CMAKE_INSTALL_CMAKE); do \
+       cat $$ins | sed -e 's|sysroot/lib|sysroot/usr/lib|g' > $${ins}2 
;                    \
+    done;                                                    \
+    sed -i -e 's|sysroot/lib|sysroot/usr/lib|g' 
libpyside/PySideConfig.cmake;                \
+    cat cmake_install.cmake | sed -e 
's/cmake_install.cmake/cmake_install.cmake2/g' > cmake_install.cmake2;    \
+    sed -i -e 's/cmake_install.cmake/cmake_install.cmake2/g' 
PySide/cmake_install.cmake2;            \
+    sed -i -e 's/cmake_install.cmake/cmake_install.cmake2/g' 
tests/cmake_install.cmake2;            \
+    $(HOST_DIR)/usr/bin/cmake -DCMAKE_INSTALL_PREFIX=$(STAGING_DIR)/usr 
-P cmake_install.cmake2;        \
+    echo "PySide staging install OK";         \
+    )
+endef
+
+$(eval $(generic-package))
diff --git a/package/python/Config.in b/package/python/Config.in
index cfe73db..bebe36b 100644
--- a/package/python/Config.in
+++ b/package/python/Config.in
@@ -22,9 +22,11 @@ choice

  config BR2_PACKAGE_PYTHON_PY_ONLY
      bool ".py sources only"
+    depends on !BR2_PACKAGE_PYSIDE

  config BR2_PACKAGE_PYTHON_PYC_ONLY
      bool ".pyc compiled sources only"
+    depends on !BR2_PACKAGE_PYSIDE

  config BR2_PACKAGE_PYTHON_PY_PYC
      bool ".py sources and .pyc compiled"
diff --git a/package/shiboken/Config.in b/package/shiboken/Config.in
new file mode 100644
index 0000000..f13eb7c
--- /dev/null
+++ b/package/shiboken/Config.in
@@ -0,0 +1,5 @@
+config BR2_PACKAGE_SHIBOKEN
+        bool "shiboken"
+    select BR2_PACKAGE_QT_STL
+        help
+          Shiboken for PySide
diff --git a/package/shiboken/shiboken.mk b/package/shiboken/shiboken.mk
new file mode 100644
index 0000000..cfb87bb
--- /dev/null
+++ b/package/shiboken/shiboken.mk
@@ -0,0 +1,115 @@
+############################
+#
+#    Shiboken
+#
+#############################
+
+SHIBOKEN_VERSION=1.2.1
+SHIBOKEN_SITE=https://distfiles.macports.org/py-shiboken
+SHIBOKEN_SOURCE=shiboken-$(SHIBOKEN_VERSION).tar.bz2
+SHIBOKEN_INSTALL_STAGING=YES
+SHIBOKEN_DEPENDENCIES=python qt host-cmake host-shiboken
+HOST_SHIBOKEN_DEPENDENCIES=
+
+PYSIDESANDBOXPATH=$(STAGING_DIR)
+
+SHIBOKEN_CONF_OPT+=-DCMAKE_INSTALL_PREFIX=$(PYSIDESANDBOXPATH)
+SHIBOKEN_CONF_OPT+=-DENABLE_ICECC=0
+
+SHIBOKEN_CONF_ENV+=PYTHONPATH=$(PYSIDESANDBOXPATH)/lib/python2.6/site-packages:$$PYTHONPATH 

+SHIBOKEN_CONF_ENV+=LD_LIBRARY_PATH=$(PYSIDESANDBOXPATH)/lib:$$LD_LIBRARY_PATH 

+SHIBOKEN_CONF_ENV+=PKG_CONFIG_PATH=$(PYSIDESANDBOXPATH)/lib/pkgconfig:$$PKG_CONFIG_PATH 

+
+#SHIBOKEN_MAKE_ENV+=VERBOSE=1
+
+# HOST
+
+define HOST_SHIBOKEN_CONFIGURE_CMDS
+    (                                        \
+    cd $(@D) &&                                     \
+    mkdir -p build && cd build &&             \
+     $(HOST_DIR)/usr/bin/cmake ..                            \
+    -DCMAKE_INSTALL_PREFIX="$(HOST_DIR)/usr"                    \
+    )
+endef
+
+define HOST_SHIBOKEN_BUILD_CMDS
+    $(HOST_MAKE_ENV) $(MAKE) -C $(@D)/build
+endef
+
+define HOST_SHIBOKEN_INSTALL_CMDS
+    $(HOST_MAKE_ENV) $(MAKE) -C $(@D)/build install
+    rm -rf $(HOST_DIR)/usr/lib/cmake/Shiboken*
+endef
+
+# TARGET
+SHIBOKEN_TESTS_CMAKE=                \
+$(@D)/tests/samplebinding/CMakeLists.txt    \
+$(@D)/tests/otherbinding/CMakeLists.txt        \
+$(@D)/tests/minimalbinding/CMakeLists.txt
+
+define SHIBOKEN_PRE_CONFIGURE_GENERATOR_PATH
+    sed -i  -e 
's|$${shibokengenerator_BINARY_DIR}/shiboken|$(HOST_DIR)/usr/bin/shiboken|g' 
     \
+        -e 's/Running generator/Running HOST generator/g' 
$(@D)/shibokenmodule/CMakeLists.txt
+    for cmakelist in $(SHIBOKEN_TESTS_CMAKE) ; do             \
+        sed -i -e 's|COMMAND shiboken|COMMAND 
$(HOST_DIR)/usr/bin/shiboken|g'            \
+            -e 's/Running generator/Running HOST generator/g' 
$$cmakelist;            \
+    done;
+endef
+
+SHIBOKEN_PRE_CONFIGURE_HOOKS+=SHIBOKEN_PRE_CONFIGURE_GENERATOR_PATH
+
+define SHIBOKEN_CONFIGURE_CMDS
+    echo "HERE ! SHIBOKEN_CONFIGURE_CMDS"
+    (                                        \
+    cd $(@D) &&                                     \
+    mkdir -p build && cd build &&             \
+    rm -f CMakeCache.txt &&                             \
+    $(SHIBOKEN_CONF_ENV) $(HOST_DIR)/usr/bin/cmake ..     \
+ 
-DCMAKE_TOOLCHAIN_FILE="$(HOST_DIR)/usr/share/buildroot/toolchainfile.cmake" 
     \
+    -DCMAKE_INSTALL_PREFIX="/usr"                             \
+    $(SHIBOKEN_CONF_OPT)                                 \
+    )
+endef
+
+define SHIBOKEN_BUILD_CMDS
+    $(TARGET_MAKE_ENV) $(SHIBOKEN_MAKE_ENV) $(MAKE) 
$(SHIBOKEN_MAKE_OPT) -C $(@D)/build
+endef
+
+SHIBOKEN_CMAKE_INSTALL_CMAKE=                \
+data/cmake_install.cmake                \
+doc/cmake_install.cmake                    \
+generator/cmake_install.cmake                \
+libshiboken/cmake_install.cmake                \
+shibokenmodule/cmake_install.cmake             \
+ApiExtractor/cmake_install.cmake            \
+tests/cmake_install.cmake                \
+
+
+SHIBOKEN_CMAKE_CONF=$(STAGING_DIR)/lib/cmake/Shiboken-1.2.1/ShibokenConfig-python2.7.cmake 

+
+define SHIBOKEN_INSTALL_TARGET_CMDS
+    (                                                        \
+    cd  $(@D)/build &&             \
+    for ins in $(SHIBOKEN_CMAKE_INSTALL_CMAKE); do                     \
+       cat $$ins | sed -e 's|$(STAGING_DIR)|$(TARGET_DIR)/usr|g' > 
$${ins}2 ;                    \
+    done; \
+    cat cmake_install.cmake | sed -e 
's/cmake_install.cmake/cmake_install.cmake2/g' > cmake_install.cmake2 
;    \
+    $(HOST_DIR)/usr/bin/cmake -DCMAKE_INSTALL_PREFIX=$(TARGET_DIR)/usr 
-P cmake_install.cmake2;         \
+    )
+    sed -i -e '/SHIBOKEN_BINARY/d' 
$(STAGING_DIR)/lib/cmake/Shiboken-1.2.1/ShibokenConfig-python2.7.cmake
+    echo 'set(SHIBOKEN_BINARY "$(HOST_DIR)/usr/bin/shiboken")' >> 
$(STAGING_DIR)/lib/cmake/Shiboken-1.2.1/ShibokenConfig-python2.7.cmake
+    rm -rf $(TARGET_DIR)/include/shiboken
+    rm -rf $(TARGET_DIR)/usr/bin/shiboken
+    rm -rf $(TARGET_DIR)/usr/lib/cmake/Shiboken*
+    rm -rf $(TARGET_DIR)//usr/lib/pkgconfig/shiboken.pc
+    echo "shiboken target OK";
+endef
+
+
+define SHIBOKEN_INSTALL_STAGING_CMDS
+    $(TARGET_MAKE_ENV) $(SHIBOKEN_MAKE_ENV) $(MAKE) 
$(SHIBOKEN_MAKE_OPT) -C $(@D)/build install
+endef
+
+$(eval $(generic-package))
+$(eval $(host-generic-package))

             reply	other threads:[~2013-09-19 10:03 UTC|newest]

Thread overview: 7+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2013-09-19 10:03 Thierry Bultel [this message]
2013-09-19 15:34 ` [Buildroot] [PATCH] Add pyside + shiboken packages Thomas Petazzoni
     [not found]   ` <523C5EFC.5040204@wanadoo.fr>
     [not found]     ` <20130920175457.65a4d63c@skate>
2013-09-21  5:41       ` Thierry Bultel
2013-09-21  7:38         ` Thomas Petazzoni
2013-09-24 16:41           ` Thierry Bultel
2014-10-12  8:44 ` Thomas Petazzoni
     [not found]   ` <543CF12B.9050503@wanadoo.fr>
2014-10-14 21:58     ` Thomas Petazzoni

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=523ACBFA.2070401@wanadoo.fr \
    --to=thierry.bultel@wanadoo.fr \
    --cc=buildroot@busybox.net \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.