cmake-cartesian-product CMake Macro for computing the cartesian product of an arbitrary number of lists