aboutsummaryrefslogtreecommitdiff
path: root/build/cxx/link
diff options
context:
space:
mode:
Diffstat (limited to 'build/cxx/link')
-rw-r--r--build/cxx/link70
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