* now symlink script more generic

This commit is contained in:
Caner Candan 2010-12-22 18:23:45 +01:00
commit 6e2041d58a

View file

@ -6,7 +6,16 @@ SOURCE = "@CMAKE_SOURCE_DIR@"
BINARY = "@CMAKE_BINARY_DIR@" BINARY = "@CMAKE_BINARY_DIR@"
PREFIX = "/usr" PREFIX = "/usr"
DATA = {
'dirs': [ "%s/share/%s" % (PREFIX, NAME) ],
'links': [ ("%s/src" % SOURCE, "%s/include/%s" % (PREFIX, NAME)),
("%s/doc" % BINARY, "%s/share/%s/doc" % (PREFIX, NAME)),
("%s/%s.pc" % (BINARY, NAME), "%s/lib/pkgconfig/%s.pc" % (PREFIX, NAME)),
]
}
LIBRARIES = ["libcma.a", "libeo.a", "libeoutils.a", "libes.a", "libga.a"] LIBRARIES = ["libcma.a", "libeo.a", "libeoutils.a", "libes.a", "libga.a"]
DATA['links'] += [ ("%s/lib/%s" % (BINARY, lib), "%s/lib/%s" % (PREFIX, lib)) for lib in LIBRARIES ]
import os, sys import os, sys
@ -17,50 +26,27 @@ def isroot():
return True return True
def uninstall(): def uninstall():
# remove libraries' symlink for dummy, link in DATA['links']: os.remove(link)
for lib in LIBRARIES: for dirname in DATA['dirs']: os.rmdir(dirname)
os.remove( "%s/lib/%s" % (PREFIX, lib) )
# remove headers' symlink
os.remove( "%s/include/%s" % (PREFIX,NAME) )
# remove doc's symlink
os.remove( "%s/share/%s/doc" % (PREFIX, NAME) )
# remove share directory
os.rmdir( "%s/share/%s" % (PREFIX, NAME) )
# remove pkgconfig's symlink
os.remove( "%s/lib/pkgconfig/%s.pc" % (PREFIX, NAME) )
print 'All symlinks have been removed.' print 'All symlinks have been removed.'
def install(): def install():
# create symlink for libraries for dirname in DATA['dirs']: os.mkdir(dirname)
for lib in LIBRARIES: for src, dst in DATA['links']: os.symlink(src, dst)
os.symlink( "%s/lib/%s" % (BINARY, lib), "%s/lib/%s" % (PREFIX, lib) )
# create symlink for headers
os.symlink( "%s/src" % SOURCE, "%s/include/%s" % (PREFIX,NAME) )
# create share directory
os.mkdir( "%s/share/%s" % (PREFIX, NAME) )
# create symlink for doc
os.symlink( "%s/doc" % BINARY, "%s/share/%s/doc" % (PREFIX, NAME) )
# create symlink for pkgconfig
os.symlink( "%s/%s.pc" % (BINARY, NAME), "%s/lib/pkgconfig/%s.pc" % (PREFIX, NAME) )
print 'All symlinks have been installed.' print 'All symlinks have been installed.'
def data():
from pprint import pprint
pprint(DATA, width=200)
if __name__ == '__main__': if __name__ == '__main__':
if not isroot(): if not isroot():
sys.exit() sys.exit()
if len(sys.argv) < 2: if len(sys.argv) < 2:
print 'Usage: %s [install|uninstall]' % sys.argv[0] print 'Usage: %s [install|uninstall|data]' % sys.argv[0]
sys.exit() sys.exit()
if sys.argv[1] == 'install': install() if sys.argv[1] == 'install': install()
elif sys.argv[1] == 'uninstall': uninstall() elif sys.argv[1] == 'uninstall': uninstall()
elif sys.argv[1] == 'data': data()