⇤ ← Revision 1 as of 2016-02-22 08:19:06
868
Comment:
|
718
|
Deletions are marked like this. | Additions are marked like this. |
Line 3: | Line 3: |
New source code files can be added to the planner by adding them to {{{src/search/DownwardFiles.cmake}}}. | New source code files can be added to the planner by adding them to {{{src/search/CMakeLists.txt}}}. |
Line 5: | Line 5: |
We group our files into (CMake) "plugins" (not to be confused with the {{{Plugin}}} class in the search code). A CMake plugin is a set of source code files that belong together and that can be enabled/disabled together in a [[ObtainingAndRunningFastDownward#Manual_Builds|manual build]]. Plugins can have dependencies on other plugins. This dependency graph is used to enable all plugins needed for a manual build. For example, if a manual build only enables the plugin {{{POTENTIALS}}}, the plugin {{{LP_SOLVER}}} will be compiled as well because the code for potential heuristics requires an LP solver. | We group our files into CMake libraries that can be enabled/disabled in a [[ObtainingAndRunningFastDownward#Manual_Builds|manual build]]. Libraries can have dependencies on other libraries. This dependency graph is used to enable all libraries needed for a manual build. For example, if a manual build only enables the library {{{potentials}}}, the library {{{lp_solver}}} will be compiled as well because the code for potential heuristics requires an LP solver. |
Line 7: | Line 7: |
For details of how to define CMake plugins, see the documentation in {{{src/search/DownwardFiles.cmake}}}. | For details of how to define CMake libraries, see the documentation in {{{src/search/CMakeLists.txt}}}. |
How to add new files to the planner
New source code files can be added to the planner by adding them to src/search/CMakeLists.txt.
We group our files into CMake libraries that can be enabled/disabled in a manual build. Libraries can have dependencies on other libraries. This dependency graph is used to enable all libraries needed for a manual build. For example, if a manual build only enables the library potentials, the library lp_solver will be compiled as well because the code for potential heuristics requires an LP solver.
For details of how to define CMake libraries, see the documentation in src/search/CMakeLists.txt.