Adds builders and construction variables for Boost.Python to an Environment.
(env)
| 81 | LdModuleLinkAction = SCons.Action.Action("$BOOST_PYTHON_LDMODULECOM", "$BOOST_PYTHON_LDMODULECOMSTR") |
| 82 | |
| 83 | def generate(env): |
| 84 | """ |
| 85 | Adds builders and construction variables for Boost.Python to an |
| 86 | Environment. |
| 87 | """ |
| 88 | env.SetDefault( |
| 89 | BOOST_PYTHON_TOOL_ERR = '', |
| 90 | BOOST_PYTHON_CPPFLAGS = ['$PYTHON_BASECFLAGS'], |
| 91 | BOOST_PYTHON_CPPDEFINES = [], |
| 92 | BOOST_PYTHON_CPPPATH = ['$boostIncludeDir', '$PYTHON_INCLUDEPY'], |
| 93 | BOOST_PYTHON_CXX_SUFFIX = '.boost.python.cpp', |
| 94 | BOOST_PYTHON_LIBPATH = ['$boostPythonLibDir'], |
| 95 | BOOST_PYTHON_LIBS = ['$boostPythonLib'], |
| 96 | BOOST_PYTHON_SHLINK = '$PYTHON_LDSHARED', |
| 97 | BOOST_PYTHON_LDMODULE = '$BOOST_PYTHON_SHLINK', |
| 98 | BOOST_PYTHON_LDMODULEFLAGS = '', |
| 99 | _BOOST_PYTHON_CPPINCFLAGS = '$( ${_concat(INCPREFIX, BOOST_PYTHON_CPPPATH, INCSUFFIX, __env__, RDirs, TARGET)} $)', |
| 100 | _BOOST_PYTHON_CPPDEFFLAGS = '${_defines(CPPDEFPREFIX, BOOST_PYTHON_CPPDEFINES, CPPDEFSUFFIX, __env__)}', |
| 101 | _BOOST_PYTHON_LIBFLAGS = '${_stripixes(LIBLINKPREFIX, BOOST_PYTHON_LIBS, LIBLINKSUFFIX, LIBPREFIX, LIBSUFFIX, __env__)}', |
| 102 | _BOOST_PYTHON_LIBDIRFLAGS = '$( ${_concat(LIBDIRPREFIX, BOOST_PYTHON_LIBPATH, LIBDIRSUFFIX, __env__, RDirs, TARGET)} $)', |
| 103 | BOOST_PYTHON_SHCXXCOM = '$SHCXX $SHCXXFLAGS $CPPFLAGS $BOOST_PYTHON_CPPFLAGS $_CPPDEFFLAGS $_BOOST_PYTHON_CPPDEFFLAGS $_CPPINCFLAGS $_BOOST_PYTHON_CPPINCFLAGS -c -o $TARGET $SOURCES', |
| 104 | BOOST_PYTHON_LDMODULECOM = '$BOOST_PYTHON_LDMODULE $BOOST_PYTHON_LDMODULEFLAGS -o ${TARGET} $SOURCES $_LIBDIRFLAGS $_BOOST_PYTHON_LIBDIRFLAGS $_LIBFLAGS $_BOOST_PYTHON_LIBFLAGS', |
| 105 | ) |
| 106 | |
| 107 | boost_python_ld_module_link_action = SCons.Action.Action("$BOOST_PYTHON_LDMODULECOM", "$BOOST_PYTHON_LDMODULECOMSTR") |
| 108 | boost_python_shared_object_builder = SCons.Builder.Builder( |
| 109 | action = [ ShCXXAction ], |
| 110 | prefix = '$SHOBJPREFIX', |
| 111 | suffix = '$SHOBJSUFFIX', |
| 112 | src_suffix = '$BOOST_PYTHON_CXX_SUFFIX', |
| 113 | source_scanner = SCons.Tool.SourceFileScanner, |
| 114 | single_source = True |
| 115 | ) |
| 116 | boost_python_module_builder = SCons.Builder.Builder( |
| 117 | action = [ LdModuleLinkAction ], |
| 118 | prefix = '', |
| 119 | suffix = '$PYTHON_SO', |
| 120 | target_scanner = SCons.Tool.ProgramScanner, |
| 121 | src_suffix = '$SHOBJSUFFIX', |
| 122 | src_builder = 'BoostPythonSharedObject', |
| 123 | single_source = True |
| 124 | ) |
| 125 | env.AppendUnique(BUILDERS = {'BoostPythonSharedObject' : boost_python_shared_object_builder}) |
| 126 | env.AppendUnique(BUILDERS = {'BoostPythonModule' : boost_python_module_builder}) |
| 127 | |
| 128 | if env.subst('$runConfTests') in ['yes', '1']: |
| 129 | find(env) |
| 130 | |
| 131 | def exists(env): |
| 132 | return find(env) |