]> git.tdb.fi Git - builder.git/blobdiff - source/lib/importlibrary.cpp
Rearrange sources into subdirectories
[builder.git] / source / lib / importlibrary.cpp
diff --git a/source/lib/importlibrary.cpp b/source/lib/importlibrary.cpp
new file mode 100644 (file)
index 0000000..435fb30
--- /dev/null
@@ -0,0 +1,35 @@
+#include <msp/strings/format.h>
+#include "architecture.h"
+#include "builder.h"
+#include "component.h"
+#include "exportdefinitions.h"
+#include "importlibrary.h"
+#include "sharedlibrary.h"
+#include "sourcepackage.h"
+
+using namespace std;
+using namespace Msp;
+
+ImportLibrary::ImportLibrary(Builder &b, const Component &c, SharedLibrary &sl, ExportDefinitions &exp):
+       FileTarget(b, c.get_package(), c.get_package().get_output_directory()/generate_filename(c, sl)),
+       shared_lib(&sl)
+{
+       component = &c;
+       add_dependency(exp);
+       shared_lib->set_import_library(this);
+
+       install_location = "lib";
+
+       const string &version = component->get_package().get_interface_version();
+       if(!version.empty())
+       {
+               const Architecture &arch = builder.get_current_arch();
+               install_filename = arch.create_filename<ImportLibrary>(format("%s-%s", sl.get_libname(), version));
+       }
+}
+
+string ImportLibrary::generate_filename(const Component &comp, const SharedLibrary &sl)
+{
+       const Architecture &arch = comp.get_package().get_builder().get_current_arch();
+       return arch.create_filename<ImportLibrary>(sl.get_libname());
+}