this removes submodules and external libraries in the code in favor of
importing them as CPM packages. CPM_SOURCE_CACHE is recommended as
codegen has to readd two of the same dependencies
this is necessary in cross compilation enviroments, such as compiling
for android or cross compiling to windows on linux, since we want the
codegen executable to be of the current system, not the cross
compilation target