- Select a name. May be mixed case with numerals and underscores (e.g., CheMPS2, libefp, PCMSolver, v2rdm_casscf). Shouldn’t start with a numeral. Needn’t start with “lib”, even if a library.
- GitHub repository name should be
addon_name.lower(). For example: CheMPS2, libefp, pcmsolver, v2rdm_casscf.
- CMake project name should be
addon_name. For example:
project(v2rdm_casscf). Namespacing in the directory structure used to detect the addon should have this name (e.g.,
- Restricted by the CMake project name, add-ons return CMake variables
and compile definitions of
USING_addon_name. For example:
- The CMake target(s) formed use the full add-on name as the namespace,
addon_name::lib_name_without_lib.lower(). For example:
- Following the CMake project name (though not restricted to it –
PSI4 managment could change the pattern), the user flag to enable
an add-on is
ENABLE_addon_name. Note that binary-only add-ons don’t go through this enabling process.
- Internally, the ExternalProject_Add and dummy libraries as well as any
tests/ and external/ subdirectories should all be lowercase,
- The conda package and internal to
PSI4 (that is, the ExternalProject_Add, dummy libraries, and any
tests/ and external/ subdirectories) should all be lowercase,
- Alternatively, you can do everything mentioned here lowercase and just have a different capitalization for an advertising name. After all, that’s what PSI4 does.
>>> lldb -- python stage/CMAKE_INSTALL_PREFIX/bin/psi4 ../tests/tu1-h2o-energy/input.dat -l stage/CMAKE_INSTALL_PREFIX/share/psi4/ >>> (lldb) run