mirror of
				https://github.com/saitohirga/WSJT-X.git
				synced 2025-11-03 13:30:52 -05:00 
			
		
		
		
	
		
			
				
	
	
		
			176 lines
		
	
	
		
			5.1 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
			
		
		
	
	
			176 lines
		
	
	
		
			5.1 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
# Copyright David Abrahams 2001-2006. Distributed under the Boost
 | 
						|
# Software License, Version 1.0. (See accompanying
 | 
						|
# file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 | 
						|
 | 
						|
import os ;
 | 
						|
import indirect ;
 | 
						|
import modules ;
 | 
						|
import feature ;
 | 
						|
 | 
						|
import python ;
 | 
						|
 | 
						|
if ! [ python.configured ] && ! ( --without-python in  [ modules.peek : ARGV ] )
 | 
						|
{
 | 
						|
    # Attempt default configuration of python
 | 
						|
    import toolset : using ;
 | 
						|
    using python ;
 | 
						|
}
 | 
						|
 | 
						|
if [ python.configured ] || ( --without-python in  [ modules.peek : ARGV ] )
 | 
						|
{
 | 
						|
    alias config-warning ;
 | 
						|
}
 | 
						|
else
 | 
						|
{
 | 
						|
    message config-warning
 | 
						|
        : "warning: No python installation configured and autoconfiguration"
 | 
						|
        : "note: failed.  See http://www.boost.org/libs/python/doc/building.html"
 | 
						|
        : "note: for configuration instructions or pass --without-python to"
 | 
						|
        : "note: suppress this message and silently skip all Boost.Python targets"
 | 
						|
        ;
 | 
						|
}
 | 
						|
 | 
						|
rule find-py3-version
 | 
						|
{
 | 
						|
    local versions = [ feature.values python ] ;
 | 
						|
    local py3ver ;
 | 
						|
    for local v in $(versions)
 | 
						|
    {
 | 
						|
        if $(v) >= 3.0
 | 
						|
        {
 | 
						|
            py3ver = $(v) ;
 | 
						|
        }
 | 
						|
    }
 | 
						|
    return $(py3ver) ;
 | 
						|
}
 | 
						|
 | 
						|
py3-version = [ find-py3-version ] ;
 | 
						|
 | 
						|
project boost/python
 | 
						|
  : source-location ../src
 | 
						|
  ;
 | 
						|
 | 
						|
rule cond ( test ? : yes * : no * ) { if $(test) { return $(yes) ; } else { return $(no) ; } }
 | 
						|
rule unless ( test ? : yes * : no * ) { if ! $(test) { return $(yes) ; } else { return $(no) ; } }
 | 
						|
 | 
						|
