// 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 #include #include #include 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; private: friend class compile; using search_paths = std::vector; using search_paths_cache = butl::optional; static target* search_library (search_paths_cache&, prerequisite&); static search_paths extract_library_paths (scope&); }; } } #endif // BUILD_CXX_LINK