introduce cmake build system