Explain the usage of `add_subdirectory` and useful variables that help navigating the source and binary directories.