]> git.tdb.fi Git - builder.git/blobdiff - source/sharedlibrary.h
Use default member initializers and constructor delegation
[builder.git] / source / sharedlibrary.h
index 5331ef58290d8995b7cabdc5b5fadd0849cc7e9e..564b2102004d714da37d3042dd682cf37e488b95 100644 (file)
@@ -3,28 +3,37 @@
 
 #include "binary.h"
 
+class ImportLibrary;
+
 /**
 Represents a shared library.  It has two special properties: libname and
 soname.  Libname is the name used by the linker.  Soname is the canonical
 filename of the library, including version number.  If the owning package has
 no version, soname will be empty.
+
+A SharedLibrary can also store a pointer to the associated ImportLibrary, for
+platforms that need one.
 */
 class SharedLibrary: public Binary
 {
 private:
        std::string libname;
        std::string soname;
+       ImportLibrary *import_lib = 0;
 
 public:
        SharedLibrary(Builder &, const Msp::FS::Path &);
-       SharedLibrary(Builder &, const Component &, const std::list<ObjectFile *> &);
+       SharedLibrary(Builder &, const Component &, const std::vector<ObjectFile *> &);
 private:
        static std::string generate_filename(const Component &);
 
 public:
-       virtual const char *get_type() const { return "SharedLibrary"; }
+       const char *get_type() const override { return "SharedLibrary"; }
        const std::string &get_libname() const { return libname; }
        const std::string &get_soname() const { return soname; }
+
+       void set_import_library(ImportLibrary *);
+       ImportLibrary *get_import_library() const { return import_lib; }
 };
 
 #endif