⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 jamfile.v2

📁 Boost provides free peer-reviewed portable C++ source libraries. We emphasize libraries that work
💻 V2
字号:
# $Id: Jamfile.v2 42230 2007-12-21 11:51:05Z anthonyw $# Copyright 2006-2007 Roland Schwarz.# Copyright 2007 Anthony Williams# 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)########################################################################## The boost threading library can be built on top of different API's# Currently this is the win32 API and the pthreads API.# Pthread is native on unix variants.# To get pthread on windows you need the pthread win32 library# http://sourceware.org/pthreads-win32 which is available under LGPL.## You need to provide the include path and lib path in the variables# PTW32_INCLUDE and PTW32_LIB respectively. You can specify these# paths in site-config.jam, user-config.jam or in the environment.# A new feature is provided to request a specific API:# <threadapi>win32 and <threadapi)pthread.## The naming of the resulting libraries is mostly the same for the# variant native to the build platform, i.e.# boost_thread and the boost specific tagging.# For the library variant that is not native on the build platform# an additional tag is applied:# boost_thread_pthread for the pthread variant on windows, and# boost_thread_win32 for the win32 variant (likely when built on cygwin).## To request the pthread variant on windows, from boost root you would# say e.g:# bjam msvc-8.0 --with-thread install threadapi=pthread#########################################################################import os ;import feature ;import indirect ;import path ;project boost/thread    : source-location ../src    : requirements <threading>multi      <link>static:<define>BOOST_THREAD_BUILD_LIB=1      <link>shared:<define>BOOST_THREAD_BUILD_DLL=1      -<tag>@$(BOOST_JAMROOT_MODULE)%$(BOOST_JAMROOT_MODULE).tag      <tag>@$(__name__).tag    : default-build <threading>multi    ;local rule default_threadapi ( ){    local api = pthread ;    if [ os.name ] = "NT" { api = win32 ; }    return $(api) ;}feature.feature threadapi : pthread win32 : propagated ;feature.set-default threadapi : [ default_threadapi ] ;rule tag ( name : type ? : property-set ){    local result = $(name) ;        if $(type) in STATIC_LIB SHARED_LIB IMPORT_LIB    {        local api = [ $(property-set).get <threadapi> ] ;                # non native api gets additional tag        if $(api) != [ default_threadapi ] {            result = $(result)_$(api) ;        }    }        # forward to the boost tagging rule    return  [ indirect.call $(BOOST_JAMROOT_MODULE)%$(BOOST_JAMROOT_MODULE).tag                 $(result) : $(type) : $(property-set) ] ;}rule win32_pthread_paths ( properties * ){    local result ;    local PTW32_INCLUDE ;    local PTW32_LIB ;    PTW32_INCLUDE  = [ modules.peek             : PTW32_INCLUDE ] ;    PTW32_LIB      = [ modules.peek             : PTW32_LIB     ] ;    PTW32_INCLUDE ?= [ modules.peek user-config : PTW32_INCLUDE ] ;    PTW32_LIB     ?= [ modules.peek user-config : PTW32_LIB     ] ;    PTW32_INCLUDE ?= [ modules.peek site-config : PTW32_INCLUDE ] ;    PTW32_LIB     ?= [ modules.peek site-config : PTW32_LIB     ] ;    if ! ( $(PTW32_INCLUDE) && $(PTW32_LIB) )    {        if  ! $(.notified)        {            echo "************************************************************" ;            echo "Trying to build Boost.Thread with pthread support."           ;            echo "If you need pthread you should specify the paths."            ;            echo "You can specify them in site-config.jam, user-config.jam"     ;            echo "or in the environment."                                       ;            echo "For example:"                                                 ;            echo "PTW32_INCLUDE=C:\\Program Files\\ptw32\\Pre-built2\\include"  ;            echo "PTW32_LIB=C:\\Program Files\\ptw32\\Pre-built2\\lib"          ;            echo "************************************************************" ;            .notified = true ;        }    }    else    {        local include_path = [ path.make $(PTW32_INCLUDE) ] ;        local lib_path = [ path.make $(PTW32_LIB) ] ;        local libname = pthread ;        if <toolset>msvc in $(properties)        {            libname = $(libname)VC2.lib ;        }        if <toolset>gcc in $(properties)        {            libname = lib$(libname)GC2.a ;        }        lib_path = [ path.glob $(lib_path) : $(libname) ] ;        if ! $(lib_path)        {            if  ! $(.notified)            {                echo "************************************************************" ;                echo "Trying to build Boost.Thread with pthread support."           ;                echo "But the library" $(libname) "could not be found in path"      ;                echo $(PTW32_LIB)                                                   ;                echo "************************************************************" ;                .notified = true ;            }        }        else         {            result += <include>$(include_path) ;            result += <library>$(lib_path) ;        }    }    return $(result) ;}rule usage-requirements ( properties * ){    local result ;    if <threadapi>pthread in $(properties)    {        result += <define>BOOST_THREAD_POSIX ;        if <target-os>windows in $(properties)        {            result += [ win32_pthread_paths $(properties) ] ;            # TODO: What is for static linking? Is the <library> also needed            # in that case?        }    }    return $(result) ;}rule requirements ( properties * ){    local result ;    if <threadapi>pthread in $(properties)    {        result += <define>BOOST_THREAD_POSIX ;        if <target-os>windows in $(properties)         {            local paths = [ win32_pthread_paths $(properties) ] ;            if $(paths)            {                result += $(paths) ;            }            else            {                result = <build>no ;            }        }    }    return $(result) ;}alias thread_sources    : ## win32 sources ##      win32/thread.cpp      win32/exceptions.cpp      win32/tss_dll.cpp      win32/tss_pe.cpp    : ## requirements ##      <threadapi>win32    ;alias thread_sources    : ## pthread sources ##      pthread/thread.cpp      pthread/exceptions.cpp      pthread/once.cpp    : ## requirements ##      <threadapi>pthread    ;explicit thread_sources ;lib boost_thread    : thread_sources    : <conditional>@requirements    :    : <link>shared:<define>BOOST_THREAD_USE_DLL=1      <link>static:<define>BOOST_THREAD_USE_LIB=1      <conditional>@usage-requirements    ;

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -