From 866232dce27bf3e97b29fd157472a0ef9f030a7a Mon Sep 17 00:00:00 2001 From: ShrBox Date: Fri, 10 Apr 2026 19:27:47 +0800 Subject: fix(cmakelists): use target_link_libraries to link object libraries --- xmake/plugins/project/cmake/cmakelists.lua | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/xmake/plugins/project/cmake/cmakelists.lua b/xmake/plugins/project/cmake/cmakelists.lua index d089cf805..790f34d4d 100644 --- a/xmake/plugins/project/cmake/cmakelists.lua +++ b/xmake/plugins/project/cmake/cmakelists.lua @@ -1089,21 +1089,22 @@ function _add_target_link_libraries(cmakelists, target, outputdir) cmakelists:print(" " .. _get_relative_unix_path_to_cmake(objectfile, outputdir)) end end + cmakelists:print(")") end if #object_deps ~= 0 then if not has_links then cmakelists:print("add_library(target_objectfiles_%s OBJECT IMPORTED GLOBAL)", key) - cmakelists:print("set_property(TARGET target_objectfiles_%s PROPERTY IMPORTED_OBJECTS", key) has_links = true end + cmakelists:print("target_link_libraries(target_objectfiles_%s INTERFACE", key) for _, dep in ipairs(object_deps) do cmakelists:print(" " .. dep) end + cmakelists:print(")") end if has_links then - cmakelists:print(")") cmakelists:print("target_link_libraries(%s PRIVATE target_objectfiles_%s)", target:name(), key) end end -- cgit v1.3.1 From 0a95fe98063d85035815c867fc3beff98a97a4eb Mon Sep 17 00:00:00 2001 From: ShrBox Date: Fri, 10 Apr 2026 19:47:36 +0800 Subject: refactor(cmakelists): define target_objectfiles library as INTERFACE when it doesn't contain IMPORTED_OBJECTS property --- 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 790f34d4d..964508a5e 100644 --- a/xmake/plugins/project/cmake/cmakelists.lua +++ b/xmake/plugins/project/cmake/cmakelists.lua @@ -1094,7 +1094,7 @@ function _add_target_link_libraries(cmakelists, target, outputdir) if #object_deps ~= 0 then if not has_links then - cmakelists:print("add_library(target_objectfiles_%s OBJECT IMPORTED GLOBAL)", key) + cmakelists:print("add_library(target_objectfiles_%s INTERFACE)", key) has_links = true end cmakelists:print("target_link_libraries(target_objectfiles_%s INTERFACE", key) -- cgit v1.3.1