diff options
author | Karen Arutyunov <karen@codesynthesis.com> | 2017-05-01 18:24:31 +0300 |
---|---|---|
committer | Karen Arutyunov <karen@codesynthesis.com> | 2017-05-01 19:30:26 +0300 |
commit | 70317569c6dcd9809ed4a8c425777e653ec6ca08 (patch) | |
tree | 07a538b296933e9e2a1f81088f8fcc8da3f749ad /build2/cc/link | |
parent | cbec9ea8841c8a58b2d50bb628b28aea7a6fe179 (diff) |
Add hxx extension for headers
Diffstat (limited to 'build2/cc/link')
-rw-r--r-- | build2/cc/link | 130 |
1 files changed, 0 insertions, 130 deletions
diff --git a/build2/cc/link b/build2/cc/link deleted file mode 100644 index 0dace7c..0000000 --- a/build2/cc/link +++ /dev/null @@ -1,130 +0,0 @@ -// file : build2/cc/link -*- C++ -*- -// copyright : Copyright (c) 2014-2017 Code Synthesis Ltd -// license : MIT; see accompanying LICENSE file - -#ifndef BUILD2_CC_LINK -#define BUILD2_CC_LINK - -#include <set> - -#include <build2/types> -#include <build2/utility> - -#include <build2/rule> - -#include <build2/cc/types> -#include <build2/cc/common> - -namespace build2 -{ - namespace cc - { - class link: public rule, virtual common - { - public: - link (data&&); - - virtual match_result - match (action, target&, const string&) const override; - - virtual recipe - apply (action, target&) const override; - - target_state - perform_update (action, const target&) const; - - target_state - perform_clean (action, const target&) const; - - private: - friend class install; - - // Shared library paths. - // - struct libs_paths - { - // If any (except real) is empty, then it is the same as the next - // one. Except for intermediate, for which empty indicates that it is - // not used. - // - // The libs{} path is always the real path. On Windows the link path - // is the import library. - // - const path link; // What we link: libfoo.so - const path soname; // SONAME: libfoo-1.so, libfoo.so.1 - const path interm; // Intermediate: libfoo.so.1.2 - const path& real; // Real: libfoo.so.1.2.3 - - inline const path& - effect_link () const {return link.empty () ? effect_soname () : link;} - - inline const path& - effect_soname () const {return soname.empty () ? real : soname;} - - // Cleanup pattern used to remove previous versions. If empty, no - // cleanup is performed. The above (current) names are automatically - // filtered out. - // - const path clean; - }; - - libs_paths - derive_libs_paths (file&) const; - - // Library handling. - // - void - append_libraries (strings&, - const file&, bool, - const scope&, action, lorder) const; - - void - hash_libraries (sha256&, - const file&, bool, - const scope&, action, lorder) const; - - void - rpath_libraries (strings&, - const target&, - const scope&, action, lorder, - bool) const; - - // Windows rpath emulation (windows-rpath.cxx). - // - struct windows_dll - { - const string& dll; - const string* pdb; // NULL if none. - string pdb_storage; - - bool operator< (const windows_dll& y) const {return dll < y.dll;} - }; - - using windows_dlls = std::set<windows_dll>; - - timestamp - windows_rpath_timestamp (const file&, - const scope&, - action, lorder) const; - - windows_dlls - windows_rpath_dlls (const file&, const scope&, action, lorder) const; - - void - windows_rpath_assembly (const file&, const scope&, action, lorder, - const string&, - timestamp, - bool) const; - - // Windows-specific (windows-manifest.cxx). - // - pair<path, bool> - windows_manifest (const file&, bool rpath_assembly) const; - - private: - const string rule_id; - }; - } -} - -#endif // BUILD2_CC_LINK |