If you look at the CMake documentation, you'll see that its usage differ a bit from what you wrote:
target_include_directories(<target> [SYSTEM] [BEFORE]
<INTERFACE|PUBLIC|PRIVATE> [items1...] [<INTERFACE|PUBLIC|PRIVATE>
[items2...] ...])
You'll notice that you miss the non optional argument <INTERFACE|PUBLIC|PRIVATE>
You must specify the visibility of the include directory:
target_include_directories(untitled PRIVATE ${OPENGL_INCLUDE_DIR})
If your executable uses OpenGL headers in a public header file, specify it as public so other targets that link to it also includes OpenGL headers.
I suggest you to get used to read the documentation, as it will be your best tool writing CMake scripts.
Even though it's optional, can also take this form for target_link_libraries
, which I strongly suggest you do:
target_link_libraries(untitled PUBLIC ${OPENGL_gl_LIBRARY})
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…