From 939923043cf0298b347025e25fd3891336da05e1 Mon Sep 17 00:00:00 2001 From: Jarod42 Date: Mon, 8 May 2023 13:44:15 +0200 Subject: [PATCH] Better handle default toolset --- _preload.lua | 4 +++- ninja.lua | 21 ++------------------- 2 files changed, 5 insertions(+), 20 deletions(-) diff --git a/_preload.lua b/_preload.lua index 4af9a3b..a3a426f 100644 --- a/_preload.lua +++ b/_preload.lua @@ -20,7 +20,9 @@ valid_languages = {"C", "C++"}, valid_tools = {cc = { "gcc", "clang", "msc" }}, - toolset = "gcc", + toolset = iif(os.target() == "windows", "msc-v142", -- Visual Studio 2019 + iif(os.target() == "macosx", "clang", + "gcc")), -- Workspace and project generation logic onWorkspace = function(wks) diff --git a/ninja.lua b/ninja.lua index 5bbb192..a5b6341 100644 --- a/ninja.lua +++ b/ninja.lua @@ -213,21 +213,6 @@ local function shouldcompileascpp(filecfg) return path.iscppfile(filecfg.abspath) end -local function getDefaultToolsetFromOs() - local system_name = os.target() - - if system_name == "windows" then - return "msc" - elseif system_name == "macosx" then - return "clang" - elseif system_name == "linux" then - return "gcc" - else - p.warnOnce("unknown_system", "no toolchain set and unknown system " .. system_name .. " so assuming toolchain is gcc") - return "gcc" - end -end - local function getFileDependencies(cfg) local dependencies = {} if #cfg.prebuildcommands > 0 or cfg.prebuildmessage then @@ -603,12 +588,10 @@ function ninja.generateProjectCfg(cfg) local prj = cfg.project local key = prj.name .. "_" .. cfg.buildcfg - -- TODO why premake doesn't provide default name always ? - local toolset_name = _OPTIONS.cc or cfg.toolset or ninja.getDefaultToolsetFromOs() - local toolset, toolset_version = p.tools.canonical(toolset_name) + local toolset, toolset_version = p.tools.canonical(cfg.toolset) if not toolset then - p.error("Unknown toolset " .. toolset_name) + p.error("Unknown toolset " .. cfg.toolset) end -- Some toolset fixes