From 9a45cb7aaece80bb513f188a3696045f401019d8 Mon Sep 17 00:00:00 2001 From: Aleksey Lim Date: Tue, 17 Mar 2009 01:52:35 +0000 Subject: Use python version to separate binary blobs --- diff --git a/colors.py b/colors.py index a0293cf..e2aabbe 100755 --- a/colors.py +++ b/colors.py @@ -39,13 +39,7 @@ except (ImportError, AttributeError): import simplejson as json # Import the C++ component of the activity. -try: - from colorsc.colorsc import * -except: - try: - from colorsc.linux32.colorsc import * - except: - from colorsc.linux64.colorsc import * +from colorsc import * # Import PyGTK. import gobject, pygtk, gtk, pango diff --git a/colorsc/Makefile b/colorsc/Makefile index 7cc53e6..5e1bab3 100644 --- a/colorsc/Makefile +++ b/colorsc/Makefile @@ -9,20 +9,23 @@ LDFLAGS = $(shell pkg-config --libs gdk-x11-2.0) \ $(shell python-config --libs) ARCH = $(shell arch | grep 64 >/dev/null && echo linux64 || echo linux32) +PYTHON_VERSION = $(shell python -c 'import sys; print "%d%d" % sys.version_info[0:2]') +LIB_DIR = $(ARCH)_$(PYTHON_VERSION) -all : _colorsc.so - rm -rf $(ARCH) - mkdir $(ARCH) - mv _colorsc.so colorsc.py $(ARCH)/ - touch $(ARCH)/__init__.py +all : _colorsclib.so + rm -rf $(LIB_DIR) + mkdir $(LIB_DIR) + strip -s _colorsclib.so + mv _colorsclib.so colorsclib.py $(LIB_DIR)/ + touch $(LIB_DIR)/__init__.py clean: - rm -rf _colorsc.so colorsc.cpp colorsc.py colorsc.pyc *.o + rm -rf _colorsclib.so colorsclib.cpp colorsclib.py colorsclib.pyc *.o %.cpp: %.i swig -c++ -python -o $*.cpp $< -canvas.o: colorsc.h canvas.h +_canvas.o: colorsc.h canvas.h -_colorsc.so: colorsc.o canvas.o +_colorsclib.so: colorsclib.o canvas.o $(CXX) -shared $(LDFLAGS) -o $@ $^ diff --git a/colorsc/__init__.py b/colorsc/__init__.py index e69de29..3226bb8 100644 --- a/colorsc/__init__.py +++ b/colorsc/__init__.py @@ -0,0 +1,21 @@ +import os +import sys +import logging + +_sys_path = sys.path +_root_path = os.path.dirname(__file__) + +for i in os.listdir(_root_path): + path = os.path.join(_root_path, i) + if (os.path.isdir(path)): + sys.path = _sys_path + [os.path.join('.', path)] + try: + from colorsclib import * + logging.debug('use %s blobs' % path) + _sys_path = None + break + except Exception, e: + logging.debug('skip %s blobs: %s' % (path, e)) + +if _sys_path: + raise('cannot find proper binary blobs') diff --git a/colorsc/colorsc.i b/colorsc/colorsclib.i index 47c96ec..f29fe6d 100644 --- a/colorsc/colorsc.i +++ b/colorsc/colorsclib.i @@ -15,7 +15,7 @@ You should have received a copy of the GNU General Public License along with Colors. If not, see . */ -%module colorsc +%module colorsclib %{ #include -- cgit v0.9.1