summaryrefslogtreecommitdiff
path: root/lib/spack/docs/build_systems
AgeCommit message (Collapse)AuthorFilesLines
2024-01-02Update copyright year to 2024 (#41919)Todd Gamblin24-24/+24
It was time to run `spack license update-copyright-year` again.
2023-12-22Fix a couple typos in the docs (#41822)Alec Scott1-1/+1
2023-11-30use double quotes where spack style finds errors (#41349)Christopher Christofi11-80/+80
2023-11-27intel-oneapi 2024.0.0: added new version to packages (#41135)Andrey Perestoronin1-7/+18
* oneapi 2024.0.0 release * oneapi v2 directory support and some cleanups * sycl abi change requires 2024 compilers for packages that use sycl --------- Co-authored-by: Robert Cohn <robert.s.cohn@intel.com>
2023-11-15docs: packages config on separate page, demote bootstrapping (#41085)Harmen Stoppels1-1/+1
2023-10-23Docs: Update spec variant checks plus python quotes and string formatting ↵Tamara Dahlgren8-160/+172
(#40643)
2023-10-01docs: Replace package list with packages.spack.io (#40251)Todd Gamblin1-2/+2
For a long time, the docs have generated a huge, static HTML package list. It has some disadvantages: * It's slow to load * It's slow to build * It's hard to search We now have a nice website that can tell us about Spack packages, and it's searchable so users can easily find the one or two packages out of 7400 that they're looking for. We should link to this instead of including a static package list page in the docs. - [x] Replace package list link with link to packages.spack.io - [x] Remove `package_list.html` generation from `conf.py`. - [x] Add a new section for "Links" to the docs. - [x] Remove docstring notes from contribution guide (we haven't generated RST for package docstrings for a while) - [x] Remove referencese to `package-list` from docs.
2023-09-07Docs/Packaging guide: Add BundlePackage (#39691)Tamara Dahlgren1-3/+26
* Docs/Packaging guide: Add BundlePackage * Adjusted version ordering note to reflect convention.
2023-08-09add info about devito and qe for intel env (#39357)Andrey Parfenov1-0/+2
Signed-off-by: Andrey Parfenov <andrey.parfenov@intel.com>
2023-08-04py-pyqt6: add new package (#32696)Adam J. Stewart1-17/+17
2023-07-07add info about spack env from spack-configs for oneAPI build tools (#38751)Andrey Parfenov1-0/+47
Signed-off-by: Andrey Parfenov <andrey.parfenov@intel.com>
2023-07-02SIPPackage: documentation fix (#38672)Adam J. Stewart1-1/+1
2023-03-22docs: mention cuda multi-arch capability (#36321)Leopold Talirz1-1/+4
2023-03-19Fix case spelling for Lmod and Tcl (#36215)Xavier Delaruelle3-4/+4
2023-02-20Fix broken links in docs (#35582)Adam J. Stewart2-4/+2
2023-01-18license year bump (#34921)Harmen Stoppels24-24/+24
* license bump year * fix black issues of modified files * mypy * fix 2021 -> 2023
2022-11-23Build System docs: consistent headers (#34047)Adam J. Stewart8-30/+30
2022-11-11docs: updates related to extensions (#33837)Harmen Stoppels2-9/+8
2022-10-26Allow for packages with multiple build-systems (#30738)Massimiliano Culpo17-413/+63
This commit extends the DSL that can be used in packages to allow declaring that a package uses different build-systems under different conditions. It requires each spec to have a `build_system` single valued variant. The variant can be used in many context to query, manipulate or select the build system associated with a concrete spec. The knowledge to build a package has been moved out of the PackageBase hierarchy, into a new Builder hierarchy. Customization of the default behavior for a given builder can be obtained by coding a new derived builder in package.py. The "run_after" and "run_before" decorators are now applied to methods on the builder. They can also incorporate a "when=" argument to specify that a method is run only when certain conditions apply. For packages that do not define their own builder, forwarding logic is added between the builder and package (methods not found in one will be retrieved from the other); this PR is expected to be fully backwards compatible with unmodified packages that use a single build system.
2022-10-18Docs: Spack info option updates (#33376)Tamara Dahlgren1-1/+1
2022-09-17Add skip_import to PythonPackage and use it in py-nilearn (#32664)Manuela Kuhn1-0/+13
* Add skip_import to PythonPackage and use it in py-nilearn * Fix dependencies
2022-08-23New package: py-griffe and new build backend: py-pdm-pep517 (#32335)Ryan Marcellino1-2/+14
* New package: py-griffe and new build backend: py-pdm-pep517 * add pdm to build backend docs
2022-08-09PythonPackage: add --config-settings support (#31823)Adam J. Stewart1-1/+49
2022-08-02Add meson Python build backend (#31809)Adam J. Stewart1-36/+51
2022-07-11py-hatchling: add new packages, document new build backend (#31512)Adam J. Stewart1-2/+31
* py-hatchling: add new package, document new build backend * Minor doc changes Co-authored-by: Tamara Dahlgren <35777542+tldahlgren@users.noreply.github.com> Co-authored-by: Tamara Dahlgren <35777542+tldahlgren@users.noreply.github.com>
2022-07-07Documentation: Add SourceforgePackage to the build systems docs (#31473)Tamara Dahlgren1-0/+55
2022-06-17Update Intel package descriptions (#31150)Robert Cohn2-4/+7
2022-05-23Documentation and new method for `CachedCMakePackage` build system (#22706)Greg Becker1-0/+123
Co-authored-by: Axel Huebl <axel.huebl@plasma.ninja>
2022-05-10Add a Lua build-system (#28854)Tom Scogland1-0/+105
Reworking lua to allow easier substitution of the base lua implementation. Also adding in a maintained version of luajit and re-factoring the entire stack to use a custom build-system to centralize functionality like environment variable management and luarocks installation. The `lua-lang` virtual is now versioned so that a package that requires Lua 5.1 semantics can get any lua, but one that requires 5.2 will only get upstream lua. The luaposix package requires lua-bit32, but only when built with a lua conforming to version 5.1. This adds the package, and the dependencies, but exposed a problem with luarocks dependency detection. Since we're installing each package in its own "tree" and there's no environment variable to list extra trees, spack now generates a luarocks config file that lists all the trees of all the dependencies, and references it by setting `LUAROCKS_CONFIG` in the build environment of every LuaPackage. This allows luarocks to find the spack installed dependencies correctly rather than trying (and failing) to download them. Co-authored-by: Adam J. Stewart <ajstewart426@gmail.com> Co-authored-by: Tom Scogland <tscogland@llnl.gov> Co-authored-by: Massimiliano Culpo <massimiliano.culpo@gmail.com>
2022-04-26docs: Fix ROCmPackage example syntax (#30168)Ken Raffenetti1-1/+1
2022-04-20PythonPackage docs: Spack now supports Windows (#30177)Adam J. Stewart1-2/+1
2022-04-04Add support for racket packages (#27564)Thomas Dickerson1-0/+46
- Add variants for various common build flags, including support for both versions of the Racket VM environment. - Prevent `-j` flags to `make`, which has been known to cause problems with Racket builds. - Prefer the minimal release to improve install times. Bells and whistles carry their own runtime dependencies and should be installed via `raco`. An enterprising user may even create a `RacketPackage` class to make spack aware of `raco` installed packages. - Match the official version numbering scheme.
2022-03-29cmake: use CMAKE_INSTALL_RPATH_USE_LINK_PATH (#29703)Harmen Stoppels1-30/+79
* cmake: use CMAKE_INSTALL_RPATH_USE_LINK_PATH Spack has a heuristic to add rpaths for packages it knows are required, but it's really a heuristic, and it does not work when the dependencies put their libraries in a different folder than `<prefix>/lib{64,}`. CMake patches binaries after install with the "install rpaths", which by default are provided by Spack and its heuristic through `CMAKE_INSTALL_RPATH`. CMake however knows better what libraries are effectively being linked to, and has an option to include those in the install rpath too, through `CMAKE_INSTALL_RPATH_USE_LINK_PATH`. These two CMake options are complementary, repeated rpaths seem to be filtered, and the "use link path" paths are appended to Spack's heuristic "install rpath". So, it seems like a good idea to enable "use link path" by default, so that: - `dlopen` by library name uses Spack's heuristic search paths - linked libraries in non-standard locations within a prefix get an rpath thanks to CMake. * docs
2022-03-27autotools doc: add missing right quote (#29734)百地 希留耶1-1/+1
2022-02-16docs: add section on concretizer configurationTodd Gamblin1-4/+4
* Document `concretizer.yaml`, `--reuse`, and `--fresh`.
2022-01-14Update copyright year to 2022Todd Gamblin21-21/+21
2022-01-14PythonPackage: install packages with pip (#27798)Adam J. Stewart1-502/+275
* Use pip to bootstrap pip * Bootstrap wheel from source * Update PythonPackage to install using pip * Update several packages * Add wheel as base class dep * Build phase no longer exists * Add py-poetry package, fix py-flit-core bootstrapping * Fix isort build * Clean up many more packages * Remove unused import * Fix unit tests * Don't directly run setup.py * Typo fix * Remove unused imports * Fix issues caught by CI * Remove custom setup.py file handling * Use PythonPackage for installing wheels * Remove custom phases in PythonPackages * Remove <phase>_args methods * Remove unused import * Fix various packages * Try to test Python packages directly in CI * Actually run the pipeline * Fix more packages * Fix mappings, fix packages * Fix dep version * Work around bug in concretizer * Various concretization fixes * Fix gitlab yaml, packages * Fix typo in gitlab yaml * Skip more packages that fail to concretize * Fix? jupyter ecosystem concretization issues * Solve Jupyter concretization issues * Prevent duplicate entries in PYTHONPATH * Skip fenics-dolfinx * Build fewer Python packages * Fix missing npm dep * Specify image * More package fixes * Add backends for every from-source package * Fix version arg * Remove GitLab CI stuff, add py-installer package * Remove test deps, re-add install_options * Function declaration syntax fix * More build fixes * Update spack create template * Update PythonPackage documentation * Fix documentation build * Fix unit tests * Remove pip flag added only in newer pip * flux: add explicit dependency on jsonschema * Update packages that have been added since this was branched off of develop * Move Python 2 deprecation to a separate PR * py-neurolab: add build dep on py-setuptools * Use wheels for pip/wheel * Allow use of pre-installed pip for external Python * pip -> python -m pip * Use python -m pip for all packages * Fix py-wrapt * Add both platlib and purelib to PYTHONPATH * py-pyyaml: setuptools is needed for all versions * py-pyyaml: link flags aren't needed * Appease spack audit packages * Some build backend is required for all versions, distutils -> setuptools * Correctly handle different setup.py filename * Use wheels for py-tomli to avoid circular dep on py-flit-core * Fix busco installation procedure * Clarify things in spack create template * Test other Python build backends * Undo changes to busco * Various fixes * Don't test other backends
2021-11-22Make _enable_or_disable(...) return an empty array for conditional variants ↵Harmen Stoppels1-0/+18
whose condition is not met (#27504)
2021-11-19define_from_variant: return an empty string for non-existing variants (#27503)Harmen Stoppels1-0/+14
This permits to use conditional variants without a lot of boilerplate.
2021-11-12Add PyPI docs and warning in auto-generated package (#27404)Seth R. Johnson1-3/+10
* docs: Add cross-references for pypi setup * create: add warning for missing pypi
2021-10-03Remove .99 from version ranges (#26422)Harmen Stoppels1-2/+2
In most cases, .99 can be omitted thanks to #26402 .
2021-09-27Use gnuconfig package for config file replacement (#26035)Harmen Stoppels1-0/+51
* Use gnuconfig package for config file replacement Currently the autotools build system tries to pick up config.sub and config.guess files from the system (in /usr/share) on arm and power. This is introduces an implicit system dependency which we can avoid by distributing config.guess and config.sub files in a separate package, such as the new `gnuconfig` package which is very lightweight/text only (unlike automake where we previously pulled these files from as a backup). This PR adds `gnuconfig` as an unconditional build dependency for arm and power archs. In case the user needs a system version of config.sub and config.guess, they are free to mark `gnuconfig` as an external package with the prefix pointing to the directory containing the config files: ```yaml gnuconfig: externals: - spec: gnuconfig@master prefix: /tmp/tmp.ooBlkyAKdw/lol buildable: false ``` Apart from that, this PR gives some better instructions for users when replacing config files goes wrong. * Mock needs this package too now, because autotools adds a depends_on * Add documentation * Make patch_config_files a prop, fix the docs, add integrations tests * Make macOS happy
2021-09-25autotools doc PR: No depends_on('m4') with depends_on('autoconf') (#26101)bernhardkaindl1-8/+32
* autotoolspackage.rst: No depends_on('m4') with depends_on('autoconf') - Remove `m4` from the example depends_on() lines for the autoreconf phase. - Change the branch used as example from develop to master as it is far more common in the packages of spack's builtin repo. - Fix the wrong info that libtoolize and aclocal are run explicitly in the autoreconf phase by default. autoreconf calls these internally as needed, thus autotools.py also does not call them directly. - Add that autoreconf() also adds -I<aclocal-prefix>/share/aclocal. - Add an example how to set autoreconf_extra_args. - Add an example of a custom autoreconf phase for running autogen.sh. Co-authored-by: Harmen Stoppels <harmenstoppels@gmail.com>
2021-09-21Rename 'variant_name' to 'variant' and document it in autotools build system ↵Harmen Stoppels1-1/+22
(#26064)
2021-08-21Document how to handle changing build systems (#25174)Adam J. Stewart1-0/+350
2021-07-16API Docs: fix broken reference targetsAdam J. Stewart1-2/+2
2021-05-25Fix cross references in inteloneapipackage doc (#23744)Robert Cohn1-7/+7
Co-authored-by: Tamara Dahlgren <35777542+tldahlgren@users.noreply.github.com>
2021-05-25Fix hyperlink formatting in docs (#23846)HDF-EOS Tools Information Center1-1/+1
2021-05-22Fix makefile filter suggestions (#23856)Seth R. Johnson1-2/+4
Bash has a builtin `fc` that will override the compiler if you use "fc", so it's better to use the full spack-supplied compiler path. Additionally, the filter regex in the docs was wrong: it replaced the entire assignment operation with the RHS.
2021-05-11Documentation: Refinement of "Checking an installation" (#22210)Tamara Dahlgren2-16/+31
There have been a lot of questions and some confusion recently surrounding Spack installation test capabilities so this PR is intended to clean up and refine the documentation for "Checking an installation". It aims to better distinguish between checks that are performed during an installation (i.e., build-time tests) and those that can be done days and weeks after the software has been installed (i.e., install (or smoke) tests).