# Chapter 7: Structuring Projects

- [1. Code reuse with functions and macros](recipe-01/README.md)
- [2. Splitting CMake sources into modules](recipe-02/README.md)
- [3. Writing a function to test and set compiler flags](recipe-03/README.md)
- [4. Defining a function or macro with named arguments](recipe-04/README.md)
- [5. Redefining functions and macros](recipe-05/README.md)
- [6. Deprecating functions, macros, and variables](recipe-06/README.md)
- [7. Limiting scope with `add_subdirectory`](recipe-07/README.md)
- [8. Avoiding global variables using `target_sources`](recipe-08/README.md)
- [9. Organizing Fortran projects](recipe-09/README.md)
