with some try, I've created a new branch here: https://github.com/comicfans/CMake/tree/upstream3 , I've rebase @packadal 's work onto cmake master branch , also contains @doodlydroll 's fix for linux, and some of my work. there 's also upstream3_disable_multiconfig branch, it disable multi config, but can build clang