mirror of
https://github.com/boostorg/predef.git
synced 2025-07-29 11:37:13 +02:00
47
.travis.yml
47
.travis.yml
@ -4,28 +4,63 @@ notifications:
|
||||
email:
|
||||
recipients:
|
||||
- grafikrobot@gmail.com
|
||||
on_success: change
|
||||
on_failure: change
|
||||
irc:
|
||||
channels:
|
||||
- "chat.freenode.net#boost"
|
||||
template:
|
||||
- "%{repository}/%{branch} (%{commit} - %{author}): %{build_url}: %{message}"
|
||||
on_success: change
|
||||
on_failure: change
|
||||
|
||||
os:
|
||||
- linux
|
||||
sudo: required
|
||||
|
||||
env:
|
||||
matrix:
|
||||
- TRAVIS_EMPTY_JOB_WORKAROUND=true
|
||||
|
||||
matrix:
|
||||
exclude:
|
||||
- env: TRAVIS_EMPTY_JOB_WORKAROUND=true
|
||||
include:
|
||||
- env: TOOLSET=clang-3.4
|
||||
os: linux
|
||||
dist: precise
|
||||
- env: TOOLSET=clang-3.5
|
||||
os: linux
|
||||
dist: precise
|
||||
- env: TOOLSET=clang-3.6
|
||||
os: linux
|
||||
dist: precise
|
||||
- env: TOOLSET=gcc-4.7
|
||||
os: linux
|
||||
dist: precise
|
||||
- env: TOOLSET=gcc-4.8
|
||||
os: linux
|
||||
dist: precise
|
||||
- env: TOOLSET=gcc-4.9
|
||||
os: linux
|
||||
dist: precise
|
||||
- env: TOOLSET=gcc-5.1
|
||||
os: linux
|
||||
dist: precise
|
||||
- env: TOOLSET=xcode-6.1
|
||||
os: osx
|
||||
- env: TOOLSET=xcode-6.2
|
||||
os: osx
|
||||
osx_image: beta-xcode6.2
|
||||
- env: TOOLSET=xcode-6.3
|
||||
os: osx
|
||||
osx_image: beta-xcode6.3
|
||||
- env: TOOLSET=xcode-6.4
|
||||
os: osx
|
||||
osx_image: xcode6.4
|
||||
- env: TOOLSET=xcode-7.0
|
||||
os: osx
|
||||
osx_image: xcode7
|
||||
- env: TOOLSET=xcode-7.1
|
||||
os: osx
|
||||
osx_image: xcode7.1
|
||||
- env: TOOLSET=xcode-7.2
|
||||
os: osx
|
||||
osx_image: xcode7.2
|
||||
|
||||
before_install: wget "https://raw.githubusercontent.com/boostorg/regression/develop/ci/src/script.py"
|
||||
install: python script.py install
|
||||
|
201
check/predef.jam
201
check/predef.jam
@ -1,202 +1,17 @@
|
||||
# Copyright Rene Rivera 2015
|
||||
# Copyright Rene Rivera 2016
|
||||
# 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)
|
||||
|
||||
# Defines rules that provide requirements based on checking
|
||||
# conditions using Boost Predef definitions and version numbers.
|
||||
|
||||
# Hack, to reload check/predef.jam at its new location.
|
||||
import modules ;
|
||||
import project ;
|
||||
import feature ;
|
||||
import string ;
|
||||
import toolset ;
|
||||
import modules ;
|
||||
import path ;
|
||||
import "class" : new ;
|
||||
import regex ;
|
||||
|
||||
# Create a project for our targets.
|
||||
project.extension predef check ;
|
||||
|
||||
# Feature to pass check expressions to check programs.
|
||||
feature.feature predef-expression : : free ;
|
||||
|
||||
# Checks the expressions and when used evaluates to the true-properties
|
||||
# if the expressions are all true. Otherwise evaluates to the
|
||||
# false-properties.
|
||||
rule check ( expressions + : language ? : true-properties * : false-properties * )
|
||||
local _loaded_ ;
|
||||
for local _module_ in [ modules.peek modules : .loaded ]
|
||||
{
|
||||
# Default to C++ on the check context.
|
||||
language ?= cpp ;
|
||||
|
||||
local project_target = [ project.target $(__name__) ] ;
|
||||
project.push-current $(project_target) ;
|
||||
local terms ;
|
||||
local result ;
|
||||
for expression in $(expressions)
|
||||
if $(_module_) != "predef"
|
||||
{
|
||||
if $(expression:L) in "and" "or"
|
||||
{
|
||||
terms += $(expression:L) ;
|
||||
}
|
||||
else
|
||||
{
|
||||
# Create the check run if we don't have one yet.
|
||||
local key = [ MD5 $(language)::$(expression) ] ;
|
||||
if ! ( $(key) in $(_checks_) )
|
||||
{
|
||||
_checks_ += $(key) ;
|
||||
_message_(/check/predef//predef_check_cc_$(key)) = $(expression) ;
|
||||
check_target $(language) $(key) : [ change_term_to_def $(expression) ] ;
|
||||
}
|
||||
|
||||
terms += /check/predef//predef_check_cc_$(key) ;
|
||||
}
|
||||
}
|
||||
local instance = [ new check-expression-evaluator
|
||||
$(terms) : $(true-properties) : $(false-properties) ] ;
|
||||
result = <conditional>@$(instance).check ;
|
||||
project.pop-current ;
|
||||
return $(result) ;
|
||||
}
|
||||
|
||||
# Checks the expressions and when used evaluates to <build>no
|
||||
# if the expressions are all false. Otherwise evaluates to the
|
||||
# nothing.
|
||||
rule require ( expressions + : language ? )
|
||||
{
|
||||
return [ check $(expressions) : $(language) : : <build>no ] ;
|
||||
}
|
||||
|
||||
#############################################################################
|
||||
|
||||
.c.ext = c ;
|
||||
.cpp.ext = cpp ;
|
||||
.objc.ext = m ;
|
||||
.objcpp.ext = mm ;
|
||||
|
||||
# Check targets. Each needs to be compiled for different languages
|
||||
# even though they are all the same source code.
|
||||
local rule check_target ( language key : requirements * )
|
||||
{
|
||||
# Need to use absolute paths because we don't know the
|
||||
# context of the invocation which affects where the paths
|
||||
# originate from.
|
||||
local predef_jam
|
||||
= [ modules.binding $(__name__) ] ;
|
||||
local source_path
|
||||
= $(predef_jam:D)/predef_check_cc_as_$(language).$(.$(language).ext) ;
|
||||
local include_path
|
||||
= $(predef_jam:D)/../include ;
|
||||
obj predef_check_cc_$(key)
|
||||
: $(source_path)
|
||||
: <include>$(include_path) $(requirements) ;
|
||||
explicit predef_check_cc_$(key) ;
|
||||
return predef_check_cc_$(key) ;
|
||||
}
|
||||
|
||||
local rule change_term_to_def ( term )
|
||||
{
|
||||
local parts = [ regex.split $(term) " " ] ;
|
||||
if $(parts[3])
|
||||
{
|
||||
local version_number = [ regex.split $(parts[3]) "[.]" ] ;
|
||||
if ! $(version_number[3]) { version_number += "0" ; }
|
||||
if ! $(version_number[3]) { version_number += "0" ; }
|
||||
parts = $(parts[1-2]) BOOST_VERSION_NUMBER($(version_number:J=",")) ;
|
||||
}
|
||||
return <define>CHECK=\"$(parts:J=" ")\" ;
|
||||
}
|
||||
|
||||
class check-expression-evaluator
|
||||
{
|
||||
import configure ;
|
||||
|
||||
rule __init__ ( expression + : true-properties * : false-properties * )
|
||||
{
|
||||
self.expression = $(expression) ;
|
||||
self.true-properties = $(true-properties) ;
|
||||
self.false-properties = $(false-properties) ;
|
||||
}
|
||||
|
||||
rule check ( properties * )
|
||||
{
|
||||
local to-eval ;
|
||||
local tokens = "and" "or" ;
|
||||
# Go through the expression and: eval the target values,
|
||||
# and normalize to a full expression.
|
||||
for local term in $(self.expression)
|
||||
{
|
||||
if ! ( $(term:L) in $(tokens) )
|
||||
{
|
||||
# A value is a target reference that will evan to "true"
|
||||
# or "false".
|
||||
if $(to-eval[-1]:L) && ! ( $(to-eval[-1]:L) in $(tokens) )
|
||||
{
|
||||
# Default to "and" operation.
|
||||
to-eval += "and" ;
|
||||
}
|
||||
local message = [ modules.peek predef : _message_($(term)) ] ;
|
||||
if [ configure.builds $(term) : $(properties) : $(message) ]
|
||||
{
|
||||
to-eval += "true" ;
|
||||
}
|
||||
else
|
||||
{
|
||||
to-eval += "false" ;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
to-eval += $(term) ;
|
||||
}
|
||||
}
|
||||
# Eval full the expression.
|
||||
local eval-result = [ eval $(to-eval) ] ;
|
||||
# And resolve true/false properties.
|
||||
if $(eval-result) = "true"
|
||||
{
|
||||
return $(self.true-properties) ;
|
||||
}
|
||||
else
|
||||
{
|
||||
return $(self.false-properties) ;
|
||||
}
|
||||
}
|
||||
|
||||
rule eval ( e * )
|
||||
{
|
||||
local r ;
|
||||
if $(e[1]) && $(e[2]) && $(e[3])
|
||||
{
|
||||
if $(e[2]) = "and"
|
||||
{
|
||||
if $(e[1]) = "true" && $(e[3]) = "true"
|
||||
{
|
||||
r = [ eval "true" $(e[4-]) ] ;
|
||||
}
|
||||
else
|
||||
{
|
||||
r = [ eval "false" $(e[4-]) ] ;
|
||||
}
|
||||
}
|
||||
else if $(e[2]) = "or"
|
||||
{
|
||||
if $(e[1]) = "true" || $(e[3]) = "true"
|
||||
{
|
||||
r = [ eval "true" $(e[4-]) ] ;
|
||||
}
|
||||
else
|
||||
{
|
||||
r = [ eval "false" $(e[4-]) ] ;
|
||||
}
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
r = $(e[1]) ;
|
||||
}
|
||||
return $(r) ;
|
||||
_loaded_ += $(_module_) ;
|
||||
}
|
||||
}
|
||||
modules.poke modules : .loaded : $(_loaded_) ;
|
||||
import ../tools/check/predef ;
|
||||
|
@ -1,4 +1,4 @@
|
||||
# Copyright Rene Rivera 2011
|
||||
# Copyright Rene Rivera 2011-2016
|
||||
# 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)
|
||||
@ -23,6 +23,9 @@ else
|
||||
|
||||
local BOOST_PREDEF_HEADERS = [ path.glob-tree $(BOOST_PREDEF_INCLUDE_ROOT)/boost/predef : *.h ] ;
|
||||
|
||||
# Intermediate targets..
|
||||
|
||||
# Quickbok to boostbook target.
|
||||
xml predef
|
||||
:
|
||||
predef.qbk
|
||||
@ -32,6 +35,15 @@ xml predef
|
||||
;
|
||||
explicit predef ;
|
||||
|
||||
# HTML dependencies for standalone docs.
|
||||
install images : [ glob $(BOOST_ROOT)/doc/src/images/*.png ] : <location>html/images ;
|
||||
explicit images ;
|
||||
install callouts : [ glob $(BOOST_ROOT)/doc/src/images/callouts/*.png ] : <location>html/images/callouts ;
|
||||
explicit callouts ;
|
||||
install css : [ glob $(BOOST_ROOT)/doc/src/*.css ] : <location>html ;
|
||||
explicit css ;
|
||||
|
||||
# Default target builds standalone docs.
|
||||
boostbook standalone
|
||||
:
|
||||
predef
|
||||
@ -46,9 +58,6 @@ boostbook standalone
|
||||
<dependency>css
|
||||
;
|
||||
|
||||
install images : [ glob $(BOOST_ROOT)/doc/src/images/*.png ] : <location>html/images ;
|
||||
explicit images ;
|
||||
install callouts : [ glob $(BOOST_ROOT)/doc/src/images/callouts/*.png ] : <location>html/images/callouts ;
|
||||
explicit callouts ;
|
||||
install css : [ glob $(BOOST_ROOT)/doc/src/*.css ] : <location>html ;
|
||||
explicit css ;
|
||||
# Target for Boost global documentation integration.
|
||||
alias boostdoc : predef : : : <implcit-dependency>predef ;
|
||||
explicit boostdoc ;
|
||||
|
@ -1,5 +1,5 @@
|
||||
[/
|
||||
Copyright 2014-2015 Rene Rivera
|
||||
Copyright 2014-2016 Rene Rivera
|
||||
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)
|
||||
@ -7,6 +7,11 @@ http://www.boost.org/LICENSE_1_0.txt)
|
||||
|
||||
[section History]
|
||||
|
||||
[heading 1.4.1]
|
||||
|
||||
* Small fixes for some redefinition errors, and mispelled macros.
|
||||
* Slightly rearrangement of structure to comply with current library requirements.
|
||||
|
||||
[heading 1.4]
|
||||
|
||||
* Add detection of SIMD hardware. With the addition of the `BOOST_HW_*`
|
||||
|
@ -1,10 +1,10 @@
|
||||
<html>
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
|
||||
<title>Predef 1.4</title>
|
||||
<title>Predef 1.4.1</title>
|
||||
<link rel="stylesheet" href="boostbook.css" type="text/css">
|
||||
<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
|
||||
<link rel="home" href="index.html" title="Predef 1.4">
|
||||
<link rel="home" href="index.html" title="Predef 1.4.1">
|
||||
<link rel="next" href="predef/introduction.html" title="Introduction">
|
||||
</head>
|
||||
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
|
||||
@ -13,12 +13,11 @@
|
||||
<div class="titlepage">
|
||||
<div>
|
||||
<div><h2 class="title">
|
||||
<a name="predef"></a>Predef 1.4</h2></div>
|
||||
<a name="predef"></a>Predef 1.4.1</h2></div>
|
||||
<div><div class="authorgroup"><div class="author"><h3 class="author">
|
||||
<span class="firstname">Rene</span> <span class="surname">Rivera</span>
|
||||
</h3></div></div></div>
|
||||
<div><p class="copyright">Copyright © 2005, 2008-2015 Rene
|
||||
Rivera</p></div>
|
||||
<div><p class="copyright">Copyright © 2005, 2008-2016 Rene Rivera</p></div>
|
||||
<div><p class="copyright">Copyright © 2015 Charly Chevalier</p></div>
|
||||
<div><p class="copyright">Copyright © 2015 Joel Falcou</p></div>
|
||||
<div><div class="legalnotice">
|
||||
@ -57,7 +56,7 @@
|
||||
</div>
|
||||
</div>
|
||||
<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
|
||||
<td align="left"><p><small>Last revised: October 15, 2015 at 04:09:31 GMT</small></p></td>
|
||||
<td align="left"><p><small>Last revised: February 17, 2016 at 15:44:31 GMT</small></p></td>
|
||||
<td align="right"><div class="copyright-footer"></div></td>
|
||||
</tr></table>
|
||||
<hr>
|
||||
|
@ -4,8 +4,8 @@
|
||||
<title>Acknoledgements</title>
|
||||
<link rel="stylesheet" href="../boostbook.css" type="text/css">
|
||||
<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
|
||||
<link rel="home" href="../index.html" title="Predef 1.4">
|
||||
<link rel="up" href="../index.html" title="Predef 1.4">
|
||||
<link rel="home" href="../index.html" title="Predef 1.4.1">
|
||||
<link rel="up" href="../index.html" title="Predef 1.4.1">
|
||||
<link rel="prev" href="to_do.html" title="To Do">
|
||||
</head>
|
||||
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
|
||||
@ -35,8 +35,7 @@
|
||||
</div>
|
||||
<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
|
||||
<td align="left"></td>
|
||||
<td align="right"><div class="copyright-footer">Copyright © 2005, 2008-2015 Rene
|
||||
Rivera<br>Copyright © 2015 Charly Chevalier<br>Copyright © 2015 Joel Falcou<p>
|
||||
<td align="right"><div class="copyright-footer">Copyright © 2005, 2008-2016 Rene Rivera<br>Copyright © 2015 Charly Chevalier<br>Copyright © 2015 Joel Falcou<p>
|
||||
Distributed under the Boost Software License, Version 1.0. (See accompanying
|
||||
file LICENSE_1_0.txt or copy at <a href="http://www.boost.org/LICENSE_1_0.txt" target="_top">http://www.boost.org/LICENSE_1_0.txt</a>)
|
||||
</p>
|
||||
|
@ -4,8 +4,8 @@
|
||||
<title>Adding new predefs</title>
|
||||
<link rel="stylesheet" href="../boostbook.css" type="text/css">
|
||||
<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
|
||||
<link rel="home" href="../index.html" title="Predef 1.4">
|
||||
<link rel="up" href="../index.html" title="Predef 1.4">
|
||||
<link rel="home" href="../index.html" title="Predef 1.4.1">
|
||||
<link rel="up" href="../index.html" title="Predef 1.4.1">
|
||||
<link rel="prev" href="using_the_predefs.html" title="Using the predefs">
|
||||
<link rel="next" href="reference.html" title="Reference">
|
||||
</head>
|
||||
@ -289,8 +289,7 @@ Documentation about what is detected.
|
||||
</div>
|
||||
<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
|
||||
<td align="left"></td>
|
||||
<td align="right"><div class="copyright-footer">Copyright © 2005, 2008-2015 Rene
|
||||
Rivera<br>Copyright © 2015 Charly Chevalier<br>Copyright © 2015 Joel Falcou<p>
|
||||
<td align="right"><div class="copyright-footer">Copyright © 2005, 2008-2016 Rene Rivera<br>Copyright © 2015 Charly Chevalier<br>Copyright © 2015 Joel Falcou<p>
|
||||
Distributed under the Boost Software License, Version 1.0. (See accompanying
|
||||
file LICENSE_1_0.txt or copy at <a href="http://www.boost.org/LICENSE_1_0.txt" target="_top">http://www.boost.org/LICENSE_1_0.txt</a>)
|
||||
</p>
|
||||
|
@ -4,8 +4,8 @@
|
||||
<title>Check Utilities</title>
|
||||
<link rel="stylesheet" href="../boostbook.css" type="text/css">
|
||||
<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
|
||||
<link rel="home" href="../index.html" title="Predef 1.4">
|
||||
<link rel="up" href="../index.html" title="Predef 1.4">
|
||||
<link rel="home" href="../index.html" title="Predef 1.4.1">
|
||||
<link rel="up" href="../index.html" title="Predef 1.4.1">
|
||||
<link rel="prev" href="reference/version_definition_macros.html" title="Version definition macros">
|
||||
<link rel="next" href="history.html" title="History">
|
||||
</head>
|
||||
@ -73,7 +73,7 @@
|
||||
gets built as part of your project based on the detailed version information
|
||||
available in Predef. The basic use is simple:
|
||||
</p>
|
||||
<pre class="programlisting">import path-to-predef-src/check/predef
|
||||
<pre class="programlisting">import path-to-predef-src/tools/check/predef
|
||||
: check require
|
||||
: predef-check predef-require ;
|
||||
|
||||
@ -85,7 +85,7 @@ exe my_windows_program : windows_source.cpp
|
||||
unless one is building for Windows. Like the direct <code class="literal">predef_check</code>
|
||||
you can pass mutiple expressions using relational comparisons. For example:
|
||||
</p>
|
||||
<pre class="programlisting">import path-to-predef-src/check/predef
|
||||
<pre class="programlisting">import path-to-predef-src/tools/check/predef
|
||||
: check require
|
||||
: predef-check predef-require ;
|
||||
|
||||
@ -106,7 +106,7 @@ lib my_special_lib : source.cpp
|
||||
The expression can also use explicit "and", "or" logical
|
||||
operators to for more complex checks:
|
||||
</p>
|
||||
<pre class="programlisting">import path-to-predef-src/check/predef
|
||||
<pre class="programlisting">import path-to-predef-src/tools/check/predef
|
||||
: check require
|
||||
: predef-check predef-require ;
|
||||
|
||||
@ -127,7 +127,7 @@ lib my_special_lib : source.cpp
|
||||
as requirements. For example you could use it to enable or disable features
|
||||
in your programs:
|
||||
</p>
|
||||
<pre class="programlisting">import path-to-predef-src/check/predef
|
||||
<pre class="programlisting">import path-to-predef-src/tools/check/predef
|
||||
: check require
|
||||
: predef-check predef-require ;
|
||||
|
||||
@ -145,8 +145,7 @@ exe my_special_exe : source.cpp
|
||||
</div>
|
||||
<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
|
||||
<td align="left"></td>
|
||||
<td align="right"><div class="copyright-footer">Copyright © 2005, 2008-2015 Rene
|
||||
Rivera<br>Copyright © 2015 Charly Chevalier<br>Copyright © 2015 Joel Falcou<p>
|
||||
<td align="right"><div class="copyright-footer">Copyright © 2005, 2008-2016 Rene Rivera<br>Copyright © 2015 Charly Chevalier<br>Copyright © 2015 Joel Falcou<p>
|
||||
Distributed under the Boost Software License, Version 1.0. (See accompanying
|
||||
file LICENSE_1_0.txt or copy at <a href="http://www.boost.org/LICENSE_1_0.txt" target="_top">http://www.boost.org/LICENSE_1_0.txt</a>)
|
||||
</p>
|
||||
|
@ -4,8 +4,8 @@
|
||||
<title>History</title>
|
||||
<link rel="stylesheet" href="../boostbook.css" type="text/css">
|
||||
<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
|
||||
<link rel="home" href="../index.html" title="Predef 1.4">
|
||||
<link rel="up" href="../index.html" title="Predef 1.4">
|
||||
<link rel="home" href="../index.html" title="Predef 1.4.1">
|
||||
<link rel="up" href="../index.html" title="Predef 1.4.1">
|
||||
<link rel="prev" href="check_utilities.html" title="Check Utilities">
|
||||
<link rel="next" href="to_do.html" title="To Do">
|
||||
</head>
|
||||
@ -19,6 +19,18 @@
|
||||
</h2></div></div></div>
|
||||
<h4>
|
||||
<a name="predef.history.h0"></a>
|
||||
<span class="phrase"><a name="predef.history.1_4_1"></a></span><a class="link" href="history.html#predef.history.1_4_1">1.4.1</a>
|
||||
</h4>
|
||||
<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
|
||||
<li class="listitem">
|
||||
Small fixes for some redefinition errors, and mispelled macros.
|
||||
</li>
|
||||
<li class="listitem">
|
||||
Slightly rearrangement of structure to comply with current library requirements.
|
||||
</li>
|
||||
</ul></div>
|
||||
<h4>
|
||||
<a name="predef.history.h1"></a>
|
||||
<span class="phrase"><a name="predef.history.1_4"></a></span><a class="link" href="history.html#predef.history.1_4">1.4</a>
|
||||
</h4>
|
||||
<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
|
||||
@ -39,7 +51,7 @@
|
||||
</li>
|
||||
</ul></div>
|
||||
<h4>
|
||||
<a name="predef.history.h1"></a>
|
||||
<a name="predef.history.h2"></a>
|
||||
<span class="phrase"><a name="predef.history.1_3"></a></span><a class="link" href="history.html#predef.history.1_3">1.3</a>
|
||||
</h4>
|
||||
<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
|
||||
@ -67,7 +79,7 @@
|
||||
</li>
|
||||
</ul></div>
|
||||
<h4>
|
||||
<a name="predef.history.h2"></a>
|
||||
<a name="predef.history.h3"></a>
|
||||
<span class="phrase"><a name="predef.history.1_2"></a></span><a class="link" href="history.html#predef.history.1_2">1.2</a>
|
||||
</h4>
|
||||
<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
|
||||
@ -91,7 +103,7 @@
|
||||
</li>
|
||||
</ul></div>
|
||||
<h4>
|
||||
<a name="predef.history.h3"></a>
|
||||
<a name="predef.history.h4"></a>
|
||||
<span class="phrase"><a name="predef.history.1_1"></a></span><a class="link" href="history.html#predef.history.1_1">1.1</a>
|
||||
</h4>
|
||||
<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
|
||||
@ -133,8 +145,7 @@
|
||||
</div>
|
||||
<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
|
||||
<td align="left"></td>
|
||||
<td align="right"><div class="copyright-footer">Copyright © 2005, 2008-2015 Rene
|
||||
Rivera<br>Copyright © 2015 Charly Chevalier<br>Copyright © 2015 Joel Falcou<p>
|
||||
<td align="right"><div class="copyright-footer">Copyright © 2005, 2008-2016 Rene Rivera<br>Copyright © 2015 Charly Chevalier<br>Copyright © 2015 Joel Falcou<p>
|
||||
Distributed under the Boost Software License, Version 1.0. (See accompanying
|
||||
file LICENSE_1_0.txt or copy at <a href="http://www.boost.org/LICENSE_1_0.txt" target="_top">http://www.boost.org/LICENSE_1_0.txt</a>)
|
||||
</p>
|
||||
|
@ -4,9 +4,9 @@
|
||||
<title>Introduction</title>
|
||||
<link rel="stylesheet" href="../boostbook.css" type="text/css">
|
||||
<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
|
||||
<link rel="home" href="../index.html" title="Predef 1.4">
|
||||
<link rel="up" href="../index.html" title="Predef 1.4">
|
||||
<link rel="prev" href="../index.html" title="Predef 1.4">
|
||||
<link rel="home" href="../index.html" title="Predef 1.4.1">
|
||||
<link rel="up" href="../index.html" title="Predef 1.4.1">
|
||||
<link rel="prev" href="../index.html" title="Predef 1.4.1">
|
||||
<link rel="next" href="using_the_predefs.html" title="Using the predefs">
|
||||
</head>
|
||||
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
|
||||
@ -191,8 +191,7 @@
|
||||
</div>
|
||||
<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
|
||||
<td align="left"></td>
|
||||
<td align="right"><div class="copyright-footer">Copyright © 2005, 2008-2015 Rene
|
||||
Rivera<br>Copyright © 2015 Charly Chevalier<br>Copyright © 2015 Joel Falcou<p>
|
||||
<td align="right"><div class="copyright-footer">Copyright © 2005, 2008-2016 Rene Rivera<br>Copyright © 2015 Charly Chevalier<br>Copyright © 2015 Joel Falcou<p>
|
||||
Distributed under the Boost Software License, Version 1.0. (See accompanying
|
||||
file LICENSE_1_0.txt or copy at <a href="http://www.boost.org/LICENSE_1_0.txt" target="_top">http://www.boost.org/LICENSE_1_0.txt</a>)
|
||||
</p>
|
||||
|
@ -4,8 +4,8 @@
|
||||
<title>Reference</title>
|
||||
<link rel="stylesheet" href="../boostbook.css" type="text/css">
|
||||
<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
|
||||
<link rel="home" href="../index.html" title="Predef 1.4">
|
||||
<link rel="up" href="../index.html" title="Predef 1.4">
|
||||
<link rel="home" href="../index.html" title="Predef 1.4.1">
|
||||
<link rel="up" href="../index.html" title="Predef 1.4.1">
|
||||
<link rel="prev" href="adding_new_predefs.html" title="Adding new predefs">
|
||||
<link rel="next" href="reference/boost_arch_architecture_macros.html" title="BOOST_ARCH architecture macros">
|
||||
</head>
|
||||
@ -32,8 +32,7 @@
|
||||
</div>
|
||||
<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
|
||||
<td align="left"></td>
|
||||
<td align="right"><div class="copyright-footer">Copyright © 2005, 2008-2015 Rene
|
||||
Rivera<br>Copyright © 2015 Charly Chevalier<br>Copyright © 2015 Joel Falcou<p>
|
||||
<td align="right"><div class="copyright-footer">Copyright © 2005, 2008-2016 Rene Rivera<br>Copyright © 2015 Charly Chevalier<br>Copyright © 2015 Joel Falcou<p>
|
||||
Distributed under the Boost Software License, Version 1.0. (See accompanying
|
||||
file LICENSE_1_0.txt or copy at <a href="http://www.boost.org/LICENSE_1_0.txt" target="_top">http://www.boost.org/LICENSE_1_0.txt</a>)
|
||||
</p>
|
||||
|
@ -4,7 +4,7 @@
|
||||
<title>BOOST_ARCH architecture macros</title>
|
||||
<link rel="stylesheet" href="../../boostbook.css" type="text/css">
|
||||
<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
|
||||
<link rel="home" href="../../index.html" title="Predef 1.4">
|
||||
<link rel="home" href="../../index.html" title="Predef 1.4.1">
|
||||
<link rel="up" href="../reference.html" title="Reference">
|
||||
<link rel="prev" href="../reference.html" title="Reference">
|
||||
<link rel="next" href="boost_comp_compiler_macros.html" title="BOOST_COMP compiler macros">
|
||||
@ -2137,8 +2137,7 @@
|
||||
</div>
|
||||
<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
|
||||
<td align="left"></td>
|
||||
<td align="right"><div class="copyright-footer">Copyright © 2005, 2008-2015 Rene
|
||||
Rivera<br>Copyright © 2015 Charly Chevalier<br>Copyright © 2015 Joel Falcou<p>
|
||||
<td align="right"><div class="copyright-footer">Copyright © 2005, 2008-2016 Rene Rivera<br>Copyright © 2015 Charly Chevalier<br>Copyright © 2015 Joel Falcou<p>
|
||||
Distributed under the Boost Software License, Version 1.0. (See accompanying
|
||||
file LICENSE_1_0.txt or copy at <a href="http://www.boost.org/LICENSE_1_0.txt" target="_top">http://www.boost.org/LICENSE_1_0.txt</a>)
|
||||
</p>
|
||||
|
@ -4,7 +4,7 @@
|
||||
<title>BOOST_COMP compiler macros</title>
|
||||
<link rel="stylesheet" href="../../boostbook.css" type="text/css">
|
||||
<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
|
||||
<link rel="home" href="../../index.html" title="Predef 1.4">
|
||||
<link rel="home" href="../../index.html" title="Predef 1.4.1">
|
||||
<link rel="up" href="../reference.html" title="Reference">
|
||||
<link rel="prev" href="boost_arch_architecture_macros.html" title="BOOST_ARCH architecture macros">
|
||||
<link rel="next" href="boost_lang_language_standards_ma.html" title="BOOST_LANG language standards macros">
|
||||
@ -1789,8 +1789,7 @@
|
||||
</div>
|
||||
<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
|
||||
<td align="left"></td>
|
||||
<td align="right"><div class="copyright-footer">Copyright © 2005, 2008-2015 Rene
|
||||
Rivera<br>Copyright © 2015 Charly Chevalier<br>Copyright © 2015 Joel Falcou<p>
|
||||
<td align="right"><div class="copyright-footer">Copyright © 2005, 2008-2016 Rene Rivera<br>Copyright © 2015 Charly Chevalier<br>Copyright © 2015 Joel Falcou<p>
|
||||
Distributed under the Boost Software License, Version 1.0. (See accompanying
|
||||
file LICENSE_1_0.txt or copy at <a href="http://www.boost.org/LICENSE_1_0.txt" target="_top">http://www.boost.org/LICENSE_1_0.txt</a>)
|
||||
</p>
|
||||
|
@ -4,7 +4,7 @@
|
||||
<title>BOOST_HW hardware macros</title>
|
||||
<link rel="stylesheet" href="../../boostbook.css" type="text/css">
|
||||
<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
|
||||
<link rel="home" href="../../index.html" title="Predef 1.4">
|
||||
<link rel="home" href="../../index.html" title="Predef 1.4.1">
|
||||
<link rel="up" href="../reference.html" title="Reference">
|
||||
<link rel="prev" href="boost_plat_platform_macros.html" title="BOOST_PLAT platform macros">
|
||||
<link rel="next" href="other_macros.html" title="Other macros">
|
||||
@ -584,7 +584,7 @@
|
||||
</td>
|
||||
<td>
|
||||
<p>
|
||||
BOOST_HW_SIMD_x86_AVX2_VERSION
|
||||
BOOST_HW_SIMD_X86_AVX2_VERSION
|
||||
</p>
|
||||
</td>
|
||||
</tr>
|
||||
@ -692,7 +692,7 @@
|
||||
</td>
|
||||
<td>
|
||||
<p>
|
||||
BOOST_HW_SIMD_x86_SSE4A_VERSION
|
||||
BOOST_HW_SIMD_X86_SSE4A_VERSION
|
||||
</p>
|
||||
</td>
|
||||
</tr>
|
||||
@ -704,7 +704,7 @@
|
||||
</td>
|
||||
<td>
|
||||
<p>
|
||||
BOOST_HW_SIMD_x86_FMA4_VERSION
|
||||
BOOST_HW_SIMD_X86_FMA4_VERSION
|
||||
</p>
|
||||
</td>
|
||||
</tr>
|
||||
@ -716,7 +716,7 @@
|
||||
</td>
|
||||
<td>
|
||||
<p>
|
||||
BOOST_HW_SIMD_x86_XOP_VERSION
|
||||
BOOST_HW_SIMD_X86_XOP_VERSION
|
||||
</p>
|
||||
</td>
|
||||
</tr>
|
||||
@ -728,7 +728,7 @@
|
||||
</td>
|
||||
<td>
|
||||
<p>
|
||||
BOOST_HW_SIMD_x86
|
||||
BOOST_HW_SIMD_X86
|
||||
</p>
|
||||
</td>
|
||||
</tr>
|
||||
@ -1180,10 +1180,10 @@
|
||||
</p>
|
||||
<h6>
|
||||
<a name="predef.reference.boost_hw_hardware_macros.boost_hw_simd_x86_amd_version.h1"></a>
|
||||
<span class="phrase"><a name="predef.reference.boost_hw_hardware_macros.boost_hw_simd_x86_amd_version.boost_hw_simd_x86_xop_version"></a></span><a class="link" href="boost_hw_hardware_macros.html#predef.reference.boost_hw_hardware_macros.boost_hw_simd_x86_amd_version.boost_hw_simd_x86_xop_version"><code class="computeroutput"><span class="identifier">BOOST_HW_SIMD_X86_XOP_VERSION</span></code></a>
|
||||
<span class="phrase"><a name="predef.reference.boost_hw_hardware_macros.boost_hw_simd_x86_amd_version.boost_hw_simd_x86_fma4_version"></a></span><a class="link" href="boost_hw_hardware_macros.html#predef.reference.boost_hw_hardware_macros.boost_hw_simd_x86_amd_version.boost_hw_simd_x86_fma4_version"><code class="computeroutput"><span class="identifier">BOOST_HW_SIMD_X86_FMA4_VERSION</span></code></a>
|
||||
</h6>
|
||||
<p>
|
||||
<a href="https://en.wikipedia.org/wiki/XOP_instruction_set" target="_top">XOP</a>
|
||||
<a href="https://en.wikipedia.org/wiki/FMA_instruction_set#FMA4_instruction_set" target="_top">FMA4</a>
|
||||
x86 extension (AMD specific).
|
||||
</p>
|
||||
<p>
|
||||
@ -1191,7 +1191,7 @@
|
||||
</p>
|
||||
<h6>
|
||||
<a name="predef.reference.boost_hw_hardware_macros.boost_hw_simd_x86_amd_version.h2"></a>
|
||||
<span class="phrase"><a name="predef.reference.boost_hw_hardware_macros.boost_hw_simd_x86_amd_version.boost_hw_simd_x86_xop_version0"></a></span><a class="link" href="boost_hw_hardware_macros.html#predef.reference.boost_hw_hardware_macros.boost_hw_simd_x86_amd_version.boost_hw_simd_x86_xop_version0"><code class="computeroutput"><span class="identifier">BOOST_HW_SIMD_X86_XOP_VERSION</span></code></a>
|
||||
<span class="phrase"><a name="predef.reference.boost_hw_hardware_macros.boost_hw_simd_x86_amd_version.boost_hw_simd_x86_xop_version"></a></span><a class="link" href="boost_hw_hardware_macros.html#predef.reference.boost_hw_hardware_macros.boost_hw_simd_x86_amd_version.boost_hw_simd_x86_xop_version"><code class="computeroutput"><span class="identifier">BOOST_HW_SIMD_X86_XOP_VERSION</span></code></a>
|
||||
</h6>
|
||||
<p>
|
||||
<a href="https://en.wikipedia.org/wiki/XOP_instruction_set" target="_top">XOP</a>
|
||||
@ -1283,8 +1283,7 @@
|
||||
</div>
|
||||
<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
|
||||
<td align="left"></td>
|
||||
<td align="right"><div class="copyright-footer">Copyright © 2005, 2008-2015 Rene
|
||||
Rivera<br>Copyright © 2015 Charly Chevalier<br>Copyright © 2015 Joel Falcou<p>
|
||||
<td align="right"><div class="copyright-footer">Copyright © 2005, 2008-2016 Rene Rivera<br>Copyright © 2015 Charly Chevalier<br>Copyright © 2015 Joel Falcou<p>
|
||||
Distributed under the Boost Software License, Version 1.0. (See accompanying
|
||||
file LICENSE_1_0.txt or copy at <a href="http://www.boost.org/LICENSE_1_0.txt" target="_top">http://www.boost.org/LICENSE_1_0.txt</a>)
|
||||
</p>
|
||||
|
@ -4,7 +4,7 @@
|
||||
<title>BOOST_LANG language standards macros</title>
|
||||
<link rel="stylesheet" href="../../boostbook.css" type="text/css">
|
||||
<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
|
||||
<link rel="home" href="../../index.html" title="Predef 1.4">
|
||||
<link rel="home" href="../../index.html" title="Predef 1.4.1">
|
||||
<link rel="up" href="../reference.html" title="Reference">
|
||||
<link rel="prev" href="boost_comp_compiler_macros.html" title="BOOST_COMP compiler macros">
|
||||
<link rel="next" href="boost_lib_library_macros.html" title="BOOST_LIB library macros">
|
||||
@ -320,8 +320,7 @@
|
||||
</div>
|
||||
<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
|
||||
<td align="left"></td>
|
||||
<td align="right"><div class="copyright-footer">Copyright © 2005, 2008-2015 Rene
|
||||
Rivera<br>Copyright © 2015 Charly Chevalier<br>Copyright © 2015 Joel Falcou<p>
|
||||
<td align="right"><div class="copyright-footer">Copyright © 2005, 2008-2016 Rene Rivera<br>Copyright © 2015 Charly Chevalier<br>Copyright © 2015 Joel Falcou<p>
|
||||
Distributed under the Boost Software License, Version 1.0. (See accompanying
|
||||
file LICENSE_1_0.txt or copy at <a href="http://www.boost.org/LICENSE_1_0.txt" target="_top">http://www.boost.org/LICENSE_1_0.txt</a>)
|
||||
</p>
|
||||
|
@ -4,7 +4,7 @@
|
||||
<title>BOOST_LIB library macros</title>
|
||||
<link rel="stylesheet" href="../../boostbook.css" type="text/css">
|
||||
<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
|
||||
<link rel="home" href="../../index.html" title="Predef 1.4">
|
||||
<link rel="home" href="../../index.html" title="Predef 1.4.1">
|
||||
<link rel="up" href="../reference.html" title="Reference">
|
||||
<link rel="prev" href="boost_lang_language_standards_ma.html" title="BOOST_LANG language standards macros">
|
||||
<link rel="next" href="boost_os_operating_system_macros.html" title="BOOST_OS operating system macros">
|
||||
@ -882,8 +882,7 @@
|
||||
</div>
|
||||
<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
|
||||
<td align="left"></td>
|
||||
<td align="right"><div class="copyright-footer">Copyright © 2005, 2008-2015 Rene
|
||||
Rivera<br>Copyright © 2015 Charly Chevalier<br>Copyright © 2015 Joel Falcou<p>
|
||||
<td align="right"><div class="copyright-footer">Copyright © 2005, 2008-2016 Rene Rivera<br>Copyright © 2015 Charly Chevalier<br>Copyright © 2015 Joel Falcou<p>
|
||||
Distributed under the Boost Software License, Version 1.0. (See accompanying
|
||||
file LICENSE_1_0.txt or copy at <a href="http://www.boost.org/LICENSE_1_0.txt" target="_top">http://www.boost.org/LICENSE_1_0.txt</a>)
|
||||
</p>
|
||||
|
@ -4,7 +4,7 @@
|
||||
<title>BOOST_OS operating system macros</title>
|
||||
<link rel="stylesheet" href="../../boostbook.css" type="text/css">
|
||||
<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
|
||||
<link rel="home" href="../../index.html" title="Predef 1.4">
|
||||
<link rel="home" href="../../index.html" title="Predef 1.4.1">
|
||||
<link rel="up" href="../reference.html" title="Reference">
|
||||
<link rel="prev" href="boost_lib_library_macros.html" title="BOOST_LIB library macros">
|
||||
<link rel="next" href="boost_plat_platform_macros.html" title="BOOST_PLAT platform macros">
|
||||
@ -1906,8 +1906,7 @@
|
||||
</div>
|
||||
<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
|
||||
<td align="left"></td>
|
||||
<td align="right"><div class="copyright-footer">Copyright © 2005, 2008-2015 Rene
|
||||
Rivera<br>Copyright © 2015 Charly Chevalier<br>Copyright © 2015 Joel Falcou<p>
|
||||
<td align="right"><div class="copyright-footer">Copyright © 2005, 2008-2016 Rene Rivera<br>Copyright © 2015 Charly Chevalier<br>Copyright © 2015 Joel Falcou<p>
|
||||
Distributed under the Boost Software License, Version 1.0. (See accompanying
|
||||
file LICENSE_1_0.txt or copy at <a href="http://www.boost.org/LICENSE_1_0.txt" target="_top">http://www.boost.org/LICENSE_1_0.txt</a>)
|
||||
</p>
|
||||
|
@ -4,7 +4,7 @@
|
||||
<title>BOOST_PLAT platform macros</title>
|
||||
<link rel="stylesheet" href="../../boostbook.css" type="text/css">
|
||||
<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
|
||||
<link rel="home" href="../../index.html" title="Predef 1.4">
|
||||
<link rel="home" href="../../index.html" title="Predef 1.4.1">
|
||||
<link rel="up" href="../reference.html" title="Reference">
|
||||
<link rel="prev" href="boost_os_operating_system_macros.html" title="BOOST_OS operating system macros">
|
||||
<link rel="next" href="boost_hw_hardware_macros.html" title="BOOST_HW hardware macros">
|
||||
@ -262,8 +262,7 @@
|
||||
</div>
|
||||
<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
|
||||
<td align="left"></td>
|
||||
<td align="right"><div class="copyright-footer">Copyright © 2005, 2008-2015 Rene
|
||||
Rivera<br>Copyright © 2015 Charly Chevalier<br>Copyright © 2015 Joel Falcou<p>
|
||||
<td align="right"><div class="copyright-footer">Copyright © 2005, 2008-2016 Rene Rivera<br>Copyright © 2015 Charly Chevalier<br>Copyright © 2015 Joel Falcou<p>
|
||||
Distributed under the Boost Software License, Version 1.0. (See accompanying
|
||||
file LICENSE_1_0.txt or copy at <a href="http://www.boost.org/LICENSE_1_0.txt" target="_top">http://www.boost.org/LICENSE_1_0.txt</a>)
|
||||
</p>
|
||||
|
@ -4,7 +4,7 @@
|
||||
<title>Other macros</title>
|
||||
<link rel="stylesheet" href="../../boostbook.css" type="text/css">
|
||||
<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
|
||||
<link rel="home" href="../../index.html" title="Predef 1.4">
|
||||
<link rel="home" href="../../index.html" title="Predef 1.4.1">
|
||||
<link rel="up" href="../reference.html" title="Reference">
|
||||
<link rel="prev" href="boost_hw_hardware_macros.html" title="BOOST_HW hardware macros">
|
||||
<link rel="next" href="version_definition_macros.html" title="Version definition macros">
|
||||
@ -70,8 +70,7 @@
|
||||
</div>
|
||||
<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
|
||||
<td align="left"></td>
|
||||
<td align="right"><div class="copyright-footer">Copyright © 2005, 2008-2015 Rene
|
||||
Rivera<br>Copyright © 2015 Charly Chevalier<br>Copyright © 2015 Joel Falcou<p>
|
||||
<td align="right"><div class="copyright-footer">Copyright © 2005, 2008-2016 Rene Rivera<br>Copyright © 2015 Charly Chevalier<br>Copyright © 2015 Joel Falcou<p>
|
||||
Distributed under the Boost Software License, Version 1.0. (See accompanying
|
||||
file LICENSE_1_0.txt or copy at <a href="http://www.boost.org/LICENSE_1_0.txt" target="_top">http://www.boost.org/LICENSE_1_0.txt</a>)
|
||||
</p>
|
||||
|
@ -4,7 +4,7 @@
|
||||
<title>Version definition macros</title>
|
||||
<link rel="stylesheet" href="../../boostbook.css" type="text/css">
|
||||
<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
|
||||
<link rel="home" href="../../index.html" title="Predef 1.4">
|
||||
<link rel="home" href="../../index.html" title="Predef 1.4.1">
|
||||
<link rel="up" href="../reference.html" title="Reference">
|
||||
<link rel="prev" href="other_macros.html" title="Other macros">
|
||||
<link rel="next" href="../check_utilities.html" title="Check Utilities">
|
||||
@ -173,8 +173,7 @@
|
||||
</div>
|
||||
<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
|
||||
<td align="left"></td>
|
||||
<td align="right"><div class="copyright-footer">Copyright © 2005, 2008-2015 Rene
|
||||
Rivera<br>Copyright © 2015 Charly Chevalier<br>Copyright © 2015 Joel Falcou<p>
|
||||
<td align="right"><div class="copyright-footer">Copyright © 2005, 2008-2016 Rene Rivera<br>Copyright © 2015 Charly Chevalier<br>Copyright © 2015 Joel Falcou<p>
|
||||
Distributed under the Boost Software License, Version 1.0. (See accompanying
|
||||
file LICENSE_1_0.txt or copy at <a href="http://www.boost.org/LICENSE_1_0.txt" target="_top">http://www.boost.org/LICENSE_1_0.txt</a>)
|
||||
</p>
|
||||
|
@ -4,8 +4,8 @@
|
||||
<title>To Do</title>
|
||||
<link rel="stylesheet" href="../boostbook.css" type="text/css">
|
||||
<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
|
||||
<link rel="home" href="../index.html" title="Predef 1.4">
|
||||
<link rel="up" href="../index.html" title="Predef 1.4">
|
||||
<link rel="home" href="../index.html" title="Predef 1.4.1">
|
||||
<link rel="up" href="../index.html" title="Predef 1.4.1">
|
||||
<link rel="prev" href="history.html" title="History">
|
||||
<link rel="next" href="acknoledgements.html" title="Acknoledgements">
|
||||
</head>
|
||||
@ -28,8 +28,7 @@
|
||||
</div>
|
||||
<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
|
||||
<td align="left"></td>
|
||||
<td align="right"><div class="copyright-footer">Copyright © 2005, 2008-2015 Rene
|
||||
Rivera<br>Copyright © 2015 Charly Chevalier<br>Copyright © 2015 Joel Falcou<p>
|
||||
<td align="right"><div class="copyright-footer">Copyright © 2005, 2008-2016 Rene Rivera<br>Copyright © 2015 Charly Chevalier<br>Copyright © 2015 Joel Falcou<p>
|
||||
Distributed under the Boost Software License, Version 1.0. (See accompanying
|
||||
file LICENSE_1_0.txt or copy at <a href="http://www.boost.org/LICENSE_1_0.txt" target="_top">http://www.boost.org/LICENSE_1_0.txt</a>)
|
||||
</p>
|
||||
|
@ -4,8 +4,8 @@
|
||||
<title>Using the predefs</title>
|
||||
<link rel="stylesheet" href="../boostbook.css" type="text/css">
|
||||
<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
|
||||
<link rel="home" href="../index.html" title="Predef 1.4">
|
||||
<link rel="up" href="../index.html" title="Predef 1.4">
|
||||
<link rel="home" href="../index.html" title="Predef 1.4.1">
|
||||
<link rel="up" href="../index.html" title="Predef 1.4.1">
|
||||
<link rel="prev" href="introduction.html" title="Introduction">
|
||||
<link rel="next" href="adding_new_predefs.html" title="Adding new predefs">
|
||||
</head>
|
||||
@ -219,8 +219,7 @@
|
||||
</div>
|
||||
<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
|
||||
<td align="left"></td>
|
||||
<td align="right"><div class="copyright-footer">Copyright © 2005, 2008-2015 Rene
|
||||
Rivera<br>Copyright © 2015 Charly Chevalier<br>Copyright © 2015 Joel Falcou<p>
|
||||
<td align="right"><div class="copyright-footer">Copyright © 2005, 2008-2016 Rene Rivera<br>Copyright © 2015 Charly Chevalier<br>Copyright © 2015 Joel Falcou<p>
|
||||
Distributed under the Boost Software License, Version 1.0. (See accompanying
|
||||
file LICENSE_1_0.txt or copy at <a href="http://www.boost.org/LICENSE_1_0.txt" target="_top">http://www.boost.org/LICENSE_1_0.txt</a>)
|
||||
</p>
|
||||
|
@ -1,8 +1,8 @@
|
||||
[article Predef
|
||||
[quickbook 1.7]
|
||||
[version 1.4]
|
||||
[version 1.4.1]
|
||||
[authors [Rivera, Rene]]
|
||||
[copyright 2005, 2008-2015 Rene Rivera]
|
||||
[copyright 2005, 2008-2016 Rene Rivera]
|
||||
[copyright 2015 Charly Chevalier]
|
||||
[copyright 2015 Joel Falcou]
|
||||
[purpose Identification and specification of predefined macros.]
|
||||
@ -619,7 +619,7 @@ version information available in Predef. The basic use is simple:
|
||||
|
||||
[teletype]
|
||||
``
|
||||
import path-to-predef-src/check/predef
|
||||
import path-to-predef-src/tools/check/predef
|
||||
: check require
|
||||
: predef-check predef-require ;
|
||||
|
||||
@ -635,7 +635,7 @@ For example:
|
||||
|
||||
[teletype]
|
||||
``
|
||||
import path-to-predef-src/check/predef
|
||||
import path-to-predef-src/tools/check/predef
|
||||
: check require
|
||||
: predef-check predef-require ;
|
||||
|
||||
@ -663,7 +663,7 @@ to for more complex checks:
|
||||
|
||||
[teletype]
|
||||
``
|
||||
import path-to-predef-src/check/predef
|
||||
import path-to-predef-src/tools/check/predef
|
||||
: check require
|
||||
: predef-check predef-require ;
|
||||
|
||||
@ -690,7 +690,7 @@ features in your programs:
|
||||
|
||||
[teletype]
|
||||
``
|
||||
import path-to-predef-src/check/predef
|
||||
import path-to-predef-src/tools/check/predef
|
||||
: check require
|
||||
: predef-check predef-require ;
|
||||
|
||||
|
@ -77,12 +77,24 @@ http://www.boost.org/LICENSE_1_0.txt)
|
||||
# error "Multiple SIMD architectures detected, this cannot happen!"
|
||||
#endif
|
||||
|
||||
#if defined(BOOST_HW_SIMD_X86_AVAILABLE)
|
||||
# define BOOST_HW_SIMD BOOST_HW_SIMD_X86
|
||||
#if defined(BOOST_HW_SIMD_X86_AVAILABLE) && defined(BOOST_HW_SIMD_X86_AMD_AVAILABLE)
|
||||
// If both standard _X86 and _X86_AMD are available,
|
||||
// then take the biggest version of the two!
|
||||
# if BOOST_HW_SIMD_X86 >= BOOST_HW_SIMD_X86_AMD
|
||||
# define BOOST_HW_SIMD BOOST_HW_SIMD_X86
|
||||
# else
|
||||
# define BOOST_HW_SIMD BOOST_HW_SIMD_X86_AMD
|
||||
# endif
|
||||
#endif
|
||||
|
||||
#if defined(BOOST_HW_SIMD_X86_AMD_AVAILABLE)
|
||||
# define BOOST_HW_SIMD BOOST_HW_SIMD_X86_AMD
|
||||
#if !defined(BOOST_HW_SIMD)
|
||||
// At this point, only one of these two is defined
|
||||
# if defined(BOOST_HW_SIMD_X86_AVAILABLE)
|
||||
# define BOOST_HW_SIMD BOOST_HW_SIMD_X86
|
||||
# endif
|
||||
# if defined(BOOST_HW_SIMD_X86_AMD_AVAILABLE)
|
||||
# define BOOST_HW_SIMD BOOST_HW_SIMD_X86_AMD
|
||||
# endif
|
||||
#endif
|
||||
|
||||
#if defined(BOOST_HW_SIMD_ARM_AVAILABLE)
|
||||
|
@ -67,7 +67,7 @@ http://www.boost.org/LICENSE_1_0.txt)
|
||||
|
||||
[[`__FMA__`] [BOOST_HW_SIMD_X86_FMA3_VERSION]]
|
||||
|
||||
[[`__AVX2__`] [BOOST_HW_SIMD_x86_AVX2_VERSION]]
|
||||
[[`__AVX2__`] [BOOST_HW_SIMD_X86_AVX2_VERSION]]
|
||||
]
|
||||
|
||||
*/
|
||||
@ -99,10 +99,10 @@ http://www.boost.org/LICENSE_1_0.txt)
|
||||
#if !defined(BOOST_HW_SIMD_X86) && defined(__SSE3__)
|
||||
# define BOOST_HW_SIMD_X86 BOOST_HW_SIMD_X86_SSE3_VERSION
|
||||
#endif
|
||||
#if !defined(BOOST_HW_SIMD_X86) && (defined(__SSE2__) || defined(_M_X64) || _M_IX86_FP >= 2)
|
||||
#if !defined(BOOST_HW_SIMD_X86) && (defined(__SSE2__) || defined(_M_X64) || (defined(_M_IX86_FP) && _M_IX86_FP >= 2))
|
||||
# define BOOST_HW_SIMD_X86 BOOST_HW_SIMD_X86_SSE2_VERSION
|
||||
#endif
|
||||
#if !defined(BOOST_HW_SIMD_X86) && (defined(__SSE__) || defined(_M_X64) || _M_IX86_FP >= 1)
|
||||
#if !defined(BOOST_HW_SIMD_X86) && (defined(__SSE__) || defined(_M_X64) || (defined(_M_IX86_FP) && _M_IX86_FP >= 1))
|
||||
# define BOOST_HW_SIMD_X86 BOOST_HW_SIMD_X86_SSE_VERSION
|
||||
#endif
|
||||
#if !defined(BOOST_HW_SIMD_X86) && defined(__MMX__)
|
||||
|
@ -33,13 +33,13 @@ http://www.boost.org/LICENSE_1_0.txt)
|
||||
[table
|
||||
[[__predef_symbol__] [__predef_version__]]
|
||||
|
||||
[[`__SSE4A__`] [BOOST_HW_SIMD_x86_SSE4A_VERSION]]
|
||||
[[`__SSE4A__`] [BOOST_HW_SIMD_X86_SSE4A_VERSION]]
|
||||
|
||||
[[`__FMA4__`] [BOOST_HW_SIMD_x86_FMA4_VERSION]]
|
||||
[[`__FMA4__`] [BOOST_HW_SIMD_X86_FMA4_VERSION]]
|
||||
|
||||
[[`__XOP__`] [BOOST_HW_SIMD_x86_XOP_VERSION]]
|
||||
[[`__XOP__`] [BOOST_HW_SIMD_X86_XOP_VERSION]]
|
||||
|
||||
[[`BOOST_HW_SIMD_X86`] [BOOST_HW_SIMD_x86]]
|
||||
[[`BOOST_HW_SIMD_X86`] [BOOST_HW_SIMD_X86]]
|
||||
]
|
||||
|
||||
[note This predef includes every other x86 SIMD extensions and also has other
|
||||
|
@ -30,9 +30,9 @@ http://www.boost.org/LICENSE_1_0.txt)
|
||||
#define BOOST_HW_SIMD_X86_AMD_SSE4A_VERSION BOOST_VERSION_NUMBER(4, 0, 0)
|
||||
|
||||
/*`
|
||||
[heading `BOOST_HW_SIMD_X86_XOP_VERSION`]
|
||||
[heading `BOOST_HW_SIMD_X86_FMA4_VERSION`]
|
||||
|
||||
[@https://en.wikipedia.org/wiki/XOP_instruction_set XOP] x86 extension (AMD specific).
|
||||
[@https://en.wikipedia.org/wiki/FMA_instruction_set#FMA4_instruction_set FMA4] x86 extension (AMD specific).
|
||||
|
||||
Version number is: *5.1.0*.
|
||||
*/
|
||||
|
@ -29,7 +29,7 @@ http://www.boost.org/LICENSE_1_0.txt)
|
||||
defined(__CYGWIN__) \
|
||||
)
|
||||
# undef BOOST_OS_CYGWIN
|
||||
# define BOOST_OS_CGYWIN BOOST_VERSION_NUMBER_AVAILABLE
|
||||
# define BOOST_OS_CYGWIN BOOST_VERSION_NUMBER_AVAILABLE
|
||||
#endif
|
||||
|
||||
#if BOOST_OS_CYGWIN
|
||||
|
@ -1,5 +1,5 @@
|
||||
/*
|
||||
Copyright Rene Rivera 2015
|
||||
Copyright Rene Rivera 2015-2016
|
||||
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)
|
||||
@ -10,6 +10,6 @@ http://www.boost.org/LICENSE_1_0.txt)
|
||||
|
||||
#include <boost/predef/version_number.h>
|
||||
|
||||
#define BOOST_PREDEF_VERSION BOOST_VERSION_NUMBER(1,4,0)
|
||||
#define BOOST_PREDEF_VERSION BOOST_VERSION_NUMBER(1,4,1)
|
||||
|
||||
#endif
|
||||
|
@ -1,5 +1,5 @@
|
||||
#!/usr/bin/env b2 -a --verbose-test
|
||||
# Copyright Rene Rivera 2011-2013
|
||||
# Copyright Rene Rivera 2011-2016
|
||||
# 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)
|
||||
@ -64,4 +64,12 @@ test-suite predef :
|
||||
# Minimal testing done for predef for CI. Since
|
||||
# we don't have many we can just do all of them.
|
||||
alias minimal : predef ;
|
||||
|
||||
# Full testing target for regular regression tests.
|
||||
alias full : predef ;
|
||||
|
||||
# Extra's target. Nothing for Predef.
|
||||
alias extra ;
|
||||
|
||||
explicit minimal ;
|
||||
explicit extra ;
|
||||
|
@ -19,7 +19,7 @@ http://www.boost.org/LICENSE_1_0.txt)
|
||||
#define CHECK_VALUE "undefined"
|
||||
#endif
|
||||
|
||||
int main(int argc, const char ** argv)
|
||||
int main()
|
||||
{
|
||||
std::cout << "CHECK_VALUE == " << CHECK_VALUE << "\n" ;
|
||||
return 0;
|
||||
|
@ -6,7 +6,7 @@ http://www.boost.org/LICENSE_1_0.txt)
|
||||
*/
|
||||
#include <boost/predef/detail/test_def.h>
|
||||
|
||||
int main(int argc, const char ** argv)
|
||||
int main()
|
||||
{
|
||||
unsigned x = 0;
|
||||
create_predef_entries();
|
||||
|
202
tools/check/predef.jam
Normal file
202
tools/check/predef.jam
Normal file
@ -0,0 +1,202 @@
|
||||
# Copyright Rene Rivera 2015
|
||||
# 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)
|
||||
|
||||
# Defines rules that provide requirements based on checking
|
||||
# conditions using Boost Predef definitions and version numbers.
|
||||
|
||||
import modules ;
|
||||
import project ;
|
||||
import feature ;
|
||||
import string ;
|
||||
import toolset ;
|
||||
import modules ;
|
||||
import path ;
|
||||
import "class" : new ;
|
||||
import regex ;
|
||||
|
||||
# Create a project for our targets.
|
||||
project.extension predef check ;
|
||||
|
||||
# Feature to pass check expressions to check programs.
|
||||
feature.feature predef-expression : : free ;
|
||||
|
||||
# Checks the expressions and when used evaluates to the true-properties
|
||||
# if the expressions are all true. Otherwise evaluates to the
|
||||
# false-properties.
|
||||
rule check ( expressions + : language ? : true-properties * : false-properties * )
|
||||
{
|
||||
# Default to C++ on the check context.
|
||||
language ?= cpp ;
|
||||
|
||||
local project_target = [ project.target $(__name__) ] ;
|
||||
project.push-current $(project_target) ;
|
||||
local terms ;
|
||||
local result ;
|
||||
for expression in $(expressions)
|
||||
{
|
||||
if $(expression:L) in "and" "or"
|
||||
{
|
||||
terms += $(expression:L) ;
|
||||
}
|
||||
else
|
||||
{
|
||||
# Create the check run if we don't have one yet.
|
||||
local key = [ MD5 $(language)::$(expression) ] ;
|
||||
if ! ( $(key) in $(_checks_) )
|
||||
{
|
||||
_checks_ += $(key) ;
|
||||
_message_(/check/predef//predef_check_cc_$(key)) = $(expression) ;
|
||||
check_target $(language) $(key) : [ change_term_to_def $(expression) ] ;
|
||||
}
|
||||
|
||||
terms += /check/predef//predef_check_cc_$(key) ;
|
||||
}
|
||||
}
|
||||
local instance = [ new check-expression-evaluator
|
||||
$(terms) : $(true-properties) : $(false-properties) ] ;
|
||||
result = <conditional>@$(instance).check ;
|
||||
project.pop-current ;
|
||||
return $(result) ;
|
||||
}
|
||||
|
||||
# Checks the expressions and when used evaluates to <build>no
|
||||
# if the expressions are all false. Otherwise evaluates to the
|
||||
# nothing.
|
||||
rule require ( expressions + : language ? )
|
||||
{
|
||||
return [ check $(expressions) : $(language) : : <build>no ] ;
|
||||
}
|
||||
|
||||
#############################################################################
|
||||
|
||||
.c.ext = c ;
|
||||
.cpp.ext = cpp ;
|
||||
.objc.ext = m ;
|
||||
.objcpp.ext = mm ;
|
||||
|
||||
# Check targets. Each needs to be compiled for different languages
|
||||
# even though they are all the same source code.
|
||||
local rule check_target ( language key : requirements * )
|
||||
{
|
||||
# Need to use absolute paths because we don't know the
|
||||
# context of the invocation which affects where the paths
|
||||
# originate from.
|
||||
local predef_jam
|
||||
= [ modules.binding $(__name__) ] ;
|
||||
local source_path
|
||||
= $(predef_jam:D)/predef_check_cc_as_$(language).$(.$(language).ext) ;
|
||||
local include_path
|
||||
= $(predef_jam:D)/../../include ;
|
||||
obj predef_check_cc_$(key)
|
||||
: $(source_path)
|
||||
: <include>$(include_path) $(requirements) ;
|
||||
explicit predef_check_cc_$(key) ;
|
||||
return predef_check_cc_$(key) ;
|
||||
}
|
||||
|
||||
local rule change_term_to_def ( term )
|
||||
{
|
||||
local parts = [ regex.split $(term) " " ] ;
|
||||
if $(parts[3])
|
||||
{
|
||||
local version_number = [ regex.split $(parts[3]) "[.]" ] ;
|
||||
if ! $(version_number[3]) { version_number += "0" ; }
|
||||
if ! $(version_number[3]) { version_number += "0" ; }
|
||||
parts = $(parts[1-2]) BOOST_VERSION_NUMBER($(version_number:J=",")) ;
|
||||
}
|
||||
return <define>CHECK=\"$(parts:J=" ")\" ;
|
||||
}
|
||||
|
||||
class check-expression-evaluator
|
||||
{
|
||||
import configure ;
|
||||
|
||||
rule __init__ ( expression + : true-properties * : false-properties * )
|
||||
{
|
||||
self.expression = $(expression) ;
|
||||
self.true-properties = $(true-properties) ;
|
||||
self.false-properties = $(false-properties) ;
|
||||
}
|
||||
|
||||
rule check ( properties * )
|
||||
{
|
||||
local to-eval ;
|
||||
local tokens = "and" "or" ;
|
||||
# Go through the expression and: eval the target values,
|
||||
# and normalize to a full expression.
|
||||
for local term in $(self.expression)
|
||||
{
|
||||
if ! ( $(term:L) in $(tokens) )
|
||||
{
|
||||
# A value is a target reference that will evan to "true"
|
||||
# or "false".
|
||||
if $(to-eval[-1]:L) && ! ( $(to-eval[-1]:L) in $(tokens) )
|
||||
{
|
||||
# Default to "and" operation.
|
||||
to-eval += "and" ;
|
||||
}
|
||||
local message = [ modules.peek predef : _message_($(term)) ] ;
|
||||
if [ configure.builds $(term) : $(properties) : $(message) ]
|
||||
{
|
||||
to-eval += "true" ;
|
||||
}
|
||||
else
|
||||
{
|
||||
to-eval += "false" ;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
to-eval += $(term) ;
|
||||
}
|
||||
}
|
||||
# Eval full the expression.
|
||||
local eval-result = [ eval $(to-eval) ] ;
|
||||
# And resolve true/false properties.
|
||||
if $(eval-result) = "true"
|
||||
{
|
||||
return $(self.true-properties) ;
|
||||
}
|
||||
else
|
||||
{
|
||||
return $(self.false-properties) ;
|
||||
}
|
||||
}
|
||||
|
||||
rule eval ( e * )
|
||||
{
|
||||
local r ;
|
||||
if $(e[1]) && $(e[2]) && $(e[3])
|
||||
{
|
||||
if $(e[2]) = "and"
|
||||
{
|
||||
if $(e[1]) = "true" && $(e[3]) = "true"
|
||||
{
|
||||
r = [ eval "true" $(e[4-]) ] ;
|
||||
}
|
||||
else
|
||||
{
|
||||
r = [ eval "false" $(e[4-]) ] ;
|
||||
}
|
||||
}
|
||||
else if $(e[2]) = "or"
|
||||
{
|
||||
if $(e[1]) = "true" || $(e[3]) = "true"
|
||||
{
|
||||
r = [ eval "true" $(e[4-]) ] ;
|
||||
}
|
||||
else
|
||||
{
|
||||
r = [ eval "false" $(e[4-]) ] ;
|
||||
}
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
r = $(e[1]) ;
|
||||
}
|
||||
return $(r) ;
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user