diff options
author | Sebastian Koslowski <koslowski@kit.edu> | 2017-01-12 21:43:48 +0100 |
---|---|---|
committer | Sebastian Koslowski <koslowski@kit.edu> | 2017-01-23 21:33:37 +0100 |
commit | 395bd4415cc92217886d0f2a4f026a6070e1748b (patch) | |
tree | 5fc558976017b17ccf19d2b69e8f3ed2342ff9cf | |
parent | 98806de9e5b623b8301426f648e097f408369316 (diff) |
grc: gtk3: update cmake requirements
-rw-r--r-- | cmake/Modules/GrPython.cmake | 28 | ||||
-rw-r--r-- | grc/CMakeLists.txt | 76 | ||||
-rwxr-xr-x | grc/scripts/gnuradio-companion | 1 |
3 files changed, 87 insertions, 18 deletions
diff --git a/cmake/Modules/GrPython.cmake b/cmake/Modules/GrPython.cmake index 49461e5319..b5cbc4cec2 100644 --- a/cmake/Modules/GrPython.cmake +++ b/cmake/Modules/GrPython.cmake @@ -77,11 +77,25 @@ endif(PYTHON_EXECUTABLE) # - cmd an additional command to run # - have the result variable to set ######################################################################## +macro(GR_PYTHON_CHECK_MODULE_RAW desc python_code have) + execute_process( + COMMAND ${PYTHON_EXECUTABLE} -c "${python_code}" + RESULT_VARIABLE return_code + ) + if(return_code EQUAL 0) + message(STATUS "Python checking for ${desc} - found") + set(${have} TRUE) + else() + message(STATUS "Python checking for ${desc} - not found") + set(${have} FALSE) + endif() +endmacro(GR_PYTHON_CHECK_MODULE_RAW) + macro(GR_PYTHON_CHECK_MODULE desc mod cmd have) message(STATUS "") message(STATUS "Python checking for ${desc}") - execute_process( - COMMAND ${PYTHON_EXECUTABLE} -c " + GR_PYTHON_CHECK_MODULE_RAW( + "${desc}" " ######################################### try: import ${mod} @@ -89,15 +103,7 @@ try: except ImportError, AssertionError: exit(-1) except: pass #########################################" - RESULT_VARIABLE ${have} - ) - if(${have} EQUAL 0) - message(STATUS "Python checking for ${desc} - found") - set(${have} TRUE) - else(${have} EQUAL 0) - message(STATUS "Python checking for ${desc} - not found") - set(${have} FALSE) - endif(${have} EQUAL 0) + "${have}") endmacro(GR_PYTHON_CHECK_MODULE) ######################################################################## diff --git a/grc/CMakeLists.txt b/grc/CMakeLists.txt index 3aa05e912a..264debcaf1 100644 --- a/grc/CMakeLists.txt +++ b/grc/CMakeLists.txt @@ -1,4 +1,4 @@ -# Copyright 2011,2013 Free Software Foundation, Inc. +# Copyright 2011,2013,2017 Free Software Foundation, Inc. # # This file is part of GNU Radio # @@ -22,11 +22,70 @@ ######################################################################## include(GrPython) -GR_PYTHON_CHECK_MODULE("python >= 2.5" sys "sys.version.split()[0] >= '2.5'" PYTHON_MIN_VER_FOUND) -GR_PYTHON_CHECK_MODULE("Cheetah >= 2.0.0" Cheetah "Cheetah.Version >= '2.0.0'" CHEETAH_FOUND) -GR_PYTHON_CHECK_MODULE("lxml >= 1.3.6" lxml.etree "lxml.etree.LXML_VERSION >= (1, 3, 6, 0)" LXML_FOUND) -GR_PYTHON_CHECK_MODULE("pygtk >= 2.10.0" gtk "gtk.pygtk_version >= (2, 10, 0)" PYGTK_FOUND) -GR_PYTHON_CHECK_MODULE("numpy" numpy True NUMPY_FOUND) +message(STATUS "") + +GR_PYTHON_CHECK_MODULE_RAW( + "python2 >= 2.7.6 or python3 >= 3.4.0" + "import sys; \ + requirement = (3, 4, 0) if sys.version_info.major >= 3 else (2, 7, 6); \ + assert sys.version_info[:3] >= requirement" + PYTHON_MIN_VER_FOUND +) + +GR_PYTHON_CHECK_MODULE_RAW( + "Cheetah >= 2.0.0" + "import Cheetah; assert Cheetah.Version >= '2.0.0'" + CHEETAH_FOUND +) + +GR_PYTHON_CHECK_MODULE_RAW( + "PyYAML >= 3.10" + "import yaml; assert yaml.__version__ >= '3.11'" + PYYAML_FOUND +) + +GR_PYTHON_CHECK_MODULE_RAW( + "mako >= 0.9.1" + "import mako; assert mako.__version__ >= '0.9.1'" + MAKO_FOUND +) + +GR_PYTHON_CHECK_MODULE_RAW( + "lxml >= 1.3.6" + "import lxml.etree; assert lxml.etree.LXML_VERSION >= (1, 3, 6, 0)" + LXML_FOUND +) + +GR_PYTHON_CHECK_MODULE_RAW( + "pygobject >= 2.28.6" + "import gi; assert gi.version_info >= (2, 28, 6)" + PYGI_FOUND +) + +GR_PYTHON_CHECK_MODULE_RAW( + "Gtk (GI) >= 3.10.8" + "import gi; gi.require_version('Gtk', '3.0'); \ + from gi.repository import Gtk; Gtk.check_version(3, 10, 8)" + GTK_GI_FOUND +) + +GR_PYTHON_CHECK_MODULE_RAW( + "Cairo (GI) >= 1.0" + "import gi; gi.require_foreign('cairo', 'Context')" # Cairo 1.13.0 + CAIRO_GI_FOUND +) + +GR_PYTHON_CHECK_MODULE_RAW( + "PangoCairo (GI) >= 1.0" + "import gi; gi.require_version('PangoCairo', '1.0')" # pangocairo 1.36.3 + PANGOCAIRO_GI_FOUND +) + +GR_PYTHON_CHECK_MODULE_RAW( + "numpy" + "import numpy" + NUMPY_FOUND +) ######################################################################## # Register component @@ -37,7 +96,10 @@ if(NOT CMAKE_CROSSCOMPILING) PYTHON_MIN_VER_FOUND CHEETAH_FOUND LXML_FOUND - PYGTK_FOUND + PYGI_FOUND + GTK_GI_FOUND + CAIRO_GI_FOUND + PANGOCAIRO_GI_FOUND NUMPY_FOUND ) endif(NOT CMAKE_CROSSCOMPILING) diff --git a/grc/scripts/gnuradio-companion b/grc/scripts/gnuradio-companion index c36837187c..de776f22a7 100755 --- a/grc/scripts/gnuradio-companion +++ b/grc/scripts/gnuradio-companion @@ -58,6 +58,7 @@ def check_gtk(): import gi gi.require_version('Gtk', '3.0') gi.require_version('PangoCairo', '1.0') + gi.require_foreign('cairo', 'Context') from gi.repository import Gtk Gtk.init_check() |