diff --git a/xmake/plugins/project/clang/compile_commands.lua b/xmake/plugins/project/clang/compile_commands.lua index 9435819df7d..a017b4a32bf 100644 --- a/xmake/plugins/project/clang/compile_commands.lua +++ b/xmake/plugins/project/clang/compile_commands.lua @@ -308,6 +308,7 @@ function make(outputdir) local oldir = os.cd(os.projectdir()) local jsonfile = io.open(path.join(outputdir, "compile_commands.json"), "w") os.setenv("XMAKE_IN_COMPILE_COMMANDS_PROJECT_GENERATOR", "true") + target_cmds.prepare_targets() _add_targets(jsonfile) jsonfile:close() os.setenv("XMAKE_IN_COMPILE_COMMANDS_PROJECT_GENERATOR", nil) diff --git a/xmake/plugins/project/clang/compile_flags.lua b/xmake/plugins/project/clang/compile_flags.lua index e4b07ec340b..07f9de38c7e 100644 --- a/xmake/plugins/project/clang/compile_flags.lua +++ b/xmake/plugins/project/clang/compile_flags.lua @@ -23,6 +23,7 @@ import("core.tool.compiler") import("core.project.project") import("core.language.language") import("private.utils.target", {alias = "target_utils"}) +import("plugins.project.utils.target_cmds", {rootdir = os.programdir()}) -- make the object function _make_object(target, flags, sourcefile, objectfile) diff --git a/xmake/rules/c++/precompiled_header/xmake.lua b/xmake/rules/c++/precompiled_header/xmake.lua index dc6fcb27e01..a2b08fe46a2 100644 --- a/xmake/rules/c++/precompiled_header/xmake.lua +++ b/xmake/rules/c++/precompiled_header/xmake.lua @@ -23,7 +23,9 @@ rule("c.build.pcheader") import("private.action.build.pcheader").config(target, "c", opt) end) before_prepare(function (target, jobgraph, opt) - import("private.action.build.pcheader").build(target, jobgraph, "c", opt) + if not os.getenv("XMAKE_IN_COMPILE_COMMANDS_PROJECT_GENERATOR") then + import("private.action.build.pcheader").build(target, jobgraph, "c", opt) + end end, {jobgraph = true}) rule("c++.build.pcheader") @@ -32,6 +34,8 @@ rule("c++.build.pcheader") import("private.action.build.pcheader").config(target, "cxx", opt) end) before_prepare(function (target, jobgraph, opt) - import("private.action.build.pcheader").build(target, jobgraph, "cxx", opt) + if not os.getenv("XMAKE_IN_COMPILE_COMMANDS_PROJECT_GENERATOR") then + import("private.action.build.pcheader").build(target, jobgraph, "cxx", opt) + end end, {jobgraph = true})