This version actually pulls the path through the package to deliver it
to each stage on creation when passed through the command. This is
necessary due to the new StageComposite class that makes setting the
path directly on the stage impractical, it also takes the logic out of
package for the most part, which seems like an improvement.
Allow users to use spack to stage a, potentially complex, package into a
given path. This is nice for packages with multiple resources that must
be placed, for example LLVM with all sub-projects.
- ld -r doesn't work with RPATH on OS X.
- for GNU ld, the -r option only means 'relocatable',
and doesn't affect RPATH.
- This adds special handling to omit RPATHs for ld -r on OS X
- removed a lot of old logic that was only still needed for tests.
- Added better unit tests for dependency RPATH, -L, and -I args
- tests now check whether the compiler omits -I args in link mode.
- Consolidate this in one place so that we don't have to do it in every build.
- Will update further once better OS support is committed. Shoudl
really be an attribute of the forthcoming `Platform` class.
- Failed to catch all instances of modify_module when it was renamed
to setup_dependent_package.
- Refactored remaining modify_module calls.
- Also modified Python's setup_dependent_package slightly: only
creates empty site-packages directory for Python extensions now, not
for all dependents.
- Fixed in package.py
- Fixed wrong prototypes in packages that use it.
- Fixed build_environment to set module variables properly
- added hacky fix to ensure spec/package consistency in build processes.
- Need to think about defensive spec copy done by `Repo.get`. May be
time to think about an immutable spec implementation.
- Gave setup_environment and setup_dependent_environment more similar
signatures. They now allows editing the Spack env and the runtime
env for *this* package and dependents, respectively.
- modify_module renamed to setup_dependent_python_module for symmetry
with setup_dependent_environment and to avoid confusion with
environment modules.
- removed need for patching Package objects at runtime.
- adjust packages to reflect these changes.