return { name = "CMake Generate", params = { build_type = { type = "enum", choices = { "Debug", "Release", "RelWithDebInfo", "MinSizeRel" }, default = "Debug" }, generator = { type = "enum", choices = { "Ninja", "Unix Makefiles" }, default = "Ninja" }, compiler = { type = "enum", choices = { "g++", "clang++" }, default = "g++" } }, builder = function(params) return { cmd = { "cmake" }, args = { "-B", "build", "-S", ".", "-DCMAKE_EXPORT_COMPILE_COMMANDS=ON", "-DCMAKE_BUILD_TYPE=" .. params.build_type, "-DCMAKE_CXX_COMPILER=" .. params.compiler, "-G", params.generator }, components = { "default" } } end, condition = { filetype = { "cmake", "cpp" } } }