~macslow/toyshader/trunk

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
)