diff options
author | David Sommerseth <davids@redhat.com> | 2009-06-11 15:07:47 +0200 |
---|---|---|
committer | David Sommerseth <davids@redhat.com> | 2009-06-11 15:07:47 +0200 |
commit | 1d8478a6437e9eb4cd12c679c8dbd26dc2c344e1 (patch) | |
tree | 06a6003d71e273963b1aa78822214345209eb317 /src/setup_common.py | |
parent | 15463a7100a1d22ff2692f39d3a66f1d42eee3f7 (diff) | |
download | python-dmidecode-1d8478a6437e9eb4cd12c679c8dbd26dc2c344e1.tar.gz python-dmidecode-1d8478a6437e9eb4cd12c679c8dbd26dc2c344e1.tar.xz python-dmidecode-1d8478a6437e9eb4cd12c679c8dbd26dc2c344e1.zip |
Improved setup.py/setup-dbg.py even more
Get libxml2 compile time info from xml2-config. Retrieve
version number from src/version.h
Diffstat (limited to 'src/setup_common.py')
-rw-r--r-- | src/setup_common.py | 83 |
1 files changed, 83 insertions, 0 deletions
diff --git a/src/setup_common.py b/src/setup_common.py new file mode 100644 index 0000000..fda01a8 --- /dev/null +++ b/src/setup_common.py @@ -0,0 +1,83 @@ +# +# setup-common.py +# Helper functions for retrieving libxml2 arguments needed for compilation +# and other functions which is used in both setup.py and setup-dbg.py +# +# Copyright 2009 David Sommerseth <davids@redhat.com> +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +# +# For the avoidance of doubt the "preferred form" of this code is one which +# is in an open unpatent encumbered format. Where cryptographic key signing +# forms part of the process of creating an executable the information +# including keys needed to generate an equivalently functional executable +# are deemed to be part of the source code. +# + +import commands, sys + +# libxml2 - C flags +def libxml2_include(incdir): + (res, libxml2_cflags) = commands.getstatusoutput("xml2-config --cflags") + if res != 0: + print "Could not build python-dmidecode." + print "Could not run xml2-config, is libxml2 installed?" + print "Also the development libraries?" + sys.exit(1) + + # Parse the xml2-config --cflags response + for l in libxml2_cflags.split(" "): + if l.find('-I') == 0: + incdir.append(l.replace("-I", "", 1)) + + + +# libxml2 - library flags +def libxml2_lib(libdir, libs): + (res, libxml2_libs) = commands.getstatusoutput("xml2-config --libs") + if res != 0: + print "Could not build python-dmidecode." + print "Could not run xml2-config, is libxml2 installed?" + print "Also the development libraries?" + sys.exit(1) + + # Parse the xml2-config --libs response + for l in libxml2_libs.split(" "): + if l.find('-L') == 0: + libdir.append(l.replace("-L", "", 1)) + elif l.find('-l') == 0: + libs.append(l.replace("-l", "", 1)) + + # this library is not reported and we need it anyway + libs.append('xml2mod') + + + +# Get version from src/version.h +def get_version(): + f = open("src/version.h") + version = "0.0.0" + try: + for line in f: + part = line.split(" ") + if part[0] == "#define": + if part[1] == "VERSION": + version = part[2].strip().strip('"') + break + finally: + f.close() + + return version + |