Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

插件自动生成的compile_commands.json没有包含QT相关的头文件路径 #72

Closed
Vinx911 opened this issue Sep 10, 2021 · 9 comments

Comments

@Vinx911
Copy link

Vinx911 commented Sep 10, 2021

!!! 注:提问题时若使用不能用/没效果/有问题/报错此类模糊表达,但又没有根据下面的模板给出任何相关辅助信息的,将会直接标记为 Invalid。

描述问题

插件自动生成的compile_commands.json没有包含QT相关的头文件路径

{
  "directory": "D:\\workspace\\xmake",
  "arguments": ["C:\\Program Files (x86)\\Microsoft Visual Studio\\2019\\Enterprise\\VC\\Tools\\MSVC\\14.27.29110\\bin\\HostX64\\x64\\cl.exe", "/c", "/EHsc", "/nologo", 
"/ID:\\workspace\\xmake\\build\\.gens\\xmake\\windows\\x64\\debug\\rules\\qt\\ui", 
"/Fobuild\\.objs\\xmake\\windows\\x64\\debug\\src\\main.cpp.obj", "src\\main.cpp"],
  "file": "src\\main.cpp"
},

期待的结果

使用命令xmake project -k compile_commands生成的compile_commands.json包含了Qt的头文件路径

{
  "directory": "D:\\workspace\\xmake",
  "arguments": ["C:\\Program Files (x86)\\Microsoft Visual 
Studio\\2019\\Enterprise\\VC\\Tools\\MSVC\\14.27.29110\\bin\\HostX64\\x64\\cl.exe", "/c", "/EHsc", "/nologo", "/Zi", "/FS", 
"/Fdbuild\\windows\\x64\\debug\\compile.xmake.pdb", "/Od", 
"/ID:\\workspace\\xmake\\build\\.gens\\xmake\\windows\\x64\\debug\\rules\\qt\\ui", "/DQT_QML_DEBUG", 
"/DQT_DEPRECATED_WARNINGS", "/DQT_CONCURRENT_LIB", "/DQT_GUI_LIB", "/DQT_WIDGETS_LIB", "/DQT_CORE_LIB", 
"/D_WINDOWS", "/IC:\\Programming\\Qt\\5.12.11\\msvc2017_64\\include\\QtConcurrent", 
"/IC:\\Programming\\Qt\\5.12.11\\msvc2017_64\\include\\QtGui", 
"/IC:\\Programming\\Qt\\5.12.11\\msvc2017_64\\include\\QtGui\\5.12.11", 
"/IC:\\Programming\\Qt\\5.12.11\\msvc2017_64\\include\\QtGui\\5.12.11\\QtGui", 
"/IC:\\Programming\\Qt\\5.12.11\\msvc2017_64\\include\\QtWidgets", 
"/IC:\\Programming\\Qt\\5.12.11\\msvc2017_64\\include\\QtWidgets\\5.12.11", 
"/IC:\\Programming\\Qt\\5.12.11\\msvc2017_64\\include\\QtWidgets\\5.12.11\\QtWidgets", 
"/IC:\\Programming\\Qt\\5.12.11\\msvc2017_64\\include\\QtCore", 
"/IC:\\Programming\\Qt\\5.12.11\\msvc2017_64\\include\\QtCore\\5.12.11", 
"/IC:\\Programming\\Qt\\5.12.11\\msvc2017_64\\include\\QtCore\\5.12.11\\QtCore", 
"/IC:\\Programming\\Qt\\5.12.11\\msvc2017_64\\include", "/IC:\\Programming\\Qt\\5.12.11\\msvc2017_64\\mkspecs\\win32-
msvc", "/Fobuild\\.objs\\xmake\\windows\\x64\\debug\\src\\main.cpp.obj", "src\\main.cpp"],
  "file": "src\\main.cpp"
},

错误信息

相关环境

请提供编译和运行环境信息,下面是一些必须填写的基础信息,便于我们针对性排查问题:

  • xmake版本:xmake v2.5.7+202108290043, A cross-platform build utility based on Lua
  • xmake运行平台:Windows 10
  • xmake目标平台:Windows 10

其他信息

请提供关键的 xmake.lua 配置内容,或者完整 xmake.lua,也可以是其他附加信息帮助我们诊断问题(比如截图,xmake.lua或者可复现的demo),以及你遇到的问题的一些背景信息。

@waruqi
Copy link
Member

waruqi commented Sep 10, 2021

老问题,目前还不支持 见 #47

@waruqi waruqi closed this as completed Sep 10, 2021
@Vinx911
Copy link
Author

Vinx911 commented Sep 10, 2021

对照命令xmake project -k compile_commands
将xmake-vscode/assets/update_intellisense.lua中config.load()改为task.run("config")
可以正常生成

刚接触xmake和lua,不太清楚这样修改是否合适。

-- imports
import("core.base.task")
import("core.project.config")
import("clang.compile_commands", {rootdir = path.join(os.programdir(), "plugins", "project")})

-- main entry
function main()

    -- generate compile_commands.json
    -- @note we can only load configuration because we watched onFileChanged(xmake.conf)
    task.run("config")
    compile_commands.make(".vscode")
end
``

@waruqi
Copy link
Member

waruqi commented Sep 10, 2021

也许会有问题,我记得之前是这么搞的,但是监控了xmake.conf变动 然后重新生成 commands 又去改了 config 又被监控到改动 ,会死循环

@waruqi
Copy link
Member

waruqi commented Sep 10, 2021

你可以看下插件代码监控代码 应该监控了 xmake.lua和 xmake.conf的变动

@Vinx911
Copy link
Author

Vinx911 commented Sep 10, 2021

好的,谢谢

@waruqi
Copy link
Member

waruqi commented Sep 13, 2021

我加了一个 onUpdateIntellisense 的命令,你也可以手动执行去强制更新 compdb

@HelloWorld886
Copy link

我加了一个 onUpdateIntellisense 的命令,你也可以手动执行去强制更新 compdb

nice,我试了下已经能生成QT头文件路径了,求发布下

@waruqi
Copy link
Member

waruqi commented Sep 13, 2021

已经发布了

waruqi added a commit that referenced this issue Sep 19, 2022
@waruqi
Copy link
Member

waruqi commented Sep 19, 2022

我修了

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

3 participants