# -*- coding: utf-8 -*-
import os
import site
from distutils.sysconfig import get_python_inc, get_python_lib
import SCons.Util
env = Environment()
# Take environment variables into account
# (see https://bugs.launchpad.net/pyexiv2/+bug/249835)
if os.environ.has_key('CXX'):
env['CXX'] = os.environ['CXX']
if os.environ.has_key('CXXFLAGS'):
env['CXXFLAGS'] += SCons.Util.CLVar(os.environ['CXXFLAGS'])
if os.environ.has_key('LDFLAGS'):
env['LINKFLAGS'] += SCons.Util.CLVar(os.environ['LDFLAGS'])
# Include directories to look for 'Python.h' in
env.Append(CPPPATH=[get_python_inc(plat_specific=True)])
# Libraries to link against
# On some systems, boost_python is actually called boost_python-mt.
# Use the BOOSTLIB argument to override the default value.
# See https://bugs.launchpad.net/pyexiv2/+bug/523858.
libs = [ARGUMENTS.get('BOOSTLIB', 'boost_python'), 'exiv2']
env.Append(LIBS=libs)
# Build shared library libpyexiv2
cpp_sources = ['exiv2wrapper.cpp', 'exiv2wrapper_python.cpp']
libpyexiv2 = env.SharedLibrary('exiv2python', cpp_sources)
env.Alias('lib', libpyexiv2)
# Install the shared library and the Python modules, invoked with
# 'scons install'.
try:
user_site = GetOption('user')
except AttributeError:
user_site = False
if user_site:
# Install in the current user site directory.
# See http://www.python.org/dev/peps/pep-0370/ for reference.
install_dir = site.USER_SITE
else:
python_lib_path = get_python_lib(plat_specific=True)
# If DESTDIR is specified on the command line when invoking
# scons, its value will be prepended to each installed target file. See
# http://www.gnu.org/prep/standards/html_node/DESTDIR.html for reference.
dest_dir = ARGUMENTS.get('DESTDIR')
if dest_dir is None or not os.path.isabs(dest_dir):
install_dir = python_lib_path
else:
install_dir = os.path.join(dest_dir, python_lib_path[1:])
env.Install(install_dir, [libpyexiv2])
modules = ['__init__', 'metadata', 'exif', 'iptc', 'xmp', 'utils']
env.Install(os.path.join(install_dir, 'pyexiv2'),
['pyexiv2/%s.py' % module for module in modules])
env.Alias('install', install_dir)