rule lib_boost_python ( is-py3 ? )
 | 
						|
{
 | 
						|
 | 
						|
    lib [ cond $(is-py3) : boost_python3 : boost_python ]
 | 
						|
        : # sources
 | 
						|
        numeric.cpp
 | 
						|
        list.cpp
 | 
						|
        long.cpp
 | 
						|
        dict.cpp
 | 
						|
        tuple.cpp
 | 
						|
        str.cpp
 | 
						|
        slice.cpp
 | 
						|
 | 
						|
        converter/from_python.cpp
 | 
						|
        converter/registry.cpp
 | 
						|
        converter/type_id.cpp
 | 
						|
        object/enum.cpp
 | 
						|
        object/class.cpp
 | 
						|
        object/function.cpp
 | 
						|
        object/inheritance.cpp
 | 
						|
        object/life_support.cpp
 | 
						|
        object/pickle_support.cpp
 | 
						|
        errors.cpp
 | 
						|
        module.cpp
 | 
						|
        converter/builtin_converters.cpp
 | 
						|
        converter/arg_to_python_base.cpp
 | 
						|
        object/iterator.cpp
 | 
						|
        object/stl_iterator.cpp
 | 
						|
        object_protocol.cpp
 | 
						|
        object_operators.cpp
 | 
						|
        wrapper.cpp
 | 
						|
        import.cpp
 | 
						|
        exec.cpp
 | 
						|
        object/function_doc_signature.cpp
 | 
						|
        :   # requirements
 | 
						|
            <link>static:<define>BOOST_PYTHON_STATIC_LIB 
 | 
						|
            <define>BOOST_PYTHON_SOURCE
 | 
						|
          
 | 
						|
            # On Windows, all code using Python has to link to the Python
 | 
						|
            # import library.
 | 
						|
            #
 | 
						|
            # On *nix we never link libboost_python to libpython.  When
 | 
						|
            # extending Python, all Python symbols are provided by the
 | 
						|
            # Python interpreter executable.  When embedding Python, the
 | 
						|
            # client executable is expected to explicitly link to
 | 
						|
            # /python//python (the target representing libpython) itself.
 | 
						|
            #
 | 
						|
            # python_for_extensions is a target defined by Boost.Build to
 | 
						|
            # provide the Python include paths, and on Windows, the Python
 | 
						|
            # import library, as usage requirements.
 | 
						|
            [ cond [ python.configured ] : <library>/python//python_for_extensions ]
 | 
						|
            
 | 
						|
            # we prevent building when there is no python available
 | 
						|
            # as it's not possible anyway, and to cause dependents to
 | 
						|
            # fail to build
 | 
						|
            [ unless [ python.configured ] : <build>no ]
 | 
						|
            <dependency>config-warning
 | 
						|
 | 
						|
            <python-debugging>on:<define>BOOST_DEBUG_PYTHON
 | 
						|
            [ cond $(is-py3) : <python>$(py3-version) ]
 | 
						|
 | 
						|
            -<tag>@$(BOOST_JAMROOT_MODULE)%$(BOOST_JAMROOT_MODULE).tag
 | 
						|
            <tag>@$(BOOST_JAMROOT_MODULE)%$(BOOST_JAMROOT_MODULE).python-tag
 | 
						|
 | 
						|
        :   # default build
 | 
						|
            <link>shared
 | 
						|
        :   # usage requirements
 | 
						|
            <link>static:<define>BOOST_PYTHON_STATIC_LIB
 | 
						|
            <python-debugging>on:<define>BOOST_DEBUG_PYTHON
 | 
						|
        ;
 | 
						|
}
 | 
						|
 | 
						|
rule lib_boost_numpy ( is-py3 ? )
 | 
						|
{
 | 
						|
    numpy-include = [ python.numpy-include ] ;
 | 
						|
    lib [ cond $(is-py3) : boost_numpy3 : boost_numpy ]
 | 
						|
        : # sources
 | 
						|
        numpy/dtype.cpp
 | 
						|
        numpy/matrix.cpp
 | 
						|
        numpy/ndarray.cpp
 | 
						|
	numpy/numpy.cpp
 | 
						|
	numpy/scalars.cpp
 | 
						|
	numpy/ufunc.cpp
 | 
						|
        :   # requirements
 | 
						|
            [ cond [ python.numpy ] : <library>/python//python_for_extensions ]
 | 
						|
            [ unless [ python.numpy ] : <build>no ]
 | 
						|
	    <include>$(numpy-include)
 | 
						|
	    <library>boost_python
 | 
						|
            <python-debugging>on:<define>BOOST_DEBUG_PYTHON
 | 
						|
            [ cond $(is-py3) : <python>$(py3-version) ]
 | 
						|
 | 
						|
            -<tag>@$(BOOST_JAMROOT_MODULE)%$(BOOST_JAMROOT_MODULE).tag
 | 
						|
            <tag>@$(BOOST_JAMROOT_MODULE)%$(BOOST_JAMROOT_MODULE).python-tag
 | 
						|
 | 
						|
        :   # default build
 | 
						|
            <link>shared
 | 
						|
        :   # usage requirements
 | 
						|
            <python-debugging>on:<define>BOOST_DEBUG_PYTHON
 | 
						|
        ;
 | 
						|
}
 | 
						|
 | 
						|
libraries = boost_python ;
 | 
						|
libraries3 = boost_python3 ;
 | 
						|
if [ python.numpy ]
 | 
						|
{
 | 
						|
    libraries += boost_numpy ;
 | 
						|
    libraries3 += boost_numpy3 ;
 | 
						|
}
 | 
						|
 | 
						|
lib_boost_python ;
 | 
						|
lib_boost_numpy ;
 | 
						|
 | 
						|
if $(py3-version)
 | 
						|
{
 | 
						|
    lib_boost_python yes ;
 | 
						|
    lib_boost_numpy yes ;
 | 
						|
    libraries += $(libraries3) ;
 | 
						|
}
 | 
						|
 | 
						|
boost-install $(libraries) ;
 |