X-Git-Url: http://git.tdb.fi/?a=blobdiff_plain;f=source%2Fbuildinfo.h;h=1bba8195bc536014270ba8eff7664d31e63e7069;hb=8f8f10fe41bbb68866e8fb05f8cbab0b325dc7da;hp=e0929e7b1da9c8c9eec8bef0fd60e298697d8f55;hpb=de7ca0d3ce73bfa3f870c4257dbf71e621224876;p=builder.git diff --git a/source/buildinfo.h b/source/buildinfo.h index e0929e7..1bba819 100644 --- a/source/buildinfo.h +++ b/source/buildinfo.h @@ -4,7 +4,7 @@ #include #include #include -#include "misc.h" +#include /** Stores information about compiler command line parameters in a more abstract @@ -28,8 +28,13 @@ public: private: void incpath(const std::string &); void define(const std::string &, const std::string &); + void keep_symbol(const std::string &); + void libmode_for_lib(const std::string &, LibraryMode); void libpath(const std::string &); void library(const std::string &); + void local_incpath(const std::string &); + void standard(Msp::DataFile::Symbol, const std::string &); + void sysroot(const std::string &); }; enum UpdateLevel @@ -68,12 +73,19 @@ public: typedef std::map DefineMap; typedef std::list PathList; typedef std::list WordList; + typedef std::map LibModeMap; + typedef std::map StandardMap; + Tracked sysroot; DefineMap defines; PathList incpath; + PathList local_incpath; PathList libpath; WordList libs; Tracked libmode; + LibModeMap libmodes; + WordList keep_symbols; + StandardMap standards; Tracked threads; Tracked debug; Tracked optimize; @@ -83,6 +95,11 @@ public: BuildInfo(); + /** Returns the library mode for linking a particular library. If no mode + has been specified for that library, the the global library mode is + returned. */ + LibraryMode get_libmode_for(const std::string &) const; + /** Updates the BuildInfo from another one. Lists are concatenated, with the first occurrence of each item preserved. Scalars are overwritten.