# ICON Liskov Build System Integration - Make use of exisiting CMake infrastructure. Execute the `Preprocessor` within `icon4pygen`, meaning no new changes to CMake are required other than a new argument specifying which file to check for preprocessor directives, so the new signature of `add_stencil_gt4py` could be: ```cmake add_stencil_gt4py("atm_dyn_iconam" "mo_nh_diffusion" "mo_nh_diffusion_stencil_01" 4 128) ``` Arguments currently provided to `icon4pygen` arguments are the following: ``` Args: fencil: may be specified as <module>:<member>, where <module> is the dotted name of the containing module and <member> is the name of the fencil. block_size: refers to the number of threads per block to use in a cuda kernel. levels_per_thread: how many k-levels to process per thread. outpath: represents a path to the folder in which to write all generated code. ``` Additional argument provided: ``` fname_to_preprocess: path to file to preprocess ``` Icon4PyGen will then do the following: 1. Execute `Preprocessor` on the specified source file. 2. Generate the `Gridtools` code for the given stencil. 3. Generate the Fortran bindings code using `PyBindGen`.