(name, sources, requirements=[], default_build=[], usage_requirements=[])
| 323 | @bjam_signature((["name"], ["sources", "*"], ["requirements", "*"], |
| 324 | ["default_build", "*"], ["usage_requirements", "*"])) |
| 325 | def install(name, sources, requirements=[], default_build=[], usage_requirements=[]): |
| 326 | |
| 327 | requirements = requirements[:] |
| 328 | # Unless the user has explicitly asked us to hardcode dll paths, add |
| 329 | # <hardcode-dll-paths>false in requirements, to override default value. |
| 330 | if not '<hardcode-dll-paths>true' in requirements: |
| 331 | requirements.append('<hardcode-dll-paths>false') |
| 332 | |
| 333 | if any(r.startswith('<tag>') for r in requirements): |
| 334 | get_manager().errors()("The <tag> property is not allowed for the 'install' rule") |
| 335 | |
| 336 | from b2.manager import get_manager |
| 337 | t = get_manager().targets() |
| 338 | |
| 339 | project = get_manager().projects().current() |
| 340 | |
| 341 | return t.main_target_alternative( |
| 342 | InstallTargetClass(name, project, |
| 343 | t.main_target_sources(sources, name), |
| 344 | t.main_target_requirements(requirements, project), |
| 345 | t.main_target_default_build(default_build, project), |
| 346 | t.main_target_usage_requirements(usage_requirements, project))) |
| 347 | |
| 348 | get_manager().projects().add_rule("install", install) |
| 349 | get_manager().projects().add_rule("stage", install) |
nothing calls this directly
no test coverage detected