mirror of
				https://github.com/saitohirga/WSJT-X.git
				synced 2025-10-29 20:10:28 -04: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) ;
 |