// file : build2/cc/module -*- C++ -*- // copyright : Copyright (c) 2014-2017 Code Synthesis Ltd // license : MIT; see accompanying LICENSE file #ifndef BUILD2_CC_MODULE #define BUILD2_CC_MODULE #include #include #include #include #include #include #include #include namespace build2 { namespace cc { struct compiler_info; class config_module: public module_base, public virtual config_data { public: explicit config_module (config_data&& d) : config_data (move (d)) {} void init (scope&, const location&, const variable_map&); // Translate the x.std value to the standard-selecting option if there // is any. // virtual string translate_std (const compiler_info&, scope&, const string&) const = 0; string tstd; private: dir_paths gcc_library_search_paths (process_path&, scope&) const; // gcc.cxx dir_paths msvc_library_search_paths (process_path&, scope&) const; // msvc.cxx }; class module: public module_base, protected virtual common, link, compile, install { public: explicit module (data&& d) : common (move (d)), link (move (d)), compile (move (d)), install (move (d), *this) {} void init (scope&, const location&, const variable_map&); }; } } #endif // BUILD2_CC_MODULE