summaryrefslogtreecommitdiff
path: root/cli/generator.cxx
diff options
context:
space:
mode:
authorBoris Kolpackov <boris@codesynthesis.com>2009-09-20 07:04:17 +0200
committerBoris Kolpackov <boris@codesynthesis.com>2009-09-20 07:04:17 +0200
commitf15dcbcb90c92e0ce4c9ff575349b60713fe1f83 (patch)
treee90adb4e0b581ab7adcc6554f1efd9de381b4684 /cli/generator.cxx
parentebfe8dc9d7093e932f91a649636e2202630cc16f (diff)
Add definition unit to context
Diffstat (limited to 'cli/generator.cxx')
-rw-r--r--cli/generator.cxx17
1 files changed, 14 insertions, 3 deletions
diff --git a/cli/generator.cxx b/cli/generator.cxx
index cf9de69..c23f382 100644
--- a/cli/generator.cxx
+++ b/cli/generator.cxx
@@ -13,6 +13,10 @@
#include <cutl/compiler/code-stream.hxx>
#include <cutl/compiler/cxx-indenter.hxx>
+#include "header.hxx"
+#include "source.hxx"
+#include "inline.hxx"
+
#include "context.hxx"
#include "generator.hxx"
@@ -154,7 +158,7 @@ generate (semantics::cli_unit& unit, path const& p)
//
{
cxx_filter filt (hxx);
- context ctx (hxx);
+ context ctx (hxx, unit);
string guard (make_guard (hxx_name, "", ctx));
@@ -162,6 +166,7 @@ generate (semantics::cli_unit& unit, path const& p)
<< "#define " << guard << endl
<< endl;
+ generate_header (ctx);
if (inl)
{
@@ -177,17 +182,23 @@ generate (semantics::cli_unit& unit, path const& p)
if (inl)
{
cxx_filter filt (ixx);
- context ctx (ixx);
+ context ctx (ixx, unit);
+ generate_inline (ctx);
}
// CXX
//
{
cxx_filter filt (cxx);
- context ctx (cxx);
+ context ctx (cxx, unit);
cxx << "#include \"" << hxx_name << "\"" << endl
<< endl;
+
+ if (!inl)
+ generate_inline (ctx);
+
+ generate_source (ctx);
}
auto_rm.cancel ();