From 5a636f13b1ef98f83141706db0624d072bcc7e04 Mon Sep 17 00:00:00 2001 From: PierreEVEN Date: Wed, 14 May 2025 00:44:17 +0200 Subject: Fixed cmake generator that was using 'CMAKE_COMPILER_ID' which doesn't exists, instead of CMAKE_CXX_COMPILER_ID --- xmake/plugins/project/cmake/cmakelists.lua | 22 +++++++++++----------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/xmake/plugins/project/cmake/cmakelists.lua b/xmake/plugins/project/cmake/cmakelists.lua index d4b29dbc8..5c493dbd8 100644 --- a/xmake/plugins/project/cmake/cmakelists.lua +++ b/xmake/plugins/project/cmake/cmakelists.lua @@ -784,7 +784,7 @@ function _add_target_compile_options(cmakelists, target, outputdir) for _, toolname in toolnames:keys() do local name = compilernames[toolname] if name then - cmakelists:print("if(CMAKE_COMPILER_ID STREQUAL \"%s\")", name) + cmakelists:print("if(CMAKE_CXX_COMPILER_ID STREQUAL \"%s\")", name) _add_target_compile_options_for_compiler(toolname) cmakelists:print("endif()") end @@ -811,17 +811,17 @@ function _add_target_values(cmakelists, target, name) if name:endswith("s") then name = name:sub(1, #name - 1) end - cmakelists:print("if(CMAKE_COMPILER_ID STREQUAL \"MSVC\")") + cmakelists:print("if(CMAKE_CXX_COMPILER_ID STREQUAL \"MSVC\")") local flags_cl = _map_compflags("cl", "c", name, values) for _, flag in ipairs(flags_cl) do cmakelists:print(" target_compile_options(%s PRIVATE %s)", target:name(), flag) end - cmakelists:print("elseif(CMAKE_COMPILER_ID STREQUAL \"Clang\")") + cmakelists:print("elseif(CMAKE_CXX_COMPILER_ID STREQUAL \"Clang\")") local flags_clang = _map_compflags("clang", "c", name, values) for _, flag in ipairs(flags_clang) do cmakelists:print(" target_compile_options(%s PRIVATE %s)", target:name(), flag) end - cmakelists:print("elseif(CMAKE_COMPILER_ID STREQUAL \"GNU\")") + cmakelists:print("elseif(CMAKE_CXX_COMPILER_ID STREQUAL \"GNU\")") local flags_gcc = _map_compflags("gcc", "c", name, values) for _, flag in ipairs(flags_gcc) do cmakelists:print(" target_compile_options(%s PRIVATE %s)", target:name(), flag) @@ -888,7 +888,7 @@ function _add_target_languages(cmakelists, target) if flag:endswith('++') then cmakelists:print('foreach(standard 26 23 20 17 14 11 98)') cmakelists:print(' include(CheckCXXCompilerFlag)') - cmakelists:print(' if(CMAKE_COMPILER_ID STREQUAL \"MSVC\")') + cmakelists:print(' if(CMAKE_CXX_COMPILER_ID STREQUAL \"MSVC\")') cmakelists:print(' check_cxx_compiler_flag("/std:%s${standard}" %s_support_%s_standard_${standard})', flag, target:name(), flag) cmakelists:print(' else()') cmakelists:print(' check_cxx_compiler_flag("-std=%s${standard}" %s_support_%s_standard_${standard})', flag, target:name(), flag) @@ -901,7 +901,7 @@ function _add_target_languages(cmakelists, target) else cmakelists:print('foreach(standard 23 17 11 99 90)') cmakelists:print(' include(CheckCCompilerFlag)') - cmakelists:print(' if(CMAKE_COMPILER_ID STREQUAL \"MSVC\")') + cmakelists:print(' if(CMAKE_CXX_COMPILER_ID STREQUAL \"MSVC\")') cmakelists:print(' check_c_compiler_flag("/std:%s${standard}" %s_support_%s_standard_${standard})', flag, target:name(), flag) cmakelists:print(' else()') cmakelists:print(' check_c_compiler_flag("-std=%s${standard}" %s_support_%s_standard_${standard})', flag, target:name(), flag) @@ -941,7 +941,7 @@ function _add_target_optimization(cmakelists, target) } local optimization = target:get("optimize") if optimization then - cmakelists:print("if(CMAKE_COMPILER_ID STREQUAL \"MSVC\")") + cmakelists:print("if(CMAKE_CXX_COMPILER_ID STREQUAL \"MSVC\")") cmakelists:print(" target_compile_options(%s PRIVATE %s)", target:name(), flags_msvc[optimization]) cmakelists:print("else()") cmakelists:print(" target_compile_options(%s PRIVATE %s)", target:name(), flags_gcc[optimization]) @@ -969,7 +969,7 @@ function _add_target_symbols(cmakelists, target) if levels:has("hidden") then table.insert(flags_gcc, "-fvisibility=hidden") end - cmakelists:print("if(CMAKE_COMPILER_ID STREQUAL \"MSVC\")") + cmakelists:print("if(CMAKE_CXX_COMPILER_ID STREQUAL \"MSVC\")") if #flags_msvc > 0 then cmakelists:print(" target_compile_options(%s PRIVATE %s)", target:name(), table.concat(flags_msvc, " ")) end @@ -990,7 +990,7 @@ function _add_target_runtimes(cmakelists, target) local cmake_minver = _get_cmake_minver() if cmake_minver:ge("3.15.0") then local runtimes = target:get("runtimes") - cmakelists:print("if(CMAKE_COMPILER_ID STREQUAL \"MSVC\")") + cmakelists:print("if(CMAKE_CXX_COMPILER_ID STREQUAL \"MSVC\")") if runtimes then if runtimes == "MT" then runtimes = "MultiThreaded" @@ -1105,7 +1105,7 @@ function _add_target_link_directories(cmakelists, target, outputdir) end cmakelists:print(")") else - cmakelists:print("if(CMAKE_COMPILER_ID STREQUAL \"MSVC\")") + cmakelists:print("if(CMAKE_CXX_COMPILER_ID STREQUAL \"MSVC\")") cmakelists:print(" target_link_libraries(%s PRIVATE", target:name()) for _, linkdir in ipairs(linkdirs) do cmakelists:print(" -libpath:" .. _get_relative_unix_path(linkdir, outputdir)) @@ -1172,7 +1172,7 @@ function _add_target_link_options(cmakelists, target, outputdir) for _, toolname in toolnames:keys() do local name = linkernames[toolname] if name then - cmakelists:print("if(CMAKE_COMPILER_ID STREQUAL \"%s\")", name) + cmakelists:print("if(CMAKE_CXX_COMPILER_ID STREQUAL \"%s\")", name) _add_target_link_options_for_linker(toolname) cmakelists:print("endif()") end -- cgit v1.3.1 From edf7b7fe1956d922010260ef102838b90c9eda11 Mon Sep 17 00:00:00 2001 From: PierreEVEN Date: Wed, 14 May 2025 11:06:42 +0200 Subject: Use project language to detect compiler ID --- xmake/plugins/project/cmake/cmakelists.lua | 30 ++++++++++++++++++------------ 1 file changed, 18 insertions(+), 12 deletions(-) diff --git a/xmake/plugins/project/cmake/cmakelists.lua b/xmake/plugins/project/cmake/cmakelists.lua index 5c493dbd8..e8b24fa26 100644 --- a/xmake/plugins/project/cmake/cmakelists.lua +++ b/xmake/plugins/project/cmake/cmakelists.lua @@ -355,19 +355,25 @@ function _add_project(cmakelists, outputdir) if _can_native_support_for_cxxmodules() then cmakelists:print("set(CMAKE_CXX_SCAN_FOR_MODULES ON)") end + local languages = _get_project_languages() if project_name then local project_info = "" local project_version = project.version() if project_version then project_info = project_info .. " VERSION " .. project_version end - local languages = _get_project_languages() if languages then cmakelists:print("project(%s%s LANGUAGES %s)", project_name, project_info, table.concat(languages, " ")) else cmakelists:print("project(%s%s)", project_name, project_info) end end + -- Define a language-independant global compiler_id variable + if (languages and #languages > 0) then + cmakelists:print("set(CMAKE_COMPILER_ID CMAKE_%s_COMPILER_ID)", _get_project_languages()[1]) + else + cmakelists:print("set(CMAKE_COMPILER_ID CMAKE_C_COMPILER_ID)") -- C should be defined by default if not specified + end cmakelists:print("") end @@ -784,7 +790,7 @@ function _add_target_compile_options(cmakelists, target, outputdir) for _, toolname in toolnames:keys() do local name = compilernames[toolname] if name then - cmakelists:print("if(CMAKE_CXX_COMPILER_ID STREQUAL \"%s\")", name) + cmakelists:print("if(CMAKE_COMPILER_ID STREQUAL \"%s\")", name) _add_target_compile_options_for_compiler(toolname) cmakelists:print("endif()") end @@ -811,17 +817,17 @@ function _add_target_values(cmakelists, target, name) if name:endswith("s") then name = name:sub(1, #name - 1) end - cmakelists:print("if(CMAKE_CXX_COMPILER_ID STREQUAL \"MSVC\")") + cmakelists:print("if(CMAKE_COMPILER_ID STREQUAL \"MSVC\")") local flags_cl = _map_compflags("cl", "c", name, values) for _, flag in ipairs(flags_cl) do cmakelists:print(" target_compile_options(%s PRIVATE %s)", target:name(), flag) end - cmakelists:print("elseif(CMAKE_CXX_COMPILER_ID STREQUAL \"Clang\")") + cmakelists:print("elseif(CMAKE_COMPILER_ID STREQUAL \"Clang\")") local flags_clang = _map_compflags("clang", "c", name, values) for _, flag in ipairs(flags_clang) do cmakelists:print(" target_compile_options(%s PRIVATE %s)", target:name(), flag) end - cmakelists:print("elseif(CMAKE_CXX_COMPILER_ID STREQUAL \"GNU\")") + cmakelists:print("elseif(CMAKE_COMPILER_ID STREQUAL \"GNU\")") local flags_gcc = _map_compflags("gcc", "c", name, values) for _, flag in ipairs(flags_gcc) do cmakelists:print(" target_compile_options(%s PRIVATE %s)", target:name(), flag) @@ -888,7 +894,7 @@ function _add_target_languages(cmakelists, target) if flag:endswith('++') then cmakelists:print('foreach(standard 26 23 20 17 14 11 98)') cmakelists:print(' include(CheckCXXCompilerFlag)') - cmakelists:print(' if(CMAKE_CXX_COMPILER_ID STREQUAL \"MSVC\")') + cmakelists:print(' if(CMAKE_COMPILER_ID STREQUAL \"MSVC\")') cmakelists:print(' check_cxx_compiler_flag("/std:%s${standard}" %s_support_%s_standard_${standard})', flag, target:name(), flag) cmakelists:print(' else()') cmakelists:print(' check_cxx_compiler_flag("-std=%s${standard}" %s_support_%s_standard_${standard})', flag, target:name(), flag) @@ -901,7 +907,7 @@ function _add_target_languages(cmakelists, target) else cmakelists:print('foreach(standard 23 17 11 99 90)') cmakelists:print(' include(CheckCCompilerFlag)') - cmakelists:print(' if(CMAKE_CXX_COMPILER_ID STREQUAL \"MSVC\")') + cmakelists:print(' if(CMAKE_COMPILER_ID STREQUAL \"MSVC\")') cmakelists:print(' check_c_compiler_flag("/std:%s${standard}" %s_support_%s_standard_${standard})', flag, target:name(), flag) cmakelists:print(' else()') cmakelists:print(' check_c_compiler_flag("-std=%s${standard}" %s_support_%s_standard_${standard})', flag, target:name(), flag) @@ -941,7 +947,7 @@ function _add_target_optimization(cmakelists, target) } local optimization = target:get("optimize") if optimization then - cmakelists:print("if(CMAKE_CXX_COMPILER_ID STREQUAL \"MSVC\")") + cmakelists:print("if(CMAKE_COMPILER_ID STREQUAL \"MSVC\")") cmakelists:print(" target_compile_options(%s PRIVATE %s)", target:name(), flags_msvc[optimization]) cmakelists:print("else()") cmakelists:print(" target_compile_options(%s PRIVATE %s)", target:name(), flags_gcc[optimization]) @@ -969,7 +975,7 @@ function _add_target_symbols(cmakelists, target) if levels:has("hidden") then table.insert(flags_gcc, "-fvisibility=hidden") end - cmakelists:print("if(CMAKE_CXX_COMPILER_ID STREQUAL \"MSVC\")") + cmakelists:print("if(CMAKE_COMPILER_ID STREQUAL \"MSVC\")") if #flags_msvc > 0 then cmakelists:print(" target_compile_options(%s PRIVATE %s)", target:name(), table.concat(flags_msvc, " ")) end @@ -990,7 +996,7 @@ function _add_target_runtimes(cmakelists, target) local cmake_minver = _get_cmake_minver() if cmake_minver:ge("3.15.0") then local runtimes = target:get("runtimes") - cmakelists:print("if(CMAKE_CXX_COMPILER_ID STREQUAL \"MSVC\")") + cmakelists:print("if(CMAKE_COMPILER_ID STREQUAL \"MSVC\")") if runtimes then if runtimes == "MT" then runtimes = "MultiThreaded" @@ -1105,7 +1111,7 @@ function _add_target_link_directories(cmakelists, target, outputdir) end cmakelists:print(")") else - cmakelists:print("if(CMAKE_CXX_COMPILER_ID STREQUAL \"MSVC\")") + cmakelists:print("if(CMAKE_COMPILER_ID STREQUAL \"MSVC\")") cmakelists:print(" target_link_libraries(%s PRIVATE", target:name()) for _, linkdir in ipairs(linkdirs) do cmakelists:print(" -libpath:" .. _get_relative_unix_path(linkdir, outputdir)) @@ -1172,7 +1178,7 @@ function _add_target_link_options(cmakelists, target, outputdir) for _, toolname in toolnames:keys() do local name = linkernames[toolname] if name then - cmakelists:print("if(CMAKE_CXX_COMPILER_ID STREQUAL \"%s\")", name) + cmakelists:print("if(CMAKE_COMPILER_ID STREQUAL \"%s\")", name) _add_target_link_options_for_linker(toolname) cmakelists:print("endif()") end -- cgit v1.3.1 From ab0a145e1e51100a0ec789d3a403ca5281d72e61 Mon Sep 17 00:00:00 2001 From: PierreEVEN Date: Wed, 14 May 2025 11:16:49 +0200 Subject: fixed CMAKE_COMPILER_ID value that was set to CMAKE__COMPILER_ID instead of real value --- xmake/plugins/project/cmake/cmakelists.lua | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/xmake/plugins/project/cmake/cmakelists.lua b/xmake/plugins/project/cmake/cmakelists.lua index e8b24fa26..1dc2d0223 100644 --- a/xmake/plugins/project/cmake/cmakelists.lua +++ b/xmake/plugins/project/cmake/cmakelists.lua @@ -370,9 +370,9 @@ function _add_project(cmakelists, outputdir) end -- Define a language-independant global compiler_id variable if (languages and #languages > 0) then - cmakelists:print("set(CMAKE_COMPILER_ID CMAKE_%s_COMPILER_ID)", _get_project_languages()[1]) + cmakelists:print("set(CMAKE_COMPILER_ID ${CMAKE_%s_COMPILER_ID})", _get_project_languages()[1]) else - cmakelists:print("set(CMAKE_COMPILER_ID CMAKE_C_COMPILER_ID)") -- C should be defined by default if not specified + cmakelists:print("set(CMAKE_COMPILER_ID ${CMAKE_C_COMPILER_ID})") -- C should be defined by default if not specified end cmakelists:print("") end -- cgit v1.3.1 From b55f53c4aaf41405adf391117d163ba48ff88b79 Mon Sep 17 00:00:00 2001 From: PierreEVEN Date: Wed, 14 May 2025 11:23:11 +0200 Subject: Squashed commit of the following: commit ab0a145e1e51100a0ec789d3a403ca5281d72e61 Author: PierreEVEN Date: Wed May 14 11:16:49 2025 +0200 fixed CMAKE_COMPILER_ID value that was set to CMAKE__COMPILER_ID instead of real value commit edf7b7fe1956d922010260ef102838b90c9eda11 Author: PierreEVEN Date: Wed May 14 11:06:42 2025 +0200 Use project language to detect compiler ID --- xmake/plugins/project/cmake/cmakelists.lua | 30 ++++++++++++++++++------------ 1 file changed, 18 insertions(+), 12 deletions(-) diff --git a/xmake/plugins/project/cmake/cmakelists.lua b/xmake/plugins/project/cmake/cmakelists.lua index 5c493dbd8..1dc2d0223 100644 --- a/xmake/plugins/project/cmake/cmakelists.lua +++ b/xmake/plugins/project/cmake/cmakelists.lua @@ -355,19 +355,25 @@ function _add_project(cmakelists, outputdir) if _can_native_support_for_cxxmodules() then cmakelists:print("set(CMAKE_CXX_SCAN_FOR_MODULES ON)") end + local languages = _get_project_languages() if project_name then local project_info = "" local project_version = project.version() if project_version then project_info = project_info .. " VERSION " .. project_version end - local languages = _get_project_languages() if languages then cmakelists:print("project(%s%s LANGUAGES %s)", project_name, project_info, table.concat(languages, " ")) else cmakelists:print("project(%s%s)", project_name, project_info) end end + -- Define a language-independant global compiler_id variable + if (languages and #languages > 0) then + cmakelists:print("set(CMAKE_COMPILER_ID ${CMAKE_%s_COMPILER_ID})", _get_project_languages()[1]) + else + cmakelists:print("set(CMAKE_COMPILER_ID ${CMAKE_C_COMPILER_ID})") -- C should be defined by default if not specified + end cmakelists:print("") end @@ -784,7 +790,7 @@ function _add_target_compile_options(cmakelists, target, outputdir) for _, toolname in toolnames:keys() do local name = compilernames[toolname] if name then - cmakelists:print("if(CMAKE_CXX_COMPILER_ID STREQUAL \"%s\")", name) + cmakelists:print("if(CMAKE_COMPILER_ID STREQUAL \"%s\")", name) _add_target_compile_options_for_compiler(toolname) cmakelists:print("endif()") end @@ -811,17 +817,17 @@ function _add_target_values(cmakelists, target, name) if name:endswith("s") then name = name:sub(1, #name - 1) end - cmakelists:print("if(CMAKE_CXX_COMPILER_ID STREQUAL \"MSVC\")") + cmakelists:print("if(CMAKE_COMPILER_ID STREQUAL \"MSVC\")") local flags_cl = _map_compflags("cl", "c", name, values) for _, flag in ipairs(flags_cl) do cmakelists:print(" target_compile_options(%s PRIVATE %s)", target:name(), flag) end - cmakelists:print("elseif(CMAKE_CXX_COMPILER_ID STREQUAL \"Clang\")") + cmakelists:print("elseif(CMAKE_COMPILER_ID STREQUAL \"Clang\")") local flags_clang = _map_compflags("clang", "c", name, values) for _, flag in ipairs(flags_clang) do cmakelists:print(" target_compile_options(%s PRIVATE %s)", target:name(), flag) end - cmakelists:print("elseif(CMAKE_CXX_COMPILER_ID STREQUAL \"GNU\")") + cmakelists:print("elseif(CMAKE_COMPILER_ID STREQUAL \"GNU\")") local flags_gcc = _map_compflags("gcc", "c", name, values) for _, flag in ipairs(flags_gcc) do cmakelists:print(" target_compile_options(%s PRIVATE %s)", target:name(), flag) @@ -888,7 +894,7 @@ function _add_target_languages(cmakelists, target) if flag:endswith('++') then cmakelists:print('foreach(standard 26 23 20 17 14 11 98)') cmakelists:print(' include(CheckCXXCompilerFlag)') - cmakelists:print(' if(CMAKE_CXX_COMPILER_ID STREQUAL \"MSVC\")') + cmakelists:print(' if(CMAKE_COMPILER_ID STREQUAL \"MSVC\")') cmakelists:print(' check_cxx_compiler_flag("/std:%s${standard}" %s_support_%s_standard_${standard})', flag, target:name(), flag) cmakelists:print(' else()') cmakelists:print(' check_cxx_compiler_flag("-std=%s${standard}" %s_support_%s_standard_${standard})', flag, target:name(), flag) @@ -901,7 +907,7 @@ function _add_target_languages(cmakelists, target) else cmakelists:print('foreach(standard 23 17 11 99 90)') cmakelists:print(' include(CheckCCompilerFlag)') - cmakelists:print(' if(CMAKE_CXX_COMPILER_ID STREQUAL \"MSVC\")') + cmakelists:print(' if(CMAKE_COMPILER_ID STREQUAL \"MSVC\")') cmakelists:print(' check_c_compiler_flag("/std:%s${standard}" %s_support_%s_standard_${standard})', flag, target:name(), flag) cmakelists:print(' else()') cmakelists:print(' check_c_compiler_flag("-std=%s${standard}" %s_support_%s_standard_${standard})', flag, target:name(), flag) @@ -941,7 +947,7 @@ function _add_target_optimization(cmakelists, target) } local optimization = target:get("optimize") if optimization then - cmakelists:print("if(CMAKE_CXX_COMPILER_ID STREQUAL \"MSVC\")") + cmakelists:print("if(CMAKE_COMPILER_ID STREQUAL \"MSVC\")") cmakelists:print(" target_compile_options(%s PRIVATE %s)", target:name(), flags_msvc[optimization]) cmakelists:print("else()") cmakelists:print(" target_compile_options(%s PRIVATE %s)", target:name(), flags_gcc[optimization]) @@ -969,7 +975,7 @@ function _add_target_symbols(cmakelists, target) if levels:has("hidden") then table.insert(flags_gcc, "-fvisibility=hidden") end - cmakelists:print("if(CMAKE_CXX_COMPILER_ID STREQUAL \"MSVC\")") + cmakelists:print("if(CMAKE_COMPILER_ID STREQUAL \"MSVC\")") if #flags_msvc > 0 then cmakelists:print(" target_compile_options(%s PRIVATE %s)", target:name(), table.concat(flags_msvc, " ")) end @@ -990,7 +996,7 @@ function _add_target_runtimes(cmakelists, target) local cmake_minver = _get_cmake_minver() if cmake_minver:ge("3.15.0") then local runtimes = target:get("runtimes") - cmakelists:print("if(CMAKE_CXX_COMPILER_ID STREQUAL \"MSVC\")") + cmakelists:print("if(CMAKE_COMPILER_ID STREQUAL \"MSVC\")") if runtimes then if runtimes == "MT" then runtimes = "MultiThreaded" @@ -1105,7 +1111,7 @@ function _add_target_link_directories(cmakelists, target, outputdir) end cmakelists:print(")") else - cmakelists:print("if(CMAKE_CXX_COMPILER_ID STREQUAL \"MSVC\")") + cmakelists:print("if(CMAKE_COMPILER_ID STREQUAL \"MSVC\")") cmakelists:print(" target_link_libraries(%s PRIVATE", target:name()) for _, linkdir in ipairs(linkdirs) do cmakelists:print(" -libpath:" .. _get_relative_unix_path(linkdir, outputdir)) @@ -1172,7 +1178,7 @@ function _add_target_link_options(cmakelists, target, outputdir) for _, toolname in toolnames:keys() do local name = linkernames[toolname] if name then - cmakelists:print("if(CMAKE_CXX_COMPILER_ID STREQUAL \"%s\")", name) + cmakelists:print("if(CMAKE_COMPILER_ID STREQUAL \"%s\")", name) _add_target_link_options_for_linker(toolname) cmakelists:print("endif()") end -- cgit v1.3.1 From 5f31195278a7b04ce9e2f73cddc0daba91c0051b Mon Sep 17 00:00:00 2001 From: PierreEVEN Date: Wed, 14 May 2025 12:47:49 +0200 Subject: renamed CMAKE_COMPILER_ID property to XMAKE_GLOBAL_COMPILER_ID to avoid potential conflicts --- xmake/plugins/project/cmake/cmakelists.lua | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/xmake/plugins/project/cmake/cmakelists.lua b/xmake/plugins/project/cmake/cmakelists.lua index 1dc2d0223..8804e190a 100644 --- a/xmake/plugins/project/cmake/cmakelists.lua +++ b/xmake/plugins/project/cmake/cmakelists.lua @@ -817,7 +817,7 @@ function _add_target_values(cmakelists, target, name) if name:endswith("s") then name = name:sub(1, #name - 1) end - cmakelists:print("if(CMAKE_COMPILER_ID STREQUAL \"MSVC\")") + cmakelists:print("if(XMAKE_GLOBAL_COMPILER_ID STREQUAL \"MSVC\")") local flags_cl = _map_compflags("cl", "c", name, values) for _, flag in ipairs(flags_cl) do cmakelists:print(" target_compile_options(%s PRIVATE %s)", target:name(), flag) -- cgit v1.3.1 From 7f0d792d890e15677057c545a7b3d5f7eb52da52 Mon Sep 17 00:00:00 2001 From: PierreEVEN Date: Thu, 15 May 2025 09:47:38 +0200 Subject: Renamed remaining CMAKE_COMPILER_ID to XMAKE_GLOBAL_COMPILER_ID (was missing in previous commit) --- xmake/plugins/project/cmake/cmakelists.lua | 24 ++++++++++++------------ 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/xmake/plugins/project/cmake/cmakelists.lua b/xmake/plugins/project/cmake/cmakelists.lua index 8804e190a..e29115712 100644 --- a/xmake/plugins/project/cmake/cmakelists.lua +++ b/xmake/plugins/project/cmake/cmakelists.lua @@ -370,9 +370,9 @@ function _add_project(cmakelists, outputdir) end -- Define a language-independant global compiler_id variable if (languages and #languages > 0) then - cmakelists:print("set(CMAKE_COMPILER_ID ${CMAKE_%s_COMPILER_ID})", _get_project_languages()[1]) + cmakelists:print("set(XMAKE_GLOBAL_COMPILER_ID ${CMAKE_%s_COMPILER_ID})", _get_project_languages()[1]) else - cmakelists:print("set(CMAKE_COMPILER_ID ${CMAKE_C_COMPILER_ID})") -- C should be defined by default if not specified + cmakelists:print("set(XMAKE_GLOBAL_COMPILER_ID ${CMAKE_C_COMPILER_ID})") -- C should be defined by default if not specified end cmakelists:print("") end @@ -790,7 +790,7 @@ function _add_target_compile_options(cmakelists, target, outputdir) for _, toolname in toolnames:keys() do local name = compilernames[toolname] if name then - cmakelists:print("if(CMAKE_COMPILER_ID STREQUAL \"%s\")", name) + cmakelists:print("if(XMAKE_GLOBAL_COMPILER_ID STREQUAL \"%s\")", name) _add_target_compile_options_for_compiler(toolname) cmakelists:print("endif()") end @@ -822,12 +822,12 @@ function _add_target_values(cmakelists, target, name) for _, flag in ipairs(flags_cl) do cmakelists:print(" target_compile_options(%s PRIVATE %s)", target:name(), flag) end - cmakelists:print("elseif(CMAKE_COMPILER_ID STREQUAL \"Clang\")") + cmakelists:print("elseif(XMAKE_GLOBAL_COMPILER_ID STREQUAL \"Clang\")") local flags_clang = _map_compflags("clang", "c", name, values) for _, flag in ipairs(flags_clang) do cmakelists:print(" target_compile_options(%s PRIVATE %s)", target:name(), flag) end - cmakelists:print("elseif(CMAKE_COMPILER_ID STREQUAL \"GNU\")") + cmakelists:print("elseif(XMAKE_GLOBAL_COMPILER_ID STREQUAL \"GNU\")") local flags_gcc = _map_compflags("gcc", "c", name, values) for _, flag in ipairs(flags_gcc) do cmakelists:print(" target_compile_options(%s PRIVATE %s)", target:name(), flag) @@ -894,7 +894,7 @@ function _add_target_languages(cmakelists, target) if flag:endswith('++') then cmakelists:print('foreach(standard 26 23 20 17 14 11 98)') cmakelists:print(' include(CheckCXXCompilerFlag)') - cmakelists:print(' if(CMAKE_COMPILER_ID STREQUAL \"MSVC\")') + cmakelists:print(' if(XMAKE_GLOBAL_COMPILER_ID STREQUAL \"MSVC\")') cmakelists:print(' check_cxx_compiler_flag("/std:%s${standard}" %s_support_%s_standard_${standard})', flag, target:name(), flag) cmakelists:print(' else()') cmakelists:print(' check_cxx_compiler_flag("-std=%s${standard}" %s_support_%s_standard_${standard})', flag, target:name(), flag) @@ -907,7 +907,7 @@ function _add_target_languages(cmakelists, target) else cmakelists:print('foreach(standard 23 17 11 99 90)') cmakelists:print(' include(CheckCCompilerFlag)') - cmakelists:print(' if(CMAKE_COMPILER_ID STREQUAL \"MSVC\")') + cmakelists:print(' if(XMAKE_GLOBAL_COMPILER_ID STREQUAL \"MSVC\")') cmakelists:print(' check_c_compiler_flag("/std:%s${standard}" %s_support_%s_standard_${standard})', flag, target:name(), flag) cmakelists:print(' else()') cmakelists:print(' check_c_compiler_flag("-std=%s${standard}" %s_support_%s_standard_${standard})', flag, target:name(), flag) @@ -947,7 +947,7 @@ function _add_target_optimization(cmakelists, target) } local optimization = target:get("optimize") if optimization then - cmakelists:print("if(CMAKE_COMPILER_ID STREQUAL \"MSVC\")") + cmakelists:print("if(XMAKE_GLOBAL_COMPILER_ID STREQUAL \"MSVC\")") cmakelists:print(" target_compile_options(%s PRIVATE %s)", target:name(), flags_msvc[optimization]) cmakelists:print("else()") cmakelists:print(" target_compile_options(%s PRIVATE %s)", target:name(), flags_gcc[optimization]) @@ -975,7 +975,7 @@ function _add_target_symbols(cmakelists, target) if levels:has("hidden") then table.insert(flags_gcc, "-fvisibility=hidden") end - cmakelists:print("if(CMAKE_COMPILER_ID STREQUAL \"MSVC\")") + cmakelists:print("if(XMAKE_GLOBAL_COMPILER_ID STREQUAL \"MSVC\")") if #flags_msvc > 0 then cmakelists:print(" target_compile_options(%s PRIVATE %s)", target:name(), table.concat(flags_msvc, " ")) end @@ -996,7 +996,7 @@ function _add_target_runtimes(cmakelists, target) local cmake_minver = _get_cmake_minver() if cmake_minver:ge("3.15.0") then local runtimes = target:get("runtimes") - cmakelists:print("if(CMAKE_COMPILER_ID STREQUAL \"MSVC\")") + cmakelists:print("if(XMAKE_GLOBAL_COMPILER_ID STREQUAL \"MSVC\")") if runtimes then if runtimes == "MT" then runtimes = "MultiThreaded" @@ -1111,7 +1111,7 @@ function _add_target_link_directories(cmakelists, target, outputdir) end cmakelists:print(")") else - cmakelists:print("if(CMAKE_COMPILER_ID STREQUAL \"MSVC\")") + cmakelists:print("if(XMAKE_GLOBAL_COMPILER_ID STREQUAL \"MSVC\")") cmakelists:print(" target_link_libraries(%s PRIVATE", target:name()) for _, linkdir in ipairs(linkdirs) do cmakelists:print(" -libpath:" .. _get_relative_unix_path(linkdir, outputdir)) @@ -1178,7 +1178,7 @@ function _add_target_link_options(cmakelists, target, outputdir) for _, toolname in toolnames:keys() do local name = linkernames[toolname] if name then - cmakelists:print("if(CMAKE_COMPILER_ID STREQUAL \"%s\")", name) + cmakelists:print("if(XMAKE_GLOBAL_COMPILER_ID STREQUAL \"%s\")", name) _add_target_link_options_for_linker(toolname) cmakelists:print("endif()") end -- cgit v1.3.1 From c5b26a438fafc562c8bc848c48f397f607fcaddd Mon Sep 17 00:00:00 2001 From: PierreEVEN Date: Thu, 15 May 2025 13:26:43 +0200 Subject: renamed XMAKE_GLOBAL_COMPILER_ID to CURRENT_COMPILER_ID (advice from https://github.com/xmake-io/xmake/pull/6439\#discussion_r2090681624) --- xmake/plugins/project/cmake/cmakelists.lua | 26 +++++++++++++------------- 1 file changed, 13 insertions(+), 13 deletions(-) diff --git a/xmake/plugins/project/cmake/cmakelists.lua b/xmake/plugins/project/cmake/cmakelists.lua index e29115712..e650dd369 100644 --- a/xmake/plugins/project/cmake/cmakelists.lua +++ b/xmake/plugins/project/cmake/cmakelists.lua @@ -370,9 +370,9 @@ function _add_project(cmakelists, outputdir) end -- Define a language-independant global compiler_id variable if (languages and #languages > 0) then - cmakelists:print("set(XMAKE_GLOBAL_COMPILER_ID ${CMAKE_%s_COMPILER_ID})", _get_project_languages()[1]) + cmakelists:print("set(CURRENT_COMPILER_ID ${CMAKE_%s_COMPILER_ID})", _get_project_languages()[1]) else - cmakelists:print("set(XMAKE_GLOBAL_COMPILER_ID ${CMAKE_C_COMPILER_ID})") -- C should be defined by default if not specified + cmakelists:print("set(CURRENT_COMPILER_ID ${CMAKE_C_COMPILER_ID})") -- C should be defined by default if not specified end cmakelists:print("") end @@ -790,7 +790,7 @@ function _add_target_compile_options(cmakelists, target, outputdir) for _, toolname in toolnames:keys() do local name = compilernames[toolname] if name then - cmakelists:print("if(XMAKE_GLOBAL_COMPILER_ID STREQUAL \"%s\")", name) + cmakelists:print("if(CURRENT_COMPILER_ID STREQUAL \"%s\")", name) _add_target_compile_options_for_compiler(toolname) cmakelists:print("endif()") end @@ -817,17 +817,17 @@ function _add_target_values(cmakelists, target, name) if name:endswith("s") then name = name:sub(1, #name - 1) end - cmakelists:print("if(XMAKE_GLOBAL_COMPILER_ID STREQUAL \"MSVC\")") + cmakelists:print("if(CURRENT_COMPILER_ID STREQUAL \"MSVC\")") local flags_cl = _map_compflags("cl", "c", name, values) for _, flag in ipairs(flags_cl) do cmakelists:print(" target_compile_options(%s PRIVATE %s)", target:name(), flag) end - cmakelists:print("elseif(XMAKE_GLOBAL_COMPILER_ID STREQUAL \"Clang\")") + cmakelists:print("elseif(CURRENT_COMPILER_ID STREQUAL \"Clang\")") local flags_clang = _map_compflags("clang", "c", name, values) for _, flag in ipairs(flags_clang) do cmakelists:print(" target_compile_options(%s PRIVATE %s)", target:name(), flag) end - cmakelists:print("elseif(XMAKE_GLOBAL_COMPILER_ID STREQUAL \"GNU\")") + cmakelists:print("elseif(CURRENT_COMPILER_ID STREQUAL \"GNU\")") local flags_gcc = _map_compflags("gcc", "c", name, values) for _, flag in ipairs(flags_gcc) do cmakelists:print(" target_compile_options(%s PRIVATE %s)", target:name(), flag) @@ -894,7 +894,7 @@ function _add_target_languages(cmakelists, target) if flag:endswith('++') then cmakelists:print('foreach(standard 26 23 20 17 14 11 98)') cmakelists:print(' include(CheckCXXCompilerFlag)') - cmakelists:print(' if(XMAKE_GLOBAL_COMPILER_ID STREQUAL \"MSVC\")') + cmakelists:print(' if(CURRENT_COMPILER_ID STREQUAL \"MSVC\")') cmakelists:print(' check_cxx_compiler_flag("/std:%s${standard}" %s_support_%s_standard_${standard})', flag, target:name(), flag) cmakelists:print(' else()') cmakelists:print(' check_cxx_compiler_flag("-std=%s${standard}" %s_support_%s_standard_${standard})', flag, target:name(), flag) @@ -907,7 +907,7 @@ function _add_target_languages(cmakelists, target) else cmakelists:print('foreach(standard 23 17 11 99 90)') cmakelists:print(' include(CheckCCompilerFlag)') - cmakelists:print(' if(XMAKE_GLOBAL_COMPILER_ID STREQUAL \"MSVC\")') + cmakelists:print(' if(CURRENT_COMPILER_ID STREQUAL \"MSVC\")') cmakelists:print(' check_c_compiler_flag("/std:%s${standard}" %s_support_%s_standard_${standard})', flag, target:name(), flag) cmakelists:print(' else()') cmakelists:print(' check_c_compiler_flag("-std=%s${standard}" %s_support_%s_standard_${standard})', flag, target:name(), flag) @@ -947,7 +947,7 @@ function _add_target_optimization(cmakelists, target) } local optimization = target:get("optimize") if optimization then - cmakelists:print("if(XMAKE_GLOBAL_COMPILER_ID STREQUAL \"MSVC\")") + cmakelists:print("if(CURRENT_COMPILER_ID STREQUAL \"MSVC\")") cmakelists:print(" target_compile_options(%s PRIVATE %s)", target:name(), flags_msvc[optimization]) cmakelists:print("else()") cmakelists:print(" target_compile_options(%s PRIVATE %s)", target:name(), flags_gcc[optimization]) @@ -975,7 +975,7 @@ function _add_target_symbols(cmakelists, target) if levels:has("hidden") then table.insert(flags_gcc, "-fvisibility=hidden") end - cmakelists:print("if(XMAKE_GLOBAL_COMPILER_ID STREQUAL \"MSVC\")") + cmakelists:print("if(CURRENT_COMPILER_ID STREQUAL \"MSVC\")") if #flags_msvc > 0 then cmakelists:print(" target_compile_options(%s PRIVATE %s)", target:name(), table.concat(flags_msvc, " ")) end @@ -996,7 +996,7 @@ function _add_target_runtimes(cmakelists, target) local cmake_minver = _get_cmake_minver() if cmake_minver:ge("3.15.0") then local runtimes = target:get("runtimes") - cmakelists:print("if(XMAKE_GLOBAL_COMPILER_ID STREQUAL \"MSVC\")") + cmakelists:print("if(CURRENT_COMPILER_ID STREQUAL \"MSVC\")") if runtimes then if runtimes == "MT" then runtimes = "MultiThreaded" @@ -1111,7 +1111,7 @@ function _add_target_link_directories(cmakelists, target, outputdir) end cmakelists:print(")") else - cmakelists:print("if(XMAKE_GLOBAL_COMPILER_ID STREQUAL \"MSVC\")") + cmakelists:print("if(CURRENT_COMPILER_ID STREQUAL \"MSVC\")") cmakelists:print(" target_link_libraries(%s PRIVATE", target:name()) for _, linkdir in ipairs(linkdirs) do cmakelists:print(" -libpath:" .. _get_relative_unix_path(linkdir, outputdir)) @@ -1178,7 +1178,7 @@ function _add_target_link_options(cmakelists, target, outputdir) for _, toolname in toolnames:keys() do local name = linkernames[toolname] if name then - cmakelists:print("if(XMAKE_GLOBAL_COMPILER_ID STREQUAL \"%s\")", name) + cmakelists:print("if(CURRENT_COMPILER_ID STREQUAL \"%s\")", name) _add_target_link_options_for_linker(toolname) cmakelists:print("endif()") end -- cgit v1.3.1