-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathCMakeLists.txt
116 lines (101 loc) · 3.43 KB
/
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
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
cmake_minimum_required(VERSION 3.21)
project(LearningOpenGL)
set(CMAKE_CXX_STANDARD 14)
# ffmpeg
set(FFMPEG_DIR /usr/local/Cellar/ffmpeg/5.0)
#set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall -std=c++0x")
# 添加头文件
# GL
set(GLEW_H /usr/local/Cellar/glew/2.2.0_1/include/GL)
# glfw
set(GLFW_H /usr/local/Cellar/glfw/3.3.4/include/GLFW)
# freeType
set(FREE_TYPE /usr/local/Cellar/freetype/2.11.1/include)
# freeType 引入头文件异常处理方案
set(FREE_TYPE2 /usr/local/Cellar/freetype/2.11.1/include/freetype2)
# assimp OpenGL 模型
set(ASSIMP /usr/local/Cellar/assimp/5.2.2/include)
# glad
set(GLAD /usr/local/Cellar/glad/include)
# glm
set(GLM /usr/local/Cellar/glm/include)
#yaml-cpp 文件解析
set(YAML_CPP /usr/local/include/yaml-cpp)
set(SYSTEM /usr/local/include)
include_directories(${GLEW_H} ${GLFW_H} ${ASSIMP} ${FREE_TYPE} ${FREE_TYPE2} ${GLAD} ${GLM} ${FFMPEG_DIR}/include ${SYSTEM})
include_directories(
src
src/util
src/camera
src/beat_heart
src/color
src/glm
src/texture
src/triangle
src/test
src/assimp
src/buffer
src/sphere
src/geometry
)
# 添加目标链接
set(GLEW_LINK /usr/local/Cellar/glew/2.2.0_1/lib/libGLEW.dylib)
set(GLFW_LINK /usr/local/Cellar/glfw/3.3.4/lib/libglfw.dylib)
set(FREE_TYPE_LINK /usr/local/Cellar/freetype/2.11.1/lib/libfreetype.dylib)
set(ASSIMP_LINK /usr/local/Cellar/assimp/5.2.2/lib/libassimp.dylib)
link_libraries(${OPENGL} ${GLFW_LINK} ${GLEW_LINK} ${FREE_TYPE_LINK} ${ASSIMP_LINK})
# ffmpeg 必须用这个引入包
link_directories(${FFMPEG_DIR}/lib)
link_directories(/usr/local/lib)
message("called main cmakeLists.txt")
# 执行编译命令
set(SOURCE_FILE
src/glad.c
src/util/Utils.cpp
main.cpp
src/util/stb_image.cpp
src/CommonInclude.cpp
src/Base.cpp
src/triangle/Triangle.cpp
src/triangle/Triangle2.cpp
src/triangle/TriangleExercises_1.cpp
src/triangle/TriangleExercises_2.cpp
src/triangle/TriangleExercises_3.cpp
src/texture/TexturePicture.cpp
src/texture/TexturePicture_1.cpp
src/texture/TexturePicture_2.cpp
src/texture/TexturePicture_3.cpp
src/texture/TexturePicture_4.cpp
src/glm/GLMSample.cpp
src/glm/GLMSample3D.cpp
src/glm/GLMSample3D36.cpp
src/camera/CameraCircle.cpp
src/camera/CameraCircleKeyboard_dt.cpp
src/camera/CameraCircleZoom.cpp
src/camera/CameraCircleZoomClass.cpp
src/color/GLColor.cpp
src/test/TestClass.cpp
src/beat_heart/BeatingHeartSample.cpp
src/glm/GLMSample3D36_2.cpp
src/beat_heart/CharactersSample.cpp
src/assimp/AssimpSample.cpp
src/assimp/Mesh.cpp
src/assimp/Model.cpp
src/buffer/FBOSample.cpp
src/sphere/SphereSample.cpp
src/sphere/SphereSample2.cpp
src/sphere/Sphere.cpp
src/sphere/SphereSample3.cpp
src/sphere/SphereLightSample.cpp
src/geometry/GeometrySample.cpp
src/geometry/GeometrySample.h
src/camera/CameraCircleAlon.cpp src/camera/CameraCircleAlon.h)
add_executable(LearningOpenGL ${SOURCE_FILE})
target_link_libraries(
LearningOpenGL
swscale swresample avcodec avutil avdevice avfilter avformat yaml-cpp
)
if (APPLE)
target_link_libraries(LearningOpenGL "-framework OpenGL")
target_link_libraries(LearningOpenGL "-framework GLUT")
endif ()