Differences between revisions 1 and 3 (spanning 2 versions)
Revision 1 as of 2016-02-22 08:19:06
Size: 868
Comment:
Revision 3 as of 2023-10-10 05:27:31
Size: 0
Comment: moved content to CMake
Deletions are marked like this. Additions are marked like this.
Line 1: Line 1:
= How to add new files to the planner =

New source code files can be added to the planner by adding them to {{{src/search/DownwardFiles.cmake}}}.

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.

For details of how to define CMake plugins, see the documentation in {{{src/search/DownwardFiles.cmake}}}.