summaryrefslogtreecommitdiff
path: root/TAO
diff options
context:
space:
mode:
Diffstat (limited to 'TAO')
-rw-r--r--TAO/ChangeLog12
-rw-r--r--TAO/TAO_IDL/be/be_global.cpp44
-rw-r--r--TAO/TAO_IDL/be/be_produce.cpp28
-rw-r--r--TAO/TAO_IDL/be_include/be_global.h16
-rw-r--r--TAO/docs/compiler.html16
5 files changed, 105 insertions, 11 deletions
diff --git a/TAO/ChangeLog b/TAO/ChangeLog
index 3841f8305c0..22ae9049da5 100644
--- a/TAO/ChangeLog
+++ b/TAO/ChangeLog
@@ -1,5 +1,17 @@
Fri Aug 11 07:35:12 UTC 2006 Johnny Willemsen <jwillemsen@remedy.nl>
+ * TAO_IDL/be/be_global.cpp:
+ * TAO_IDL/be/be_produce.cpp:
+ * TAO_IDL/be_include/be_global.h:
+ * docs/compiler.html:
+ Added -Scc to suppress generation of client stub and -Ssc of
+ generation of server skeleton file. These options don't check
+ if something is generated in these files or not, they just
+ suppress the generation. Usefull for some pidl files in the
+ core libraries. This fixes bugzilla 2631
+
+Fri Aug 11 07:35:12 UTC 2006 Johnny Willemsen <jwillemsen@remedy.nl>
+
* orbsvcs/orbsvcs/Sched/Reconfig_Scheduler_T.cpp:
Initialise pointer with 0 to address gcc 4.1 warning
diff --git a/TAO/TAO_IDL/be/be_global.cpp b/TAO/TAO_IDL/be/be_global.cpp
index 4b5c2103c24..ec26d0b06ee 100644
--- a/TAO/TAO_IDL/be/be_global.cpp
+++ b/TAO/TAO_IDL/be/be_global.cpp
@@ -109,6 +109,8 @@ BE_GlobalData::BE_GlobalData (void)
gen_skel_files_ (true),
gen_client_inline_ (true),
gen_server_inline_ (true),
+ gen_client_stub_ (true),
+ gen_server_skeleton_ (true),
gen_local_iface_anyops_ (true)
{
}
@@ -1529,6 +1531,30 @@ BE_GlobalData::gen_server_inline (bool val)
}
bool
+BE_GlobalData::gen_client_stub (void) const
+{
+ return this->gen_client_stub_;
+}
+
+void
+BE_GlobalData::gen_client_stub (bool val)
+{
+ this->gen_client_stub_ = val;
+}
+
+bool
+BE_GlobalData::gen_server_skeleton (void) const
+{
+ return this->gen_server_skeleton_;
+}
+
+void
+BE_GlobalData::gen_server_skeleton (bool val)
+{
+ this->gen_server_skeleton_ = val;
+}
+
+bool
BE_GlobalData::gen_local_iface_anyops (void) const
{
return this->gen_local_iface_anyops_;
@@ -2136,6 +2162,19 @@ BE_GlobalData::parse_args (long &i, char **av)
// No stub inline.
be_global->gen_client_inline (false);
}
+ else if (av[i][3] == 'c')
+ {
+ // No stub inline.
+ be_global->gen_client_stub (false);
+ }
+ else
+ {
+ ACE_ERROR ((
+ LM_ERROR,
+ ACE_TEXT ("IDL: I don't understand the '%s' option\n"),
+ av[i]
+ ));
+ }
}
else if (av[i][2] == 'm')
{
@@ -2154,6 +2193,11 @@ BE_GlobalData::parse_args (long &i, char **av)
// No skeleton inline.
be_global->gen_server_inline (false);
}
+ else if (av[i][3] == 'c')
+ {
+ // No skeleton inline.
+ be_global->gen_server_skeleton (false);
+ }
else
{
ACE_ERROR ((
diff --git a/TAO/TAO_IDL/be/be_produce.cpp b/TAO/TAO_IDL/be/be_produce.cpp
index 3e749b5c50c..1dd77deda1a 100644
--- a/TAO/TAO_IDL/be/be_produce.cpp
+++ b/TAO/TAO_IDL/be/be_produce.cpp
@@ -101,7 +101,7 @@ BE_visit_root (be_visitor_decl &root_visitor, const char *which_pass)
{
static be_root *root =
be_root::narrow_from_decl (idl_global->root ());
-
+
if (-1 == root->accept (&root_visitor))
{
ACE_ERROR ((LM_ERROR,
@@ -109,7 +109,7 @@ BE_visit_root (be_visitor_decl &root_visitor, const char *which_pass)
which_pass));
BE_abort ();
}
-
+
root_visitor.ctx ()->reset ();
}
@@ -138,13 +138,13 @@ BE_produce (void)
}
const char *fname = be_global->be_get_anyop_header_fname ();
-
+
// No-op if the -GA wasn't on the command line.
if (-1 == tao_cg->start_anyop_header (fname))
{
BE_abort ();
}
-
+
ctx.state (TAO_CodeGen::TAO_ROOT_CH);
be_visitor_root_ch root_ch_visitor (&ctx);
BE_visit_root (root_ch_visitor, "client header");
@@ -155,7 +155,7 @@ BE_produce (void)
// and before stub source file generation, since
// generation of Any-related #includes may be redirected.
fname = be_global->be_get_anyop_source_fname ();
-
+
if (-1 == tao_cg->start_anyop_source (fname))
{
BE_abort ();
@@ -168,9 +168,12 @@ BE_produce (void)
BE_visit_root (root_ci_visitor, "client inline");
}
- ctx.state (TAO_CodeGen::TAO_ROOT_CS);
- be_visitor_root_cs root_cs_visitor (&ctx);
- BE_visit_root (root_cs_visitor, "client stub");
+ if (be_global->gen_client_stub ())
+ {
+ ctx.state (TAO_CodeGen::TAO_ROOT_CS);
+ be_visitor_root_cs root_cs_visitor (&ctx);
+ BE_visit_root (root_cs_visitor, "client stub");
+ }
ctx.state (TAO_CodeGen::TAO_ROOT_SH);
be_visitor_root_sh root_sh_visitor (&ctx);
@@ -190,9 +193,12 @@ BE_produce (void)
BE_visit_root (root_si_visitor, "server inline");
}
- ctx.state (TAO_CodeGen::TAO_ROOT_SS);
- be_visitor_root_ss root_ss_visitor (&ctx);
- BE_visit_root (root_ss_visitor, "server skeleton");
+ if (be_global->gen_server_skeleton ())
+ {
+ ctx.state (TAO_CodeGen::TAO_ROOT_SS);
+ be_visitor_root_ss root_ss_visitor (&ctx);
+ BE_visit_root (root_ss_visitor, "server skeleton");
+ }
// Inline and source files for tie classes are generated
// by the corresponding skeleton visitors.
diff --git a/TAO/TAO_IDL/be_include/be_global.h b/TAO/TAO_IDL/be_include/be_global.h
index 93a9ecda5a3..bafed1c1787 100644
--- a/TAO/TAO_IDL/be_include/be_global.h
+++ b/TAO/TAO_IDL/be_include/be_global.h
@@ -541,6 +541,14 @@ public:
void gen_server_inline (bool val);
// Accessors for the member gen_server_inline_.
+ bool gen_client_stub (void) const;
+ void gen_client_stub (bool val);
+ // Accessors for the member gen_client_stub_.
+
+ bool gen_server_skeleton (void) const;
+ void gen_server_skeleton (bool val);
+ // Accessors for the member gen_server_skeleton_.
+
bool gen_local_iface_anyops (void) const;
void gen_local_iface_anyops (bool val);
// Accessors for the member gen_local_iface_anyops_.
@@ -765,6 +773,14 @@ private:
// True by default, but a command line option can turn this off so
// that we don't generate a server inline file
+ bool gen_client_stub_;
+ // True by default, but a command line option can turn this off so
+ // that we don't generate a client stub file
+
+ bool gen_server_skeleton_;
+ // True by default, but a command line option can turn this off so
+ // that we don't generate a server skeleton file
+
bool gen_local_iface_anyops_;
// True by default, can be turned off by a command line option
// for regenerating internal ORB files.
diff --git a/TAO/docs/compiler.html b/TAO/docs/compiler.html
index f4eab1447a5..6662aa74baa 100644
--- a/TAO/docs/compiler.html
+++ b/TAO/docs/compiler.html
@@ -841,6 +841,14 @@ also receives other options that are specific to it.<p>
just suppresses it without looking at any possible contents;</td>
</tr>
+ <tr><a name="Scc">
+ <td><tt>-Scc</tt></td>
+
+ <td>Suppress generation of the client stub file.</td>
+ <td>This option doesn't check whether something is generated in the file. It
+ just suppresses it without looking at any possible contents;</td>
+ </tr>
+
<tr><a name="Ssi">
<td><tt>-Ssi</tt></td>
@@ -849,6 +857,14 @@ also receives other options that are specific to it.<p>
just suppresses it without looking at any possible contents;</td>
</tr>
+ <tr><a name="Ssc">
+ <td><tt>-Ssc</tt></td>
+
+ <td>Suppress generation of the server skeleton file.</td>
+ <td>This option doesn't check whether something is generated in the file. It
+ just suppresses it without looking at any possible contents;</td>
+ </tr>
+
<tr><a name="Sorb">
<td><tt>-Sorb</tt></td>