ConfigRepository - lms-org/lms GitHub Wiki

Config repositories (also called config repos) are git repositories that reference LMS, libraries and modules as submodules and contain config files for the setup. Config repos are, once downloaded, a full-featured, compilable and runnable LMS setup.

There is a config repo draft called lms_config_repo.

Structure

  • LMS - the LMS core framework
  • external
    • modules - Folder containing all modules as git submodules
      • CMakeLists.txt
      • CMakeData.txt
    • services - Folder containing all services as git submodules
      • CMakeLists.txt
      • CMakeData.txt
    • libraries - Folder containing all libraries as git submodules
      • CMakeLists.txt
      • CMakeData.txt
  • configs - Folder for all config files
    • *.xml - XML config files
    • *.lconf - LCONF config files

external/modules/CMakeData.txt

This CMakeData.txt file declares which modules should be compiled and which not. By default all modules contained in the external/modules folder will be compiled. If the MODULES variable is set to a space separated list of modules then only those specified will be compiled. If the N_MODULES variable is set then all modules will be compiled except those specified. Run cmake again after any changes to this file.

external/libraries/CMakeData.txt

This CMakeData.txt files declares which libraries should be compiled, which not and which first before all others. There are three variables that decide about this:

  • LIBRARIES - Compile exactly those specified in this order
  • N_LIBRARIES - Compile everything without those specified (can be used in conjunction with COMPILE_AT_FIRST)
  • COMPILE_AT_FIRST - Compile those specified before every other library in this order