function(add_subproject name) if(ARGC GREATER 1) set(package_name ${ARGV1}) else() set(package_name ${name}) endif() if(TARGET ${name}) message("Subproject ${name} already included, skipping") else() find_package(${package_name} QUIET) string(TOUPPER ${package_name} upper) if(NOT SOURCE_${upper} AND ${upper}_FOUND) message("Found ${package_name} on system") else() message("Adding ${name} as subdirectory") add_subdirectory(${name} EXCLUDE_FROM_ALL) endif() endif() endfunction()