aboutsummaryrefslogtreecommitdiff
path: root/build2/cc/common.hxx
diff options
context:
space:
mode:
authorBoris Kolpackov <boris@codesynthesis.com>2017-06-22 13:24:59 +0200
committerBoris Kolpackov <boris@codesynthesis.com>2017-06-22 13:24:59 +0200
commit9a00b8ccfef1d13088be2d76fefcb320c269732a (patch)
tree40a7efc0bc0116cbbf035310b9341d83a0793a07 /build2/cc/common.hxx
parente52f8358ce533742a0357fabebd96fb7f5b2609a (diff)
Add extra support for symbol exporting in modularized projects
Since modules don't see each other's macros, we can use a single, keyword- like macro for dll-exporting that is managed by the build system (so no need for an "export" header). For example: cxx.features.symexport = true export __symexport void f ();
Diffstat (limited to 'build2/cc/common.hxx')
-rw-r--r--build2/cc/common.hxx5
1 files changed, 4 insertions, 1 deletions
diff --git a/build2/cc/common.hxx b/build2/cc/common.hxx
index 24262b7..abeadfc 100644
--- a/build2/cc/common.hxx
+++ b/build2/cc/common.hxx
@@ -115,7 +115,8 @@ namespace build2
const strings& tstd; // Translated x_std value (options).
- bool modules; // x.feaures.modules
+ bool modules; // x.features.modules
+ bool symexport; // x.features.symexport
const process_path* pkgconfig; // pkgconfig.path (can be NULL).
const dir_paths& sys_lib_dirs; // x.sys_lib_dirs
@@ -159,6 +160,7 @@ namespace build2
const target_triplet& tg,
const strings& std,
bool fm,
+ bool fs,
const process_path* pkgc,
const dir_paths& sld,
const dir_paths& sid,
@@ -175,6 +177,7 @@ namespace build2
ctg (tg), tsys (ctg.system), tclass (ctg.class_),
tstd (std),
modules (fm),
+ symexport (fs),
pkgconfig (pkgc), sys_lib_dirs (sld), sys_inc_dirs (sid),
x_src (src), x_mod (mod), x_hdr (hdr), x_inc (inc) {}
};