if the ${${SOURCE_DIR}} doesn't exist and the PROJECT_NAME is not the same as the name of the repo. the files are cloned to the wrong directory and PROJECT_SOURCE_DIR contains the wrong directory.
The execute process line needs to be
execute_process(
COMMAND ${GIT_EXECUTABLE} clone ${PARGS_GIT_URL} --recursive ${${SOURCE_DIR}}
WORKING_DIRECTORY ${PARGS_DIRECTORY}
OUTPUT_VARIABLE git_output)
to capture the correct source directory