From 14d4d42ece39953898a0ce57bfb8b16ffb2ae865 Mon Sep 17 00:00:00 2001 From: Northn Date: Sun, 10 May 2026 10:59:19 +0400 Subject: add a fallback to compiler/linker frontend detection when cmake version is <3.26 --- xmake/plugins/project/cmake/cmakelists.lua | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/xmake/plugins/project/cmake/cmakelists.lua b/xmake/plugins/project/cmake/cmakelists.lua index 88ec94533..0136bacfa 100644 --- a/xmake/plugins/project/cmake/cmakelists.lua +++ b/xmake/plugins/project/cmake/cmakelists.lua @@ -407,7 +407,11 @@ function _add_project(cmakelists, outputdir) cmakelists:print("set(CURRENT_COMPILER_ID ${CMAKE_%s_COMPILER_ID})", language) cmakelists:print("set(CURRENT_COMPILER_FRONTEND_VARIANT ${CMAKE_%s_COMPILER_FRONTEND_VARIANT})", language) cmakelists:print("if(NOT CURRENT_COMPILER_FRONTEND_VARIANT)") - cmakelists:print(" set(CURRENT_COMPILER_FRONTEND_VARIANT ${CURRENT_COMPILER_ID})") + cmakelists:print(" if(MSVC)") + cmakelists:print(" set(CURRENT_COMPILER_FRONTEND_VARIANT \"MSVC\")") + cmakelists:print(" else()") + cmakelists:print(" set(CURRENT_COMPILER_FRONTEND_VARIANT \"GNU\")") + cmakelists:print(" endif()") cmakelists:print("endif()") cmakelists:print("set(CURRENT_LINKER_ID ${CMAKE_%s_COMPILER_LINKER_ID})", language) cmakelists:print("if(DEFINED CMAKE_%s_COMPILER_LINKER_FRONTEND_VARIANT)", language) @@ -420,7 +424,11 @@ function _add_project(cmakelists, outputdir) cmakelists:print("set(CURRENT_COMPILER_ID ${CMAKE_C_COMPILER_ID})") -- C should be defined by default if not specified cmakelists:print("set(CURRENT_COMPILER_FRONTEND_VARIANT ${CMAKE_C_COMPILER_FRONTEND_VARIANT})") cmakelists:print("if(NOT CURRENT_COMPILER_FRONTEND_VARIANT)") - cmakelists:print(" set(CURRENT_COMPILER_FRONTEND_VARIANT ${CURRENT_COMPILER_ID})") + cmakelists:print(" if(MSVC)") + cmakelists:print(" set(CURRENT_COMPILER_FRONTEND_VARIANT \"MSVC\")") + cmakelists:print(" else()") + cmakelists:print(" set(CURRENT_COMPILER_FRONTEND_VARIANT \"GNU\")") + cmakelists:print(" endif()") cmakelists:print("endif()") cmakelists:print("set(CURRENT_LINKER_ID ${CMAKE_C_COMPILER_LINKER_ID})") cmakelists:print("if(DEFINED CMAKE_C_COMPILER_LINKER_FRONTEND_VARIANT)") -- cgit v1.3.1