-
Notifications
You must be signed in to change notification settings - Fork 381
/
CMakeLists.txt
98 lines (74 loc) · 5.03 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
cmake_minimum_required(VERSION 3.12)
set(CMAKE_CXX_STANDARD 14)
set(CMAKE_CXX_STANDARD_REQUIRED ON)
set(CMAKE_CXX_EXTENSIONS OFF)
project(AllTutorials)
set(OpenGL_GL_PREFERENCE GLVND)
find_package(OpenGL REQUIRED)
add_subdirectory(glsdk)
add_subdirectory(framework)
function(add_tutorial base_dir tgt_name)
set(sources ${ARGN})
list(TRANSFORM sources PREPEND "${base_dir}/")
add_executable(${tgt_name} ${sources})
target_link_libraries(${tgt_name} PRIVATE framework)
endfunction()
## copy all data files to the build directory
file(COPY "data" DESTINATION "${CMAKE_BINARY_DIR}")
file(GLOB data_dirs "Tut*/data")
foreach(data_dir ${data_dirs})
file(COPY "${data_dir}" DESTINATION "${CMAKE_BINARY_DIR}")
endforeach()
## Tutorials
add_tutorial("Tut 01 Hello Triangle" "Tut01" "Tut1.cpp")
add_tutorial("Tut 02 Playing with Colors" "Tut02FragPosition" "FragPosition.cpp")
add_tutorial("Tut 02 Playing with Colors" "Tut02VertexColors" "VertexColors.cpp")
add_tutorial("Tut 03 OpenGLs Moving Triangle" "Tut03CPUPositionOffset" "CPUPositionOffset.cpp")
add_tutorial("Tut 03 OpenGLs Moving Triangle" "Tut03ShaderPositionOffset" "VertPositionOffset.cpp")
add_tutorial("Tut 03 OpenGLs Moving Triangle" "Tut03ShaderCalcOffset" "VertCalcOffset.cpp")
add_tutorial("Tut 03 OpenGLs Moving Triangle" "Tut03FragmentChangeColor" "FragChangeColor.cpp")
add_tutorial("Tut 04 Objects at Rest" "Tut04OrthographicCube" "OrthoCube.cpp")
add_tutorial("Tut 04 Objects at Rest" "Tut04ShaderPerspective" "ShaderPerspective.cpp")
add_tutorial("Tut 04 Objects at Rest" "Tut04MatrixPerspective" "MatrixPerspective.cpp")
add_tutorial("Tut 04 Objects at Rest" "Tut04AspectRatio" "AspectRatio.cpp")
add_tutorial("Tut 05 Objects in Depth" "Tut05OverlapNoDepth" "OverlapNoDepth.cpp")
add_tutorial("Tut 05 Objects in Depth" "Tut05BaseVertexWithOverlap" "BaseVertexOverlap.cpp")
add_tutorial("Tut 05 Objects in Depth" "Tut05DepthBuffering" "DepthBuffer.cpp")
add_tutorial("Tut 05 Objects in Depth" "Tut05VertexClipping" "VertexClipping.cpp")
add_tutorial("Tut 05 Objects in Depth" "Tut05DepthClamping" "DepthClamping.cpp")
add_tutorial("Tut 05 Objects in Depth" "Tut05DepthFighting" "DepthFighting.cpp")
add_tutorial("Tut 06 Objects in Motion" "Tut06Translation" "Translation.cpp")
add_tutorial("Tut 06 Objects in Motion" "Tut06Scale" "Scale.cpp")
add_tutorial("Tut 06 Objects in Motion" "Tut06Rotations" "Rotations.cpp")
add_tutorial("Tut 06 Objects in Motion" "Tut06Hierarchy" "Hierarchy.cpp")
add_tutorial("Tut 07 World in Motion" "Tut07WorldScene" "WorldScene.cpp")
add_tutorial("Tut 07 World in Motion" "Tut07WorldWithUBO" "WorldWithUBO.cpp")
add_tutorial("Tut 08 Getting Oriented" "Tut08GimbalLock" "GimbalLock.cpp")
add_tutorial("Tut 08 Getting Oriented" "Tut08QuaternionYPR" "QuaternionYPR.cpp")
add_tutorial("Tut 08 Getting Oriented" "Tut08CameraRelative" "CameraRelative.cpp")
add_tutorial("Tut 08 Getting Oriented" "Tut08Interpolation" "Interpolation.cpp")
add_tutorial("Tut 09 Lights on" "Tut09BasicLighting" "BasicLighting.cpp")
add_tutorial("Tut 09 Lights on" "Tut09ScaleAndLighting" "ScaleAndLighting.cpp")
add_tutorial("Tut 09 Lights on" "Tut09AmbientLighting" "AmbientLighting.cpp")
add_tutorial("Tut 10 Plane Lights" "Tut10VertexPointLighting" "VertexPointLighting.cpp")
add_tutorial("Tut 10 Plane Lights" "Tut10FragmentPointLighting" "FragmentPointLighting.cpp")
add_tutorial("Tut 10 Plane Lights" "Tut10FragmentAttenuation" "FragmentAttenuation.cpp")
add_tutorial("Tut 11 Shinies" "Tut11PhongLighting" "PhongLighting.cpp")
add_tutorial("Tut 11 Shinies" "Tut11BlinnVsPhongLighting" "BlinnVsPhongLighting.cpp")
add_tutorial("Tut 11 Shinies" "Tut11GaussianSpecularLighting" "GaussianSpecularLighting.cpp")
add_tutorial("Tut 12 Dynamic Range" "Tut12SceneLighting" "SceneLighting.cpp" "Lights.cpp" "Scene.cpp")
add_tutorial("Tut 12 Dynamic Range" "Tut12HDRLighting" "HDRLighting.cpp" "Lights.cpp" "Scene.cpp")
add_tutorial("Tut 12 Dynamic Range" "Tut12GammaCorrection" "GammaCorrection.cpp" "Lights.cpp" "Scene.cpp")
add_tutorial("Tut 13 Impostors" "Tut13BasicImpostor" "BasicImpostor.cpp")
add_tutorial("Tut 13 Impostors" "Tut13GeometryImpostor" "GeomImpostor.cpp")
add_tutorial("Tut 14 Textures Are Not Pictures" "Tut14BasicTexture" "BasicTexture.cpp")
add_tutorial("Tut 14 Textures Are Not Pictures" "Tut14PerspectiveInterpolation" "PerspectiveInterpolation.cpp")
add_tutorial("Tut 14 Textures Are Not Pictures" "Tut14MaterialTexture" "MaterialTexture.cpp")
add_tutorial("Tut 15 Many Images" "Tut15ManyImages" "ManyImages.cpp")
add_tutorial("Tut 16 Gamma and Textures" "Tut16GammaRamp" "GammaRamp.cpp")
add_tutorial("Tut 16 Gamma and Textures" "Tut16GammaCheckers" "GammaCheckers.cpp")
add_tutorial("Tut 16 Gamma and Textures" "Tut16GammaLandscape" "GammaLandscape.cpp" "LightEnv.cpp")
add_tutorial("Tut 17 Spotlight on Textures" "Tut17DoubleProjection" "DoubleProjection.cpp")
add_tutorial("Tut 17 Spotlight on Textures" "Tut17ProjectedLight" "ProjectedLight.cpp")
add_tutorial("Tut 17 Spotlight on Textures" "Tut17CubePointLight" "CubePointLight.cpp")
add_tutorial("Tut 18 Bumpy Textures" "Tut18BumpySquare" "BumpySquare.cpp")