// file : mod/build-config.hxx -*- C++ -*- // license : MIT; see accompanying LICENSE file #ifndef MOD_BUILD_CONFIG_HXX #define MOD_BUILD_CONFIG_HXX #include #include #include #include #include namespace brep { // Return true if the specified build configuration is excluded by a package // based on its underlying build class set, build class expressions, and // build constraints, potentially extending the underlying set with the // special classes. Set the exclusion reason if requested. // bool exclude (const small_vector&, const vector&, const bbot::build_config&, const std::map& class_inheritance_map, string* reason = nullptr); // Convert dash-separated components (target, build configuration name, // machine name) or a pattern thereof into a path, replacing dashes with // slashes (directory separators), `**` with `*/**/*`, and appending the // trailing slash for a subsequent match using the path_match() // functionality (the idea here is for `linux**` to match `linux-gcc` which // is quite natural to expect). Throw invalid_path if the resulting path is // invalid. // // Note that the match_absent path match flag must be used for the above // `**` transformation to work. // path dash_components_to_path (const string&); } #endif // MOD_BUILD_CONFIG