From 290ea7840c979e38a2108030a99e7e9c61f40a8c Mon Sep 17 00:00:00 2001 From: Boris Kolpackov Date: Thu, 23 Nov 2017 11:43:02 +0200 Subject: Restructure and install std-detect.hxx We have to install this header since it needs to be included'able during module sidebuilds. --- libstd-modules/std-core.mxx | 127 ++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 127 insertions(+) create mode 100644 libstd-modules/std-core.mxx (limited to 'libstd-modules/std-core.mxx') diff --git a/libstd-modules/std-core.mxx b/libstd-modules/std-core.mxx new file mode 100644 index 0000000..c3f3566 --- /dev/null +++ b/libstd-modules/std-core.mxx @@ -0,0 +1,127 @@ +// file : libstd-modules/std-core.mxx -*- C++ -*- +// copyright : Copyright (c) 2014-2017 Code Synthesis Ltd +// license : MIT; see accompanying LICENSE file + +// For some standard library implementations we need to pre-include certain +// headers to prevent their exporting. + +#include + +#if defined(_MSC_VER) +/* +# include +# include +# include +# include +# include // struct tm; +*/ +#elif defined(__GLIBCXX__) +# include +# include +# include // struct tm forward declaration. +# include +# include +# include +# include +# include +# include // Names with internal linkage. +#elif defined(_LIBCPP_VERSION) +#endif + +export module std.core; + +export +{ + // These are defined in which we have pre-included. + // +#ifdef __GLIBCXX__ + namespace std + { + typedef __SIZE_TYPE__ size_t; + typedef __PTRDIFF_TYPE__ ptrdiff_t; + typedef decltype(nullptr) nullptr_t; + } +#endif + +#include +#include +#include + +#include +#include + +#include +#include +#include + +#include +#include + +#include +#include +#include +#include +#include +} + +export +{ +#include +#include +#include + +#include +#include // @@ Not in the proposal. + +#include +#include +#include +#include +#include +#include +#include +} + +#if defined(_MSC_VER) || defined(__clang__) +export +{ +#include +#include +#include + +#include +#include +#include +#include +#include +#include + +#ifndef __GLIBCXX__ +# include +#else +// Contents of without static __ioinit. +// +namespace std _GLIBCXX_VISIBILITY(default) +{ +_GLIBCXX_BEGIN_NAMESPACE_VERSION + extern istream cin; + extern ostream cout; + extern ostream cerr; + extern ostream clog; + + //static ios_base::Init __ioinit; +_GLIBCXX_END_NAMESPACE_VERSION +} +#endif +} +#endif + +// std.threading +// +export +{ +#include +#include +#include +#include +} -- cgit v1.1