在QTCreator CMake项目的项目窗格中包含GLSL文件

时间:2012-11-24 11:52:02

标签: cmake glsl qt-creator

我正在处理OpenGL教程:OpenGL-Tutorial.org,并希望使用QTCreator和CMake来构建示例。

打开根CMakeLists.txt文件会打开项目,然后构建/运行正确(按照网站上的说明操作),但片段和顶点文件不会显示在项目窗格中。我尝试将它们重命名为.frag.vert.glsl,但效果不佳。如果我从他们在编辑窗格中打开的文件夹中拖动这些文件,并使用正确的语法高亮显示。

如何让这些文件显示在项目窗格中?


我使用的是Ubuntu 20.04并且已经尝试过QTCreator包和sourceforge上的最新源代码。

3 个答案:

答案 0 :(得分:4)

file(GLOB RES_FILES *.frag *.vert *.glsl)

add_executable(exe_name ${RES_FILES} ${C/CPP FILES})

答案 1 :(得分:1)

使用Cmake在您的Qt项目中包含着色器文件的另一种方法是通过CMake命令qt5_add_resources。使用qmake时,One of the Qt's examples也会这样做。对于我的应用程序,我发现将着色器文件包含为资源更实用。

因此,为此,您必须准备资源文件,例如Shaders.qrc,并在那里添加您要使用的所有着色器文件,例如:

<RCC>
    <qresource prefix="/">
        <file>Stroke.frag</file>
        <file>Stroke.geom</file>
        <file>Stroke.vert</file>
    </qresource>
</RCC>

然后在CMakeLists.txt中添加资源文件:

qt5_add_resources(SHADER_RSC_ADDED 
    Shaders/Shaders.qrc
)

并将其添加到可执行文件(或库)中:

add_executable(${PROJECT_NAME}
    ${PROJECT_SRCS}
    ${SHADER_RSC_ADDED}
)

重新构建后,项目树将如下所示:

Added shaders as qrc file

答案 2 :(得分:0)

您可以将着色器文件添加为.pro文件中的其他文件。

OTHER_FILES += \
    simple.frag \
    simple.vert

此外,您应该考虑对着色器文件使用QT资源管理。我最近在Qt中创建了一个简单的OpenGL 3.2示例项目,该项目还展示了如何使用Qt进行着色器文件的资源管理。该项目可在此处获取:https://github.com/mortennobel/QtOpenGL3.2Core

警告:该项目仅在Windows和OS / X上进行测试。