如何为 clion 编写 cmake 脚本以包含 glfw?

How do I write the cmake script for clion to include glfw?

cmake_minimum_required(VERSION 3.15)
project(hello)
find_package(PkgConfig REQUIRED)
pkg_search_module(GLFW REQUIRED glfw3)
set(CMAKE_CXX_STANDARD 11)

add_executable(hello main.cpp)
INCLUDE_DIRECTORIES(${GLFW_INCLUDE_DIRS})
TARGET_LINK_LIBRARIES(hello ${GLFW_STATIC_LIBRARIES})

它告诉我

CMake Error at /home/user/.local/share/JetBrains/Toolbox/apps/CLion/ch-0/193.5233.144/bin/cmake/linux/share/cmake-3.15/Modules/FindPkgConfig.cmake:696 (message):
  None of the required 'glfw3' found

当我尝试构建它时。我的 glfw 文件夹位于 /usr/local/include/GLFW.

据我所知,glfw3 使用 CMake 作为构建系统, (来源:packages.debian.org/fr/sid/amd64/libglfw3-dev/filelist) 它使用现代 CMake,因此您不需要 GLFW_INCLUDE_DIRS 等...

在此文件 /usr/lib/cmake/glfw3/glfw3Targets.cmake 中(由 /usr/lib/cmake/glfw3/glfw3Config.cmake 加载),您将看到:

...
# Create imported target glfw
add_library(glfw SHARED IMPORTED)

set_target_properties(glfw PROPERTIES
  INTERFACE_COMPILE_DEFINITIONS "GLFW_DLL"
  INTERFACE_INCLUDE_DIRECTORIES "/usr/include"
)
...

所以你可以简单地使用:

find_package(glfw3 REQUIRED)
...
target_link_libraries(Foo glfw) 

ps: 和我之前的评论一样