【发布时间】:2013-08-04 23:23:10
【问题描述】:
我正在为 OpenGL 构建一个非常轻量级的库/包装器,但遇到了一个小问题。假设我有一个看起来像这样的目录结构:
GraphicsProject
|GraphicsApp
||main.cpp
|GraphicsLib
||include
|||fileA.h
|||fileB.h
||library
|||fileA.cpp
|||fileB.cpp
||shaders
|||shader1.txt
|||shader2.txt
|| build
||| bunch of build stuff
在运行时获取 shader1.txt 路径的最佳方法是什么?或者,不管是谁在使用这个项目,或者它位于用户机器上的什么位置,路径都不会改变?
我考虑过的一些选项: 1)获取当前的工作目录并使用该路径来达到我需要的位置。我对这个解决方案的主要担心是,我不确定当前目录会根据用户构建项目的方式或我无法控制的其他因素而改变多少。也感觉不是很优雅。 2) 将着色器的源代码作为字符数组/字符串存储在包含目录中的 .h 文件中。这似乎是一个更好的解决方案,只是它会使编写着色器稍微麻烦一些。
有这样做的标准方法吗?我正在使用 CMake 来构建项目,如果这有任何改变的话。
【问题讨论】:
-
将着色器文件复制到构建树作为构建后命令是否有效?
-
它可能......但我需要你解释一下这意味着什么以及我将如何处理它。
标签: cmake organization include-path