stabilize build system: depends, installer, boost/bdb fixes, cross targets groundwork
This commit is contained in:
@@ -0,0 +1,56 @@
|
||||
|
||||
// (C) Copyright Edward Diener 2015
|
||||
// Use, modification and distribution are subject to 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).
|
||||
|
||||
#if !defined(BOOST_VMD_IS_VMD_SEQ_HPP)
|
||||
#define BOOST_VMD_IS_VMD_SEQ_HPP
|
||||
|
||||
#include <boost/vmd/detail/setup.hpp>
|
||||
|
||||
#if BOOST_PP_VARIADICS
|
||||
|
||||
#include <boost/preprocessor/control/iif.hpp>
|
||||
#include <boost/vmd/identity.hpp>
|
||||
#include <boost/vmd/is_empty.hpp>
|
||||
#include <boost/vmd/is_seq.hpp>
|
||||
|
||||
/*
|
||||
|
||||
The succeeding comments in this file are in doxygen format.
|
||||
|
||||
*/
|
||||
|
||||
/** \file
|
||||
*/
|
||||
|
||||
/** \def BOOST_VMD_IS_VMD_SEQ(sequence)
|
||||
|
||||
\brief Determines if a sequence is a VMD seq.
|
||||
|
||||
The macro checks that the sequence is a VMD seq.
|
||||
A VMD seq, which may be a Boost PP seq or emptiness, is a superset of a Boost PP seq.
|
||||
It returns 1 if it is a VMD seq, else if returns 0.
|
||||
|
||||
sequence = a possible Boost PP seq
|
||||
|
||||
returns = 1 if it a VMD seq, else returns 0.
|
||||
|
||||
*/
|
||||
|
||||
#define BOOST_VMD_IS_VMD_SEQ(sequence) \
|
||||
BOOST_VMD_IDENTITY_RESULT \
|
||||
( \
|
||||
BOOST_PP_IIF \
|
||||
( \
|
||||
BOOST_VMD_IS_EMPTY(sequence), \
|
||||
BOOST_VMD_IDENTITY(1), \
|
||||
BOOST_VMD_IS_SEQ \
|
||||
) \
|
||||
(sequence) \
|
||||
) \
|
||||
/**/
|
||||
|
||||
#endif /* BOOST_PP_VARIADICS */
|
||||
#endif /* BOOST_VMD_IS_VMD_SEQ_HPP */
|
||||
@@ -0,0 +1,51 @@
|
||||
|
||||
// (C) Copyright Edward Diener 2015
|
||||
// Use, modification and distribution are subject to 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).
|
||||
|
||||
#if !defined(BOOST_VMD_SEQ_POP_BACK_HPP)
|
||||
#define BOOST_VMD_SEQ_POP_BACK_HPP
|
||||
|
||||
#include <boost/vmd/detail/setup.hpp>
|
||||
|
||||
#if BOOST_PP_VARIADICS
|
||||
|
||||
#include <boost/preprocessor/comparison/equal.hpp>
|
||||
#include <boost/preprocessor/control/iif.hpp>
|
||||
#include <boost/preprocessor/seq/pop_back.hpp>
|
||||
#include <boost/preprocessor/seq/size.hpp>
|
||||
#include <boost/vmd/empty.hpp>
|
||||
|
||||
/*
|
||||
|
||||
The succeeding comments in this file are in doxygen format.
|
||||
|
||||
*/
|
||||
|
||||
/** \file
|
||||
*/
|
||||
|
||||
/** \def BOOST_VMD_SEQ_POP_BACK(seq)
|
||||
|
||||
\brief pops an element from the end of a seq.
|
||||
|
||||
seq = seq to pop an element from.
|
||||
|
||||
If the seq is an empty seq the result is undefined.
|
||||
If the seq is a single element the result is an empty seq.
|
||||
Otherwise the result is a seq after removing the last element.
|
||||
*/
|
||||
|
||||
#define BOOST_VMD_SEQ_POP_BACK(seq) \
|
||||
BOOST_PP_IIF \
|
||||
( \
|
||||
BOOST_PP_EQUAL(BOOST_PP_SEQ_SIZE(seq),1), \
|
||||
BOOST_VMD_EMPTY, \
|
||||
BOOST_PP_SEQ_POP_BACK \
|
||||
) \
|
||||
(seq) \
|
||||
/**/
|
||||
|
||||
#endif /* BOOST_PP_VARIADICS */
|
||||
#endif /* BOOST_VMD_SEQ_POP_BACK_HPP */
|
||||
@@ -0,0 +1,51 @@
|
||||
|
||||
// (C) Copyright Edward Diener 2015
|
||||
// Use, modification and distribution are subject to 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).
|
||||
|
||||
#if !defined(BOOST_VMD_SEQ_POP_FRONT_HPP)
|
||||
#define BOOST_VMD_SEQ_POP_FRONT_HPP
|
||||
|
||||
#include <boost/vmd/detail/setup.hpp>
|
||||
|
||||
#if BOOST_PP_VARIADICS
|
||||
|
||||
#include <boost/preprocessor/comparison/equal.hpp>
|
||||
#include <boost/preprocessor/control/iif.hpp>
|
||||
#include <boost/preprocessor/seq/pop_front.hpp>
|
||||
#include <boost/preprocessor/seq/size.hpp>
|
||||
#include <boost/vmd/empty.hpp>
|
||||
|
||||
/*
|
||||
|
||||
The succeeding comments in this file are in doxygen format.
|
||||
|
||||
*/
|
||||
|
||||
/** \file
|
||||
*/
|
||||
|
||||
/** \def BOOST_VMD_SEQ_POP_FRONT(seq)
|
||||
|
||||
\brief pops an element from the front of a seq.
|
||||
|
||||
seq = seq to pop an element from.
|
||||
|
||||
If the seq is an empty seq the result is undefined.
|
||||
If the seq is a single element the result is an empty seq.
|
||||
Otherwise the result is a seq after removing the first element.
|
||||
*/
|
||||
|
||||
#define BOOST_VMD_SEQ_POP_FRONT(seq) \
|
||||
BOOST_PP_IIF \
|
||||
( \
|
||||
BOOST_PP_EQUAL(BOOST_PP_SEQ_SIZE(seq),1), \
|
||||
BOOST_VMD_EMPTY, \
|
||||
BOOST_PP_SEQ_POP_FRONT \
|
||||
) \
|
||||
(seq) \
|
||||
/**/
|
||||
|
||||
#endif /* BOOST_PP_VARIADICS */
|
||||
#endif /* BOOST_VMD_SEQ_POP_FRONT_HPP */
|
||||
@@ -0,0 +1,53 @@
|
||||
|
||||
// (C) Copyright Edward Diener 2015
|
||||
// Use, modification and distribution are subject to 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).
|
||||
|
||||
#if !defined(BOOST_VMD_SEQ_PUSH_BACK_HPP)
|
||||
#define BOOST_VMD_SEQ_PUSH_BACK_HPP
|
||||
|
||||
#include <boost/vmd/detail/setup.hpp>
|
||||
|
||||
#if BOOST_PP_VARIADICS
|
||||
|
||||
#include <boost/preprocessor/control/iif.hpp>
|
||||
#include <boost/preprocessor/seq/push_back.hpp>
|
||||
#include <boost/vmd/identity.hpp>
|
||||
#include <boost/vmd/is_empty.hpp>
|
||||
|
||||
/*
|
||||
|
||||
The succeeding comments in this file are in doxygen format.
|
||||
|
||||
*/
|
||||
|
||||
/** \file
|
||||
*/
|
||||
|
||||
/** \def BOOST_VMD_SEQ_PUSH_BACK(seq,elem)
|
||||
|
||||
\brief appends an element to the end of a seq.
|
||||
|
||||
seq = seq to to append an element to.
|
||||
elem = element to append.
|
||||
|
||||
If the seq is an empty seq the result is a seq with the single element.
|
||||
Otherwise the result is a seq after adding the element to the end.
|
||||
*/
|
||||
|
||||
#define BOOST_VMD_SEQ_PUSH_BACK(seq,elem) \
|
||||
BOOST_VMD_IDENTITY_RESULT \
|
||||
( \
|
||||
BOOST_PP_IIF \
|
||||
( \
|
||||
BOOST_VMD_IS_EMPTY(seq), \
|
||||
BOOST_VMD_IDENTITY((elem)), \
|
||||
BOOST_PP_SEQ_PUSH_BACK \
|
||||
) \
|
||||
(seq,elem) \
|
||||
) \
|
||||
/**/
|
||||
|
||||
#endif /* BOOST_PP_VARIADICS */
|
||||
#endif /* BOOST_VMD_SEQ_PUSH_BACK_HPP */
|
||||
@@ -0,0 +1,53 @@
|
||||
|
||||
// (C) Copyright Edward Diener 2015
|
||||
// Use, modification and distribution are subject to 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).
|
||||
|
||||
#if !defined(BOOST_VMD_SEQ_PUSH_FRONT_HPP)
|
||||
#define BOOST_VMD_SEQ_PUSH_FRONT_HPP
|
||||
|
||||
#include <boost/vmd/detail/setup.hpp>
|
||||
|
||||
#if BOOST_PP_VARIADICS
|
||||
|
||||
#include <boost/preprocessor/control/iif.hpp>
|
||||
#include <boost/preprocessor/seq/push_front.hpp>
|
||||
#include <boost/vmd/identity.hpp>
|
||||
#include <boost/vmd/is_empty.hpp>
|
||||
|
||||
/*
|
||||
|
||||
The succeeding comments in this file are in doxygen format.
|
||||
|
||||
*/
|
||||
|
||||
/** \file
|
||||
*/
|
||||
|
||||
/** \def BOOST_VMD_SEQ_PUSH_FRONT(seq,elem)
|
||||
|
||||
\brief inserts an element at the beginning of a seq.
|
||||
|
||||
seq = seq to insert an element at.
|
||||
elem = element to insert.
|
||||
|
||||
If the seq is an empty seq the result is a seq with the single element.
|
||||
Otherwise the result is a seq after inserting the element at the beginning.
|
||||
*/
|
||||
|
||||
#define BOOST_VMD_SEQ_PUSH_FRONT(seq,elem) \
|
||||
BOOST_VMD_IDENTITY_RESULT \
|
||||
( \
|
||||
BOOST_PP_IIF \
|
||||
( \
|
||||
BOOST_VMD_IS_EMPTY(seq), \
|
||||
BOOST_VMD_IDENTITY((elem)), \
|
||||
BOOST_PP_SEQ_PUSH_FRONT \
|
||||
) \
|
||||
(seq,elem) \
|
||||
) \
|
||||
/**/
|
||||
|
||||
#endif /* BOOST_PP_VARIADICS */
|
||||
#endif /* BOOST_VMD_SEQ_PUSH_FRONT_HPP */
|
||||
@@ -0,0 +1,57 @@
|
||||
|
||||
// (C) Copyright Edward Diener 2015
|
||||
// Use, modification and distribution are subject to 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).
|
||||
|
||||
#if !defined(BOOST_VMD_SEQ_REMOVE_HPP)
|
||||
#define BOOST_VMD_SEQ_REMOVE_HPP
|
||||
|
||||
#include <boost/vmd/detail/setup.hpp>
|
||||
|
||||
#if BOOST_PP_VARIADICS
|
||||
|
||||
#include <boost/preprocessor/comparison/equal.hpp>
|
||||
#include <boost/preprocessor/control/iif.hpp>
|
||||
#include <boost/preprocessor/logical/bitand.hpp>
|
||||
#include <boost/preprocessor/seq/remove.hpp>
|
||||
#include <boost/preprocessor/seq/size.hpp>
|
||||
#include <boost/vmd/empty.hpp>
|
||||
|
||||
/*
|
||||
|
||||
The succeeding comments in this file are in doxygen format.
|
||||
|
||||
*/
|
||||
|
||||
/** \file
|
||||
*/
|
||||
|
||||
/** \def BOOST_VMD_SEQ_REMOVE(seq,index)
|
||||
|
||||
\brief removes an element from a seq.
|
||||
|
||||
seq = seq from which an element is to be removed.
|
||||
index = The zero-based position in seq of the element to be removed.
|
||||
|
||||
If index is greater or equal to the seq size the result is undefined.
|
||||
If the seq is a single element and the index is 0 the result is an empty seq.
|
||||
Otherwise the result is a seq after removing the index element.
|
||||
*/
|
||||
|
||||
#define BOOST_VMD_SEQ_REMOVE(seq,index) \
|
||||
BOOST_PP_IIF \
|
||||
( \
|
||||
BOOST_PP_BITAND \
|
||||
( \
|
||||
BOOST_PP_EQUAL(index,0), \
|
||||
BOOST_PP_EQUAL(BOOST_PP_SEQ_SIZE(seq),1) \
|
||||
), \
|
||||
BOOST_VMD_EMPTY, \
|
||||
BOOST_PP_SEQ_REMOVE \
|
||||
) \
|
||||
(seq,index) \
|
||||
/**/
|
||||
|
||||
#endif /* BOOST_PP_VARIADICS */
|
||||
#endif /* BOOST_VMD_SEQ_REMOVE_HPP */
|
||||
@@ -0,0 +1,52 @@
|
||||
|
||||
// (C) Copyright Edward Diener 2015
|
||||
// Use, modification and distribution are subject to 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).
|
||||
|
||||
#if !defined(BOOST_VMD_SEQ_SIZE_HPP)
|
||||
#define BOOST_VMD_SEQ_SIZE_HPP
|
||||
|
||||
#include <boost/vmd/detail/setup.hpp>
|
||||
|
||||
#if BOOST_PP_VARIADICS
|
||||
|
||||
#include <boost/preprocessor/control/iif.hpp>
|
||||
#include <boost/preprocessor/seq/size.hpp>
|
||||
#include <boost/vmd/identity.hpp>
|
||||
#include <boost/vmd/is_empty.hpp>
|
||||
|
||||
/*
|
||||
|
||||
The succeeding comments in this file are in doxygen format.
|
||||
|
||||
*/
|
||||
|
||||
/** \file
|
||||
*/
|
||||
|
||||
/** \def BOOST_VMD_SEQ_SIZE(seq)
|
||||
|
||||
\brief expands to the size of the seq passed to it.
|
||||
|
||||
seq = seq whose size is to be extracted.
|
||||
|
||||
If the seq is an empty seq its size is 0.
|
||||
Otherwise the result is the number of elements in the seq.
|
||||
*/
|
||||
|
||||
#define BOOST_VMD_SEQ_SIZE(seq) \
|
||||
BOOST_VMD_IDENTITY_RESULT \
|
||||
( \
|
||||
BOOST_PP_IIF \
|
||||
( \
|
||||
BOOST_VMD_IS_EMPTY(seq), \
|
||||
BOOST_VMD_IDENTITY(0), \
|
||||
BOOST_PP_SEQ_SIZE \
|
||||
) \
|
||||
(seq) \
|
||||
) \
|
||||
/**/
|
||||
|
||||
#endif /* BOOST_PP_VARIADICS */
|
||||
#endif /* BOOST_VMD_SEQ_SIZE_HPP */
|
||||
@@ -0,0 +1,52 @@
|
||||
|
||||
// (C) Copyright Edward Diener 2015
|
||||
// Use, modification and distribution are subject to 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).
|
||||
|
||||
#if !defined(BOOST_VMD_SEQ_TO_ARRAY_HPP)
|
||||
#define BOOST_VMD_SEQ_TO_ARRAY_HPP
|
||||
|
||||
#include <boost/vmd/detail/setup.hpp>
|
||||
|
||||
#if BOOST_PP_VARIADICS
|
||||
|
||||
#include <boost/preprocessor/control/iif.hpp>
|
||||
#include <boost/preprocessor/seq/to_array.hpp>
|
||||
#include <boost/vmd/identity.hpp>
|
||||
#include <boost/vmd/is_empty.hpp>
|
||||
|
||||
/*
|
||||
|
||||
The succeeding comments in this file are in doxygen format.
|
||||
|
||||
*/
|
||||
|
||||
/** \file
|
||||
*/
|
||||
|
||||
/** \def BOOST_VMD_SEQ_TO_ARRAY(seq)
|
||||
|
||||
\brief converts a seq to an array.
|
||||
|
||||
seq = seq to be converted.
|
||||
|
||||
If the seq is an empty seq it is converted to an array with 0 elements.
|
||||
Otherwise the seq is converted to an array with the same number of elements as the seq.
|
||||
*/
|
||||
|
||||
#define BOOST_VMD_SEQ_TO_ARRAY(seq) \
|
||||
BOOST_VMD_IDENTITY_RESULT \
|
||||
( \
|
||||
BOOST_PP_IIF \
|
||||
( \
|
||||
BOOST_VMD_IS_EMPTY(seq), \
|
||||
BOOST_VMD_IDENTITY((0,())), \
|
||||
BOOST_PP_SEQ_TO_ARRAY \
|
||||
) \
|
||||
(seq) \
|
||||
) \
|
||||
/**/
|
||||
|
||||
#endif /* BOOST_PP_VARIADICS */
|
||||
#endif /* BOOST_VMD_SEQ_TO_ARRAY_HPP */
|
||||
@@ -0,0 +1,65 @@
|
||||
|
||||
// (C) Copyright Edward Diener 2015
|
||||
// Use, modification and distribution are subject to 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).
|
||||
|
||||
#if !defined(BOOST_VMD_SEQ_TO_LIST_HPP)
|
||||
#define BOOST_VMD_SEQ_TO_LIST_HPP
|
||||
|
||||
#include <boost/vmd/detail/setup.hpp>
|
||||
|
||||
#if BOOST_PP_VARIADICS
|
||||
|
||||
#include <boost/preprocessor/control/iif.hpp>
|
||||
#include <boost/preprocessor/seq/to_list.hpp>
|
||||
// #include <boost/vmd/identity.hpp>
|
||||
#include <boost/vmd/is_empty.hpp>
|
||||
|
||||
/*
|
||||
|
||||
The succeeding comments in this file are in doxygen format.
|
||||
|
||||
*/
|
||||
|
||||
/** \file
|
||||
*/
|
||||
|
||||
/** \def BOOST_VMD_SEQ_TO_LIST(seq)
|
||||
|
||||
\brief converts a seq to a list.
|
||||
|
||||
seq = seq to be converted.
|
||||
|
||||
If the seq is an empty seq it is converted to an empty list (BOOST_PP_NIL).
|
||||
Otherwise the seq is converted to a list with the same number of elements as the seq.
|
||||
*/
|
||||
|
||||
#if BOOST_VMD_MSVC
|
||||
#define BOOST_VMD_SEQ_TO_LIST(seq) \
|
||||
BOOST_PP_IIF \
|
||||
( \
|
||||
BOOST_VMD_IS_EMPTY(seq), \
|
||||
BOOST_VMD_SEQ_TO_LIST_PE, \
|
||||
BOOST_VMD_SEQ_TO_LIST_NPE \
|
||||
) \
|
||||
(seq) \
|
||||
/**/
|
||||
#define BOOST_VMD_SEQ_TO_LIST_PE(seq) BOOST_PP_NIL
|
||||
/**/
|
||||
#define BOOST_VMD_SEQ_TO_LIST_NPE(seq) BOOST_PP_SEQ_TO_LIST(seq)
|
||||
/**/
|
||||
#else
|
||||
#define BOOST_VMD_SEQ_TO_LIST(seq) \
|
||||
BOOST_PP_IIF \
|
||||
( \
|
||||
BOOST_VMD_IS_EMPTY(seq), \
|
||||
BOOST_VMD_IDENTITY(BOOST_PP_NIL), \
|
||||
BOOST_PP_SEQ_TO_LIST \
|
||||
) \
|
||||
(seq) \
|
||||
/**/
|
||||
#endif
|
||||
|
||||
#endif /* BOOST_PP_VARIADICS */
|
||||
#endif /* BOOST_VMD_SEQ_TO_LIST_HPP */
|
||||
@@ -0,0 +1,49 @@
|
||||
|
||||
// (C) Copyright Edward Diener 2015
|
||||
// Use, modification and distribution are subject to 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).
|
||||
|
||||
#if !defined(BOOST_VMD_SEQ_TO_TUPLE_HPP)
|
||||
#define BOOST_VMD_SEQ_TO_TUPLE_HPP
|
||||
|
||||
#include <boost/vmd/detail/setup.hpp>
|
||||
|
||||
#if BOOST_PP_VARIADICS
|
||||
|
||||
#include <boost/preprocessor/control/iif.hpp>
|
||||
#include <boost/preprocessor/seq/to_tuple.hpp>
|
||||
#include <boost/vmd/empty.hpp>
|
||||
#include <boost/vmd/is_empty.hpp>
|
||||
|
||||
/*
|
||||
|
||||
The succeeding comments in this file are in doxygen format.
|
||||
|
||||
*/
|
||||
|
||||
/** \file
|
||||
*/
|
||||
|
||||
/** \def BOOST_VMD_SEQ_TO_TUPLE(seq)
|
||||
|
||||
\brief converts a seq to a tuple.
|
||||
|
||||
seq = seq to be converted.
|
||||
|
||||
If the seq is an empty seq it is converted to an empty tuple.
|
||||
Otherwise the seq is converted to a tuple with the same number of elements as the seq.
|
||||
*/
|
||||
|
||||
#define BOOST_VMD_SEQ_TO_TUPLE(seq) \
|
||||
BOOST_PP_IIF \
|
||||
( \
|
||||
BOOST_VMD_IS_EMPTY(seq), \
|
||||
BOOST_VMD_EMPTY, \
|
||||
BOOST_PP_SEQ_TO_TUPLE \
|
||||
) \
|
||||
(seq) \
|
||||
/**/
|
||||
|
||||
#endif /* BOOST_PP_VARIADICS */
|
||||
#endif /* BOOST_VMD_SEQ_TO_TUPLE_HPP */
|
||||
Reference in New Issue
Block a user