diff options
author | Aleksey Lim <alsroot@member.fsf.org> | 2009-03-17 01:52:35 (GMT) |
---|---|---|
committer | Aleksey Lim <alsroot@member.fsf.org> | 2009-03-17 01:52:35 (GMT) |
commit | 9a45cb7aaece80bb513f188a3696045f401019d8 (patch) | |
tree | 6a807a9827317cb970f3089fea565fcb98d2f7a6 /colorsc | |
parent | 7caf8355a03560c239e9369b21fe2f872e38fecf (diff) |
Use python version to separate binary blobs
Diffstat (limited to 'colorsc')
-rw-r--r-- | colorsc/Makefile | 19 | ||||
-rw-r--r-- | colorsc/__init__.py | 21 | ||||
-rw-r--r-- | colorsc/colorsclib.i (renamed from colorsc/colorsc.i) | 2 |
3 files changed, 33 insertions, 9 deletions
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 <http://www.gnu.org/licenses/>. */ -%module colorsc +%module colorsclib %{ #include <pygobject.h> |