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
|
cmake_minimum_required (VERSION 2.8.12)
project (ToyShader)
add_compile_options(-std=c++14 -Os -march=native -DGL_GLEXT_PROTOTYPES -DRELEASE)
set (DATA_DIR "${PROJECT_SOURCE_DIR}/data")
configure_file (
"${PROJECT_SOURCE_DIR}/include/config.h.in"
"${PROJECT_SOURCE_DIR}/include/config.h"
)
include (FindPkgConfig)
pkg_check_modules (SDL2_IMAGE SDL2_image REQUIRED)
include_directories (include ${SDL2_IMAGE_INCLUDE_DIRS})
add_library (DisplayLib src/display.cpp)
add_library (OpenGLLib src/opengl.cpp src/texture.cpp)
add_executable (ToyShader src/main.cpp)
target_link_libraries (ToyShader
DisplayLib
OpenGLLib
GL
${SDL2_IMAGE_LDFLAGS}
-s
)
add_custom_target (tiny
DEPENDS ToyShader
COMMAND gzip -cn9 ./ToyShader >small
COMMAND cat ../data/tiny ./small >compact
COMMAND chmod +x ./compact
COMMAND rm ./small ./ToyShader
COMMAND mv ./compact ./ToyShader
)
add_custom_target (stat
DEPENDS ToyShader
COMMAND sudo perf stat ./ToyShader
)
add_custom_target (report
DEPENDS ToyShader
COMMAND sudo perf record -g ./ToyShader
COMMAND sudo perf report -g 'graph,0.5,caller' --sort comm,dso,sym
)
|