cmake project() requirement

Well, it’s allowed, but is not sufficient for this.

They’re not textual replacement. They have some similar behaviors, but thinking of them as #define is not a good mental model for them.