diff options
Diffstat (limited to 'build/cxx/link')
-rw-r--r-- | build/cxx/link | 70 |
1 files changed, 0 insertions, 70 deletions
diff --git a/build/cxx/link b/build/cxx/link deleted file mode 100644 index 5a5aafa..0000000 --- a/build/cxx/link +++ /dev/null @@ -1,70 +0,0 @@ -// file : build/cxx/link -*- C++ -*- -// copyright : Copyright (c) 2014-2015 Code Synthesis Ltd -// license : MIT; see accompanying LICENSE file - -#ifndef BUILD_CXX_LINK -#define BUILD_CXX_LINK - -#include <vector> - -#include <butl/optional> - -#include <build/types> -#include <build/rule> - -#include <build/bin/target> - -namespace build -{ - namespace cxx - { - class link: public rule - { - public: - virtual match_result - match (action, target&, const std::string& hint) const; - - virtual recipe - apply (action, target&, const match_result&) const; - - static target_state - perform_update (action, target&); - - static link instance; - - public: - enum class type {e, a, so}; - enum class order {a, so, a_so, so_a}; - - static type - link_type (target& t) - { - return t.is_a<bin::exe> () - ? type::e - : (t.is_a<bin::liba> () ? type::a : type::so); - } - - static order - link_order (target&); - - // Determine the library member (liba or libso) to link. - // - static target& - link_member (bin::lib&, order); - - private: - friend class compile; - - using search_paths = std::vector<dir_path>; - using search_paths_cache = butl::optional<search_paths>; - - static target* - search_library (search_paths_cache&, prerequisite&); - - static search_paths - extract_library_paths (scope&); - }; - } -} - -#endif // BUILD_CXX_LINK |