CefView / QCefView

A Qt Widget encapsulated CEF view based on QWidget
https://cefview.github.io/QCefView/
GNU Lesser General Public License v2.1
527 stars 137 forks source link

[FEATURE] 关于CMake的使用体验建议 #236

Closed L-Super closed 1 year ago

L-Super commented 1 year ago

Feature Description 【特性详细描述】

在使用过程中,发现CMakeLists.txt写的并不如意,不好直接集成到项目中,对项目结构改动较大。希望能对CMake进行优化。 比如,下载到项目的third_party/QCefView,可以使用以下语句添加到项目中,而不需要改动项目结构。

add_subdirectory(third_party/QCefView)

或者能使用CMake的FetchContent那就更好了

tishion commented 1 year ago

你描述的第一种使用方法就是现在推荐的做法,能列举出这样使用导致你的项目“改动很大”的具体改动点么?

L-Super commented 1 year ago

你描述的第一种使用方法就是现在推荐的做法,能列举出这样使用导致你的项目“改动很大”的具体改动点么?

但是,第一种方式,从引入方式来说,需要改动两个地方,qt SDK, cef 版本(这两个地方很容易改错,我在家就搞错路径和版本格式)。这里我觉得可参考官方仓库cef-project的做法。qt也交给用户自己去添加,比如clion的方式。

还有就是,我的项目,cef在third_party下,如果我保持这个结构的话,改动的地方就比较多了。

tishion commented 1 year ago

qt SDK, cef 版本

QT版本,这个设计上是推荐用户通过环境变量来实现,而不是直接写死在CMake里面,既然使用了Qt,无论是使用CMake的方式,还是直接使用QMake的方式,这个环境变量也都是Qt官方推荐设置的。

CEF版本目前没有环境变量,只能通过修改CMake文件来实现,不过对于一般用户,可能没有修改这个的需求,有这个修改需求的用户,现在的方式门槛也并不高。

还有就是,我的项目,cef在third_party下,如果我保持这个结构的话,改动的地方就比较多了。 QCefView做为一个整体,封装CEF,设计目标就是屏蔽用户对CEF的感知,所以CEF的依赖是属于QCefView的内部实现,如果你已经在你的项目中引用了原始的CEF,那QCefView并没有考虑这种并存的情况。

可能你需要的是使用自己编译的CEF实现,这里可以做个优化改动,支持用户设置自定义的CEF路径,而不是使用从spotify下载的。

L-Super commented 1 year ago

如果通过环境变量的方式,是否限制在了Windows?我不太清楚Linux,MacOS是否通用。

再者就是,从用户角度来说,QCefView需要改Qt,QCefViewCore需要加cef路径,这里是否也可以优化到一个地方。

tishion commented 1 year ago

如果通过环境变量的方式,是否限制在了Windows?我不太清楚Linux,MacOS是否通用。

再者就是,从用户角度来说,QCefView需要改Qt,QCefViewCore需要加cef路径,这里是否也可以优化到一个地方。

通用的,建议看看 https://cefview.github.io/QCefView/