Похоже, вы ищете что-то вроде этого:
#define DEF_0 N
#ifdef CMAKE_X
#define DEF_X (DEF_0 + CMAKE_X)
#else
#define DEF_X DEF_0
#endif
#ifdef CMAKE_Y
#define DEF_Y (DEF_X + CMAKE_Y)
#else
#define DEF_Y DEF_X
#endif
#ifdef CMAKE_Z
redefine DEF_Z (DEF_Y + CMAKE_Z)
#else
#define DEF_Z DEF_Y
#endif
#define DEF DEF_Z
Т.е. создать промежуточные макросы, каждый из которых может иметь или не иметь дополнения к предыдущему.