aboutsummaryrefslogtreecommitdiff
path: root/libbutl/buildfile
diff options
context:
space:
mode:
authorBoris Kolpackov <boris@codesynthesis.com>2017-09-22 23:32:28 +0200
committerBoris Kolpackov <boris@codesynthesis.com>2017-09-22 23:32:28 +0200
commitc09cd7512491cee1e82c1ad8128ce9fd4bc3f79b (patch)
treea659ed768d849130ab5780a11b7f791a463a1a91 /libbutl/buildfile
parent2a00871f07067f8f9e2de08bb9c8f50e1bf6a650 (diff)
Initial modularization with both Clang and VC hacks
Note: gave up on VC about half way though.
Diffstat (limited to 'libbutl/buildfile')
-rw-r--r--libbutl/buildfile18
1 files changed, 16 insertions, 2 deletions
diff --git a/libbutl/buildfile b/libbutl/buildfile
index fe2e606..6086fd7 100644
--- a/libbutl/buildfile
+++ b/libbutl/buildfile
@@ -2,7 +2,16 @@
# copyright : Copyright (c) 2014-2017 Code Synthesis Ltd
# license : MIT; see accompanying LICENSE file
-lib{butl}: {hxx ixx txx cxx}{** -win32-utility -version} {hxx}{version}
+int_libs =
+
+if ($cxx.features.modules && ($force_std_modules == true || $cxx.id != 'msvc'))
+{
+ import int_libs += libstd-modules%liba{std-modules}
+ cxx.poptions += -D__cpp_lib_modules
+}
+
+lib{butl}: {mxx hxx ixx txx cxx}{** -win32-utility -version} {hxx}{version} \
+ $int_libs
# Exclude these from compilation on non-Windows targets.
#
@@ -33,7 +42,7 @@ if $version.pre_release
else
lib{butl}: bin.lib.version = @"-$version.major.$version.minor"
-bmi{*}: cxx.poptions += -DLIBBUTL_MODULE_BUILD
+lib{butl}: cxx.export.libs = $int_libs
cxx.poptions =+ "-I$out_root" "-I$src_root"
obja{*} bmia{*}: cxx.poptions += -DLIBBUTL_STATIC_BUILD
@@ -53,6 +62,11 @@ if ($cxx.target.class == "windows")
else
cxx.libs += -lpthread
+#@@ MOD bogus warning if module and dll-exported function called within DLL.
+#
+if ($cxx.features.modules && $cxx.id == 'msvc')
+ cxx.loptions += /ignore:4217
+
# Install into the libbutl/ subdirectory of, say, /usr/include/ recreating
# subdirectories.
#