Does cmake support recursive macros