GuoXin Li's Blog

Cmake common syntax

字数统计: 254阅读时长: 1 min
2022/03/30 Share

以一个 OpenGL 程序为例:

1
2
3
4
5
6
7
//文件目录
./
├── CMakeLists.txt
├── build
├── lib
│   └── glad.c
└── main.cpp

CMakeLists.txt文件:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
# cmake的版本号
cmake_minimum_required(VERSION 3.17)
# project 的名字
project(OpenglDemo)
# C++ version
set(CMAKE_CXX_STANDARD 14)
#set(CMAKE_CXX_STANDARD 17)

# 检查环境变量
if (NOT DEFINED ENV{GLFW_HOME})
message(FATAL_ERROR "found no env named GLFW_HOME")
endif()
if (NOT DEFINED ENV{GLAD_HOME})
message(FATAL_ERROR "found no env named GLAD_HOME")
endif()

# 暂存环境变量
set(GLFW_HOME $ENV{GLFW_HOME})
set(GLAD_HOME $ENV{GLAD_HOME})

# 设置头文件目录
include_directories("${GLFW_HOME}/include")
include_directories("${GLAD_HOME}/include")

# 添加 GLFW3 预编译库
add_library(glfw SHARED IMPORTED) # add_library(想要编译成的库名字 类型 文件地址/导入类型) 其中如果是导入类型的话需要搭配下面的 SET_TARGET_PROPERTIES 使用
SET_TARGET_PROPERTIES( glfw #指定库名
PROPERTIES IMPORTED_LOCATION #指明要设置的参数
"${GLFW_HOME}/lib/libglfw.3.3.dylib" #指定路径
)

# 创建可执行文件
add_executable(OpenglDemo main.cpp "lib/glad.c")

# 链接 GLFW GLAD OpenGL
# target_link_libraries(可执行程序 需要链接的库)
#target_link_libraries(<name> lib1 lib2 lib3) 库的依赖顺序为:lib1依赖于lib2依赖于lib3
target_link_libraries(OpenglDemo glfw "-framework OpenGL")
CATALOG