+ /** Tries to locate a library in a library path. The library name should be
+ the same as would be given to the linker with -l, i.e. without the "lib"
+ prefix or extension. Considers known targets as well as existing files. If
+ a matching target is not found but a file exists, a new SystemLibrary target
+ will be created and returned. */
+ Target *get_library(const std::string &, const StringList &, LibMode);
+
+ const Msp::FS::Path &get_cwd() const { return cwd; }
+ const Architecture &get_architecture(const std::string &) const;
+ const Architecture &get_current_arch() const { return *current_arch; }
+ const Architecture &get_native_arch() const { return *native_arch; }
+ const Msp::FS::Path &get_prefix() const { return prefix; }
+ const StringList &get_warnings() const { return warnings; }
+ void apply_profile_template(Config &, const std::string &) const;
+
+ /** Adds a target to both the target map and the new target queue. Called
+ from Target constructor. */
+ void add_target(Target *);
+
+ void problem(const std::string &, const std::string &);
+
+ static void usage(const char *, const char *, bool);
+
+private:
+ /** Determines the source directory of a package. Pkg-config is consulted
+ first, and if it fails, the package path is searched for matches. */