-
Notifications
You must be signed in to change notification settings - Fork 90
/
Copy pathCMakeLists.txt
159 lines (133 loc) · 4.19 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
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
# CMakeLists.txt for gpuvis
# To build on Windows:
#
# Download SDL2 development libraries and runtime binary:
# https://www.libsdl.org/download-2.0.php
#
# set SDL2DIR=c:\dev\SDL2-2.0.5
#
# git clone https://github.com/mikesart/gpuvis
# mkdir gpuvis\build
# cd gpuvis\build
# ; copy SDL2.dll here...
#
# cmake -G "NMake Makefiles JOM" -DCMAKE_BUILD_TYPE=RelWithDebInfo ..
# jom
#
cmake_minimum_required( VERSION 2.8 FATAL_ERROR )
project( "gpuvis" )
option(USE_FREETYPE "USE_FREETYPE" ON)
option(USE_I915_PERF "USE_I915_PERF" OFF)
option(USE_RAPIDJSON "USE_RAPIDJSON" ON)
set( CMAKE_MODULE_PATH ${PROJECT_SOURCE_DIR}/cmake )
# bring in useful cmake macros
# https://github.com/onqtam/ucm
include( "cmake/ucm.cmake" )
find_package( SDL2 REQUIRED )
if ( USE_FREETYPE )
find_package( Freetype REQUIRED )
ucm_add_flags( -DUSE_FREETYPE )
endif()
# https://github.com/mikesart/gpuvis/issues/17
# From Pierre-Loup: Static is better for our usecase, since we do ad-hoc builds
# that we distribute in SteamVR.
ucm_set_runtime( STATIC )
# https://codingnest.com/basic-cmake/#fnref6
# also: CMAKE_CXX_COMPILER_VERSION
## if ( CMAKE_CXX_COMPILER_ID MATCHES "Clang|AppleClang|GNU" )
## message("foo")
## # target_compile_options( vector-test PRIVATE -Wall -Wextra -Wunreachable-code -Wpedantic)
## endif()
## if ( CMAKE_CXX_COMPILER_ID MATCHES "Clang" )
## message("foo2")
## # target_compile_options( vector-test PRIVATE -Wweak-vtables -Wexit-time-destructors -Wglobal-constructors -Wmissing-noreturn )
## endif()
## if ( CMAKE_CXX_COMPILER_ID MATCHES "MSVC" )
## message("foo3")
## # target_compile_options( vector-test PRIVATE /W4 /w44265 /w44061 /w44062 )
## endif()
ucm_add_flags( -O0 -DDEBUG CONFIG Debug )
ucm_add_flags( -O2 -DNDEBUG CONFIG Release )
if ( CMAKE_CXX_COMPILER_ID MATCHES "GNU|Clang|AppleClang" )
ucm_add_flags( CXX -std=c++11 )
endif()
if ( APPLE )
ucm_add_flags( CXX -stdlib=libc++ )
ucm_add_linker_flags( -stdlib=libc++ )
endif()
if ( WIN32 )
ucm_add_flags( -D_CRT_SECURE_NO_WARNINGS /wd4996 /wd4244 /wd4090 /wd4018 /wd4267 )
LINK_LIBRARIES( shlwapi opengl32 comctl32 tdh )
elseif ( UNIX AND NOT APPLE )
find_package( PkgConfig REQUIRED )
pkg_check_modules( GTK3 REQUIRED gtk+-3.0 )
ucm_add_flags( -DUSE_GTK3 )
if(CMAKE_SYSTEM_NAME MATCHES "Linux|SunOS" OR MINGW)
ucm_add_flags( -D_LARGEFILE64_SOURCE=1 -D_FILE_OFFSET_BITS=64 )
endif()
set( GTK3_LIBRARIES "" )
LINK_LIBRARIES( ${CMAKE_DL_LIBS} )
endif()
if ( USE_I915_PERF )
pkg_check_modules( I915_PERF REQUIRED i915-perf>=1.5.0)
pkg_check_modules( I915_PERF REQUIRED xe-oa )
ucm_add_flags( -DUSE_I915_PERF )
endif()
if ( USE_RAPIDJSON )
find_package( RapidJSON REQUIRED )
ucm_add_flags( -DHAVE_RAPIDJSON )
endif()
ucm_print_flags()
# Main source list
set ( SRC_LIST
src/gpuvis.cpp
src/gpuvis_graph.cpp
src/gpuvis_framemarkers.cpp
src/gpuvis_plots.cpp
src/gpuvis_graphrows.cpp
src/gpuvis_ftrace_print.cpp
src/gpuvis_i915_perfcounters.cpp
src/gpuvis_utils.cpp
src/gpuvis_etl.cpp
src/etl_utils.cpp
src/tdopexpr.cpp
src/ya_getopt.c
src/MurmurHash3.cpp
src/miniz.c
src/stlini.cpp
src/imgui/imgui_impl_sdl_gl3.cpp
src/imgui/imgui.cpp
src/imgui/imgui_demo.cpp
src/imgui/imgui_draw.cpp
src/imgui/imgui_freetype.cpp
src/GL/gl3w.c
src/i915-perf/i915-perf-read.cpp
src/libtraceevent/src/event-parse.c
src/libtraceevent/src/event-parse-api.c
src/libtraceevent/src/event-plugin.c
src/libtraceevent/src/kbuffer-parse.c
src/libtraceevent/src/parse-utils.c
src/libtraceevent/src/trace-seq.c
src/trace-cmd/trace-read.cpp
)
if ( APPLE )
list ( APPEND SRC_LIST src/noc_file_dialog_osx.mm )
endif()
include_directories(
${CMAKE_CURRENT_LIST_DIR}/src
${CMAKE_CURRENT_LIST_DIR}/src/libtraceevent/include
${FREETYPE_INCLUDE_DIRS}
${GTK3_INCLUDE_DIRS}
${SDL2_INCLUDE_DIR}
${RAPIDJSON_INCLUDE_DIRS}
${I915_PERF_INCLUDE_DIRS}
)
ucm_add_target( NAME gpuvis TYPE EXECUTABLE SOURCES ${SRC_LIST} )
target_link_libraries(
${PROJECT_NAME}
${LIBRARY_LIST}
${SDL2_LIBRARY}
${FREETYPE_LIBRARIES}
${GTK3_LIBRARIES}
${I915_PERF_LIBRARIES}
)