...
 
Commits (19)
before_script:
- source /opt/conda/bin/activate
build:
.build-conda: &build-conda
stage: build
script:
- cd $CI_COMMIT_REF_NAME
- conda build . --prefix-length=80 --output-folder=../dist/ --python=2.7 --channel=file://conda
# - conda build . --prefix-length=80 --output-folder=../dist/ --python=3.6 --channel=file://conda
- conda build -c conda-forge -c http://bcu-ci.esrf.fr/stable --prefix-length=80 --output-folder=dist boost
artifacts:
paths:
- dist/
except:
- master
tags:
- conda
build-linux:
<<: *build-conda
tags:
- linux
build-win:
<<: *build-conda
tags:
- win
deploy:
stage: deploy
dependencies:
- build
- build-linux
- build-win
script:
- mv -f dist/linux-64/*.tar.bz2 /conda/linux-64/
- conda index /conda/linux-64/
- cp -Rf dist/* /conda/
- conda index /conda/
except:
- master
tags:
- conda
- linux
:: Start with bootstrap
call bootstrap.bat
if errorlevel 1 exit 1
:: Add "using mpi ;" to project config
echo &echo. >> %SRC_DIR%\project-config.jam
echo import os ; >> %SRC_DIR%\project-config.jam
echo local LIBRARY_INC = [ os.environ LIBRARY_INC ] ; >> %SRC_DIR%\project-config.jam
echo local LIBRARY_LIB = [ os.environ LIBRARY_LIB ] ; >> %SRC_DIR%\project-config.jam
echo using mpi : : >> %SRC_DIR%\project-config.jam
echo ^<include^>$(LIBRARY_INC) >> %SRC_DIR%\project-config.jam
echo ^<library-path^>$(LIBRARY_LIB) >> %SRC_DIR%\project-config.jam
echo ^<find-shared-library^>msmpi >> %SRC_DIR%\project-config.jam
echo ; >> %SRC_DIR%\project-config.jam
:: Build step
.\b2 install ^
--build-dir=buildboost ^
--prefix=%LIBRARY_PREFIX% ^
toolset=msvc-14.2 ^
address-model=%ARCH% ^
variant=debug,release ^
threading=multi ^
link=static ^
-j%CPU_COUNT% ^
--with-mpi ^
--with-program_options ^
--with-log ^
--with-test ^
--with-filesystem ^
--with-graph ^
--with-system
if errorlevel 1 exit 1
#!/bin/bash
# Hints:
# http://boost.2283326.n4.nabble.com/how-to-build-boost-with-bzip2-in-non-standard-location-td2661155.html
# http://www.gentoo.org/proj/en/base/amd64/howtos/?part=1&chap=3
# http://www.boost.org/doc/libs/1_55_0/doc/html/bbv2/reference.html
# Hints for OSX:
# http://stackoverflow.com/questions/20108407/how-do-i-compile-boost-for-os-x-64b-platforms-with-stdlibc
set -x -e
INCLUDE_PATH="${PREFIX}/include"
LIBRARY_PATH="${PREFIX}/lib"
# Always build PIC code for enable static linking into other shared libraries
CXXFLAGS="${CXXFLAGS} -fPIC"
if [ "$(uname)" == "Darwin" ]; then
TOOLSET=clang
elif [ "$(uname)" == "Linux" ]; then
TOOLSET=gcc
fi
# http://www.boost.org/build/doc/html/bbv2/tasks/crosscompile.html
cat <<EOF > ${SRC_DIR}/tools/build/src/site-config.jam
using ${TOOLSET} : custom : ${CXX} ;
using mpi ;
EOF
LINKFLAGS="${LINKFLAGS} -L${LIBRARY_PATH}"
./bootstrap.sh \
--prefix="${PREFIX}" \
--without-libraries=python \
--with-toolset=${TOOLSET} \
--with-icu="${PREFIX}" \
| tee bootstrap.log 2>&1
ADDRESS_MODEL="${ARCH}"
ARCHITECTURE=x86
if [ "${ADDRESS_MODEL}" == "aarch64" ]; then
ADDRESS_MODEL=64
ARCHITECTURE=arm
elif [ "${ADDRESS_MODEL}" == "ppc64le" ]; then
ADDRESS_MODEL=64
ARCHITECTURE=power
fi
./b2 -q \
variant=release \
address-model="${ADDRESS_MODEL}" \
architecture="${ARCHITECTURE}" \
debug-symbols=off \
threading=multi \
runtime-link=shared \
link=static,shared \
toolset=${TOOLSET}-custom \
include="${INCLUDE_PATH}" \
cxxflags="${CXXFLAGS}" \
linkflags="${LINKFLAGS}" \
-j"${CPU_COUNT}" \
--with-mpi \
--with-program_options \
--with-log \
--with-test \
--with-filesystem \
--with-graph \
--with-system \
install | sed -e "s|${PREFIX}|<PREFIX>|g" | tee b2.log 2>&1
# Remove Python headers as we don't build Boost.Python.
rm "${PREFIX}/include/boost/python.hpp"
rm -r "${PREFIX}/include/boost/python"
c_compiler:
- vs2019 # [win]
cxx_compiler:
- vs2019 # [win]
# This differs from target_platform in that it determines what subdir the compiler
# will target, not what subdir the compiler package will be itself.
# For example, we need a win-64 vs2008_win-32 package, so that we compile win-32
# code on win-64 miniconda.
cross_compiler_target_platform:
- win-64 # [win]
target_platform:
- win-64 # [win]
vc:
- 14
zip_keys:
- # [win]
- vc # [win]
- c_compiler # [win]
- cxx_compiler # [win]
diff --git a/boost/hana/detail/struct_macros.hpp b/boost/hana/detail/struct_macros.hpp
index 8298de67d..ffd73c920 100644
--- a/boost/hana/detail/struct_macros.hpp
+++ b/boost/hana/detail/struct_macros.hpp
@@ -29,15 +29,20 @@ Distributed under the Boost Software License, Version 1.0.
#include <boost/hana/tuple.hpp>
#include <cstddef>
+#include <type_traits>
#include <utility>
BOOST_HANA_NAMESPACE_BEGIN namespace struct_detail {
template <typename Memptr, Memptr ptr>
struct member_ptr {
- template <typename T>
+ template <typename T, typename Memptr2 = Memptr, std::enable_if_t<std::is_member_object_pointer_v<Memptr2>, int> = 0 >
constexpr decltype(auto) operator()(T&& t) const
{ return static_cast<T&&>(t).*ptr; }
+
+ template <typename T, typename Memptr2 = Memptr, std::enable_if_t<std::is_member_function_pointer_v<Memptr2>, int> = 0>
+ constexpr decltype(auto) operator()(T&&) const
+ { return ptr; }
};
constexpr std::size_t strlen(char const* s) {
diff --git a/boost/hana/experimental/type_name.hpp b/boost/hana/experimental/type_name.hpp
index f3db17617..f30a8e8a8 100644
--- a/boost/hana/experimental/type_name.hpp
+++ b/boost/hana/experimental/type_name.hpp
@@ -33,6 +33,12 @@ BOOST_HANA_NAMESPACE_BEGIN namespace experimental {
constexpr std::size_t total_size = sizeof(__PRETTY_FUNCTION__) - 1;
constexpr std::size_t prefix_size = sizeof("boost::hana::experimental::detail::cstring boost::hana::experimental::detail::type_name_impl2() [T = ") - 1;
constexpr std::size_t suffix_size = sizeof("]") - 1;
+ #elif defined(_MSC_VER)
+ constexpr char const* pretty_function = __FUNCTION__;
+ constexpr std::size_t total_size = sizeof(__FUNCTION__) - 1;
+ static_assert(pretty_function == "");
+ constexpr std::size_t prefix_size = sizeof("boost::hana::experimental::detail::cstring boost::hana::experimental::detail::type_name_impl2() [T = ") - 1;
+ constexpr std::size_t suffix_size = sizeof("]") - 1;
#else
#error "No support for this compiler."
#endif
{% set version = "1.72.0" %}
{% set filename = "boost_%s.tar.bz2" % version.replace(".", "_") %}
package:
name: boost-cpp
version: {{ version }}
source:
url: https://dl.bintray.com/boostorg/release/{{ version }}/source/{{ filename }}
sha256: 59c9b274bc451cf91a9ba1dd2c7fdcaf5d60b1b3aa83f2c9fa143417cc660722
patches:
- hana.patch
- serialization.patch
build:
number: 0
requirements:
build:
- git
- {{ compiler('cxx') }}
host:
- msmpi # [win]
- mpich # [unix]
run:
- msmpi # [win]
- mpich # [unix]
# test:
# commands:
# # Verify Python headers are removed.
# - "! test -f $PREFIX/include/boost/python.hpp" # [unix]
# - "! test -d $PREFIX/include/boost/python" # [unix]
# - if exist %PREFIX%\\Library\\include\\boost\\python.hpp exit 1 # [win]
# - if exist %PREFIX%\\Library\\include\\boost\\python exit 1 # [win]
#
# # Verify static-only libraries.
# - test -f $PREFIX/lib/libboost_exception.a # [unix]
# - test -f $PREFIX/lib/libboost_test_exec_monitor.a # [unix]
#
# # Verify libraries.
# {% set boost_libs = [
# "atomic",
# "chrono",
# "container",
# "context",
# "contract",
# "coroutine",
# "date_time",
# "filesystem",
# "graph",
# "iostreams",
# "locale",
# "log",
# "log_setup",
# "math_c99",
# "math_c99f",
# "math_c99l",
# "math_tr1",
# "math_tr1f",
# "math_tr1l",
# "prg_exec_monitor",
# "program_options",
# "random",
# "regex",
# "serialization",
# "system",
# "thread",
# "timer",
# "type_erasure",
# "unit_test_framework",
# "wserialization"
# ] %}
# {% for each_boost_lib in boost_libs %}
# - test -f $PREFIX/lib/libboost_{{ each_boost_lib }}.a # [unix]
# - test -f $PREFIX/lib/libboost_{{ each_boost_lib }}.dylib # [osx]
# - test -f $PREFIX/lib/libboost_{{ each_boost_lib }}.so # [linux]
# - if not exist %PREFIX%\\Library\\bin\\boost_{{ each_boost_lib }}.dll exit 1 # [win]
# - if not exist %PREFIX%\\Library\\lib\\boost_{{ each_boost_lib }}.lib exit 1 # [win]
# - if not exist %PREFIX%\\Library\\lib\\libboost_{{ each_boost_lib }}.lib exit 1 # [win]
# {% endfor %}
# - conda inspect linkages -p $PREFIX $PKG_NAME # [not win]
# - conda inspect objects -p $PREFIX $PKG_NAME # [osx]
about:
home: http://www.boost.org/
license: Boost-1.0
license_file: LICENSE_1_0.txt
summary: Free peer-reviewed portable C++ source libraries.
This diff is collapsed.