diff options
author | Boris Kolpackov <boris@codesynthesis.com> | 2017-11-23 11:43:02 +0200 |
---|---|---|
committer | Boris Kolpackov <boris@codesynthesis.com> | 2017-11-23 11:43:02 +0200 |
commit | 290ea7840c979e38a2108030a99e7e9c61f40a8c (patch) | |
tree | 041eb38e45d39e032d203fb1c48f8ff07609db3e /buildfile | |
parent | d657b1d00d41bf448a94f6a7c49cacd41c5fac0e (diff) |
Restructure and install std-detect.hxx
We have to install this header since it needs to be included'able during
module sidebuilds.
Diffstat (limited to 'buildfile')
-rw-r--r-- | buildfile | 91 |
1 files changed, 1 insertions, 90 deletions
@@ -2,7 +2,7 @@ # copyright : Copyright (c) 2014-2017 Code Synthesis Ltd # license : MIT; see accompanying LICENSE file -./: tests/ doc{INSTALL LICENSE NEWS README version} file{manifest} +./: {*/ -build/} doc{INSTALL LICENSE NEWS README version} file{manifest} # The version file is auto-generated (by the version module) from manifest. # Include it in distribution and don't remove when cleaning in src (so that @@ -16,92 +16,3 @@ doc{version}: clean = ($src_root != $out_root) # dir{tests/}: install = false doc{INSTALL}@./: install = false - -if! $cxx.features.modules -{ - # List sources as files so that we can prepare a distribution with any - # compiler. - # - ./: {mxx cxx}{*} -} -else -{ - # We only do the static library since this is what we would have gotten - # should we have used headers (i.e., whatever object code generated from - # those headers would have ended up in each executable/library). - # - ./: liba{std-modules} - - # Building of the modules gets rather compiler-specific. - # - if ($cxx.id.type == 'clang') - { - # Use the naming scheme expected by -fprebuilt-module-path=. Can also be - # specified with -fmodule-file=. - # - core = std.core.pcm - io = std.io.pcm - regex = std.regex.pcm - threading = std.threading.pcm - - liba{std-modules}: bmia{$core $io $regex $threading} - - export_target = $out_root/liba{std-modules} - } - elif ($cxx.id.type == 'msvc') - { - # Use the naming scheme expected by /module:stdIfcDir. Note that IFCPATH - # would require an extra directory (x64 or x86; e.g., x64/Release/). - # - # @@ Currently VC looks in Release regardless of /MD or /MDd. - # - dir = release/ - core = $dir/std.core.ifc - io = $dir/std.io.ifc - regex = $dir/std.regex.ifc - threading = $dir/std.threading.ifc - - bmia{$core $io $regex $threading}: fsdir{$dir} - - # VC expects to find std.lib next to the .ifc's. Make it the real one - # while std-modules -- a dummy. - # - ./: $dir/liba{std} - $dir/liba{std}: bmia{$core $io $regex $threading} - liba{std-modules}: cxx{dummy.cxx} - - # @@ Doesn't work if installed so we don't bother installing it. But we - # still install dummy std-modules; the idea is to link a dummy and - # (try) to use Microsoft-shipped .ifc's. - # - $dir/liba{std}: install = false - - # Include std-modules to trigger install. - # - export_target = $out_root/$dir/liba{std} $out_root/liba{std-modules} - } - - # @@ TMP: use utility library instead? - # - if ($cxx.target.class == 'linux' || $cxx.target.class == 'bsd') - cxx.coptions += -fPIC - - # Clang with libc++ (sometimes) needs it -- go figure. - # - if ($cxx.target.class != "windows") - cxx.libs += -lpthread - - bmia{$core}: mxx{std-core} - bmia{$io}: mxx{std-io} bmia{$core} - bmia{$regex}: mxx{std-regex} bmia{$core} bmia{$io} - bmia{$threading}: mxx{std-threading} bmia{$core} - - mxx{std-core}@./: cc.module_name = std.core - mxx{std-io}@./: cc.module_name = std.io - mxx{std-regex}@./: cc.module_name = std.regex - mxx{std-threading}@./: cc.module_name = std.threading - - # Install into the libstd-modules/ subdirectory of, say, /usr/include/. - # - mxx{*}: install = include/$project/ -} |