diff options
Diffstat (limited to 'TAO')
-rw-r--r-- | TAO/ChangeLog | 12 | ||||
-rw-r--r-- | TAO/TAO_IDL/be/be_global.cpp | 44 | ||||
-rw-r--r-- | TAO/TAO_IDL/be/be_produce.cpp | 28 | ||||
-rw-r--r-- | TAO/TAO_IDL/be_include/be_global.h | 16 | ||||
-rw-r--r-- | TAO/docs/compiler.html | 16 |
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> |