Skip to content

Add ability to generate a pdf of the community policies #18

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
wants to merge 12 commits into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
9 changes: 0 additions & 9 deletions installation_policies/1.md

This file was deleted.

7 changes: 0 additions & 7 deletions installation_policies/10.md

This file was deleted.

2 changes: 0 additions & 2 deletions installation_policies/11.md

This file was deleted.

2 changes: 0 additions & 2 deletions installation_policies/12.md

This file was deleted.

2 changes: 0 additions & 2 deletions installation_policies/13.md

This file was deleted.

5 changes: 0 additions & 5 deletions installation_policies/2.md

This file was deleted.

28 changes: 0 additions & 28 deletions installation_policies/3.md

This file was deleted.

5 changes: 0 additions & 5 deletions installation_policies/4.md

This file was deleted.

5 changes: 0 additions & 5 deletions installation_policies/5.md

This file was deleted.

5 changes: 0 additions & 5 deletions installation_policies/6.md

This file was deleted.

6 changes: 0 additions & 6 deletions installation_policies/7.md

This file was deleted.

6 changes: 0 additions & 6 deletions installation_policies/8.md

This file was deleted.

7 changes: 0 additions & 7 deletions installation_policies/9.md

This file was deleted.

13 changes: 13 additions & 0 deletions installation_policies/I1.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
# I1

Implement the default behavior described below. Each package can decide whether
XSDK mode is the default mode.^4^

1. `--dis/enable-xsdk-defaults`
2. `USE_XSDK_DEFAULTS=[YES,NO]`

----

^4^ For packages like Trilinos that need to maintain backward compatibility
over consecutive releases,
`USE_XSDK_DEFAULTS` may be `FALSE` by default.
14 changes: 14 additions & 0 deletions installation_policies/I10.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
# I10

Determine other package libraries and include directories.

1. `--with-<package> --with-<package>-lib="linkable list of libraries”
--with-<package>-include=”list of include directories”`
2. `TPL_ENABLE_<package>=[YES,NO]`

Packages must provide a way for a user to specify a dependent package to use.
Packages are free to locate a package on the file system if none is
specifically provided by the user. If the user does provide one, however, it
must be used; if it is not able to be used, then an error must be generated. A
package cannot silently substitute a different installation.

4 changes: 4 additions & 0 deletions installation_policies/I11.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
# I11

In the XSDK mode, XSDK projects should not rely on users providing any library
path information in environmental variables such as `LD_LIBRARY_PATH`.
5 changes: 5 additions & 0 deletions installation_policies/I12.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
# I12

After packages are configured, they can be compiled, installed and "smoke"
tested with the following commands: `make ;
[sudo] make install ; make test_install`.
6 changes: 6 additions & 0 deletions installation_policies/I13.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
# I13

After an install the package should provide a machine-readable output to show
provenance, that is, what compilers were used and what libraries were linked
with, as well as other build configurationinformation, so that users with
problems can send the information directly to developers.
8 changes: 8 additions & 0 deletions installation_policies/I2.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
# I2

Identify location to install package. Multiple "versions" of packages, such as
debug and release, can be installed by using different prefix directories.

1. `--prefix=directory`
2. `CMAKE_INSTALL_PREFIX=directory`

40 changes: 40 additions & 0 deletions installation_policies/I3.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,40 @@
# I3

Select compilers^5^ and compiler flags.

1. If the compilers (and or flags) are explicitly set on input, use those:

1. `CC=<cc>`, `CXX=<cxx>`, `FC=<fc>`, `CPP`, `FFLAGS`, `FCFLAGS`,
`CFLAGS`, `CXXFLAGS`, `CPPFLAGS`, `LDFLAGS`

2. `CMAKE_C_COMPILER=<cc>`, `CMAKE_CXX_COMPILER=<cxx>`,
`CMAKE_Fortran_COMPILER=<fc>`, `CMAKE_C_FLAGS="<flag1> <flag2> ...”`,
`CMAKE_CXX_FLAGS=”...”`, `CMAKE_Fortran_FLAGS=”...”`

2. If the compilers and/or flags are not explicitly set on input but are
set in the environment variables
`FC`, `CC`, `CXX`, `CPP`^6^, `FFLAGS`, `FCFLAGS`, `CFLAGS`, `CXXFLAGS`,
`CPPFLAGS`,^7^ `LDFLAGS`, then the compilers and flags must be set to these.
If both `FFLAGS` and `FCFLAGS` are set, then they need to be the same or it
is an error.

3. If the compilers and/or compiler flags are not explicitly passed in or
defined in the environment variables listed above, then the package is free
to try to find compilers on the system and set the compiler flags consistent
with the other settings defined below (e.g., shared libraries vs. static libraries,
debug vs. non-debug).^8^

-----

^5^ Packages must support using the MPI compiler wrappers for these arguments.

^6^ The environment variable CPP is not supported by raw CMake.

^7^ The environment variable CPPFLAGS is not supported by raw CMake.

^8^ All CMake projects should use the same built-in CMake algorithm to find the
default compilers, so even when no
explicit compilers or flags are set they should use the same compilers and
flags. Also, raw CMake projects will append
compiler flags based on the build type. See "Selecting compiler and linker
options".
9 changes: 9 additions & 0 deletions installation_policies/I4.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
# I4

Create libraries with debugging information and possible additional error
checking (default is debug in XSDK mode).

1. `--dis/enable-debug`

2. `CMAKE_BUILD_TYPE=[Debug,Release]`

9 changes: 9 additions & 0 deletions installation_policies/I5.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
# I5

Select option used for indicating whether to build shared libraries (default is
shared in XSDK mode).

1. `--dis/enable-shared (configure)`

2. `BUILD_SHARED_LIBS=[YES,NO]`

8 changes: 8 additions & 0 deletions installation_policies/I6.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
# I6

Build interface for a particular additional language.

1. `--dis/enable-<language>`

2. `XSDK_ENABLE_<language>=[YES,NO]`

10 changes: 10 additions & 0 deletions installation_policies/I7.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
# I7

Determine precision for packages that build only for one precision (default is
double). Packages that handle all precisions automatically are free to ignore
this option.

1. `--with-precision=[single,double,quad]`

2. `XSDK_PRECISION=[SINGLE,DOUBLE,QUAD]`

10 changes: 10 additions & 0 deletions installation_policies/I8.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
# I8

Determine index size for packages that build only for one index size (default
is 32). Packages that handle all index sizes automatically are free to ignore
this option.

1. `--with-index-size=[32,64]`

2. `XSDK_INDEX_SIZE=[32,64]`

13 changes: 13 additions & 0 deletions installation_policies/I9.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
# I9

Set location of BLAS and LAPACK libraries (default is to locate one on the
system automatically).

1. `--with-blas-lib="linkable list of libraries”
--with-lapack-lib=”linkable list of libraries”` -- it is fine to use
-L and -l flags in the lists

2. `TPL_BLAS_LIBRARIES="linkable list of libraries”`,
`TPL_LAPACK_LIBRARIES=”linkable list of libraries”` -- should not use
-L or -l flags in the lists

Loading