#define FILETARGET_H_
#include <msp/fs/path.h>
+#include "libbuilder_api.h"
#include "target.h"
/**
An intermediate base class for targets that represent files. Almost all target
classes are derived from this.
*/
-class FileTarget: public Target
+class LIBBUILDER_API FileTarget: public Target
{
protected:
Msp::FS::Path path;
Msp::Time::TimeStamp mtime;
unsigned size = 0;
Msp::FS::Path install_location;
- std::string install_filename;
bool nested_build_sig = false;
bool arch_in_build_sig = false;
- FileTarget(Builder &b, const Msp::FS::Path &a): FileTarget(b, 0, a) { }
- FileTarget(Builder &b, const SourcePackage &p, const Msp::FS::Path &a): FileTarget(b, &p, a) { }
+ FileTarget(Builder &b, const Msp::FS::Path &a);
+ FileTarget(Builder &b, const SourcePackage &p, const Msp::FS::Path &a);
private:
FileTarget(Builder &, const SourcePackage *, const Msp::FS::Path &);
void stat();
bool is_installable() const { return !install_location.empty(); }
const Msp::FS::Path &get_install_location() const { return install_location; }
- const std::string &get_install_filename() const { return install_filename; }
/// Changes the mtime of the target to the current time.
void touch();
+ FileTarget *get_real_target() override { return this; }
+
protected:
+ Target *resolve_transitive_dependency(Target &, Target &) const override;
+
void check_rebuild() override;
virtual std::string create_build_signature() const;