From 83de480a8bab105dac641f31bf2a9e6adda02fcb Mon Sep 17 00:00:00 2001 From: Karen Arutyunov Date: Fri, 18 Feb 2022 11:56:41 +0300 Subject: Add --export-symbol option --- cli/cli/bootstrap/cli/options.cxx | 19 +++++++++++++++++++ cli/cli/bootstrap/cli/options.hxx | 17 +++++++++++++++++ cli/cli/bootstrap/cli/options.ixx | 30 ++++++++++++++++++++++++++++++ 3 files changed, 66 insertions(+) (limited to 'cli/cli/bootstrap/cli') diff --git a/cli/cli/bootstrap/cli/options.cxx b/cli/cli/bootstrap/cli/options.cxx index e66ae63..5ed58b4 100644 --- a/cli/cli/bootstrap/cli/options.cxx +++ b/cli/cli/bootstrap/cli/options.cxx @@ -702,6 +702,8 @@ options () cli_namespace_specified_ (false), ostream_type_ ("::std::ostream"), ostream_type_specified_ (false), + export_symbol_ (), + export_symbol_specified_ (false), generate_cxx_ (), generate_man_ (), generate_html_ (), @@ -844,6 +846,8 @@ options (int& argc, cli_namespace_specified_ (false), ostream_type_ ("::std::ostream"), ostream_type_specified_ (false), + export_symbol_ (), + export_symbol_specified_ (false), generate_cxx_ (), generate_man_ (), generate_html_ (), @@ -989,6 +993,8 @@ options (int start, cli_namespace_specified_ (false), ostream_type_ ("::std::ostream"), ostream_type_specified_ (false), + export_symbol_ (), + export_symbol_specified_ (false), generate_cxx_ (), generate_man_ (), generate_html_ (), @@ -1134,6 +1140,8 @@ options (int& argc, cli_namespace_specified_ (false), ostream_type_ ("::std::ostream"), ostream_type_specified_ (false), + export_symbol_ (), + export_symbol_specified_ (false), generate_cxx_ (), generate_man_ (), generate_html_ (), @@ -1281,6 +1289,8 @@ options (int start, cli_namespace_specified_ (false), ostream_type_ ("::std::ostream"), ostream_type_specified_ (false), + export_symbol_ (), + export_symbol_specified_ (false), generate_cxx_ (), generate_man_ (), generate_html_ (), @@ -1424,6 +1434,8 @@ options (::cli::scanner& s, cli_namespace_specified_ (false), ostream_type_ ("::std::ostream"), ostream_type_specified_ (false), + export_symbol_ (), + export_symbol_specified_ (false), generate_cxx_ (), generate_man_ (), generate_html_ (), @@ -1590,6 +1602,10 @@ print_usage (::std::ostream& os, ::cli::usage_para p) << " std::ostream that should be used to print usage" << ::std::endl << " and exception information." << ::std::endl; + os << "--export-symbol Insert in places where DLL export/import" << ::std::endl + << " control statements" << ::std::endl + << " (__declspec(dllexport/dllimport)) are necessary." << ::std::endl; + os << "--generate-cxx Generate C++ code." << ::std::endl; os << "--generate-man Generate documentation in the man page format." << ::std::endl; @@ -1843,6 +1859,9 @@ struct _cli_options_map_init _cli_options_map_["--ostream-type"] = &::cli::thunk< options, std::string, &options::ostream_type_, &options::ostream_type_specified_ >; + _cli_options_map_["--export-symbol"] = + &::cli::thunk< options, std::string, &options::export_symbol_, + &options::export_symbol_specified_ >; _cli_options_map_["--generate-cxx"] = &::cli::thunk< options, bool, &options::generate_cxx_ >; _cli_options_map_["--generate-man"] = diff --git a/cli/cli/bootstrap/cli/options.hxx b/cli/cli/bootstrap/cli/options.hxx index 3ae86c6..08180f3 100644 --- a/cli/cli/bootstrap/cli/options.hxx +++ b/cli/cli/bootstrap/cli/options.hxx @@ -673,6 +673,21 @@ class options void ostream_type_specified (bool); + const std::string& + export_symbol () const; + + std::string& + export_symbol (); + + void + export_symbol (const std::string&); + + bool + export_symbol_specified () const; + + void + export_symbol_specified (bool); + const bool& generate_cxx () const; @@ -1562,6 +1577,8 @@ class options bool cli_namespace_specified_; std::string ostream_type_; bool ostream_type_specified_; + std::string export_symbol_; + bool export_symbol_specified_; bool generate_cxx_; bool generate_man_; bool generate_html_; diff --git a/cli/cli/bootstrap/cli/options.ixx b/cli/cli/bootstrap/cli/options.ixx index 8c22d51..e3fd397 100644 --- a/cli/cli/bootstrap/cli/options.ixx +++ b/cli/cli/bootstrap/cli/options.ixx @@ -672,6 +672,36 @@ ostream_type_specified (bool x) this->ostream_type_specified_ = x; } +inline const std::string& options:: +export_symbol () const +{ + return this->export_symbol_; +} + +inline std::string& options:: +export_symbol () +{ + return this->export_symbol_; +} + +inline void options:: +export_symbol (const std::string& x) +{ + this->export_symbol_ = x; +} + +inline bool options:: +export_symbol_specified () const +{ + return this->export_symbol_specified_; +} + +inline void options:: +export_symbol_specified (bool x) +{ + this->export_symbol_specified_ = x; +} + inline const bool& options:: generate_cxx () const { -- cgit v1.1