/
CMakeLists.txt
102 lines (91 loc) · 3.01 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
project(ENVYTOOLS C)
cmake_minimum_required(VERSION 2.6)
option(DISABLE_NVA "Disable building nva tools" OFF)
if (NOT DISABLE_NVA)
find_package(PkgConfig REQUIRED)
pkg_check_modules(PC_PCIACCESS pciaccess)
pkg_check_modules(PC_X11 x11)
pkg_check_modules(PC_XEXT xext)
pkg_check_modules(PC_PYTHON python3)
find_package (Threads)
find_program (CYTHON_EXECUTABLE cython)
if (PC_PCIACCESS_FOUND)
include_directories(${PC_PCIACCESS_INCLUDE_DIRS})
link_directories(${PC_PCIACCESS_LIBRARY_DIRS})
add_library(nva nva.c regspace.c)
target_link_libraries(nva nvhw ${PC_PCIACCESS_LIBRARIES})
SET(NVA_PROGS
nvalist
nvapeek
nvapeekstat
nvapeeki
nvapoke
nvahammer
nvafill
nvagetbios
nvafakebios
nvascan
nvatiming
nvapms
nvafuzz
nvawatch
nvacounter
nvaevo
nvastrscan
nvaxttime
nvaxtstart
nvaxtpeek
nvaxtpoke
nvaxtrsr
nvaxtssr
nvaxtinsn
nvavucstart
nvafucstart
nvaupload
nvadownload
evotiming
nv01dump
nv01post
nvaspyi2c
)
foreach(PROG ${NVA_PROGS})
add_executable(${PROG} ${PROG}.c)
target_link_libraries(${PROG} nva)
endforeach(PROG)
if (PC_X11_FOUND AND PC_XEXT_FOUND)
add_executable(nvamemtiming nvamemtiming.c set_timings.c vbios_mgmt.c libXNVCtrl/NVCtrl.c)
target_link_libraries(nvamemtiming nva ${PC_PCIACCESS_LIBRARIES} ${PC_X11_LIBRARIES} ${PC_XEXT_LIBRARIES})
install(TARGETS nvamemtiming
RUNTIME DESTINATION bin
LIBRARY DESTINATION lib${LIB_SUFFIX}
ARCHIVE DESTINATION lib${LIB_SUFFIX})
else(PC_X11_FOUND AND PC_XEXT_FOUND)
message("Warning: nvamemtiming won't be built because of un-met dependencies (libx11 and/or libxext)")
endif(PC_X11_FOUND AND PC_XEXT_FOUND)
if(PC_PYTHON_FOUND AND CYTHON_EXECUTABLE)
include_directories(${PC_PYTHON_INCLUDE_DIRS})
link_directories(${PC_PYTHON_LIBRARY_DIRS})
add_custom_command(OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/nvapy.c
COMMAND ${CYTHON_EXECUTABLE}
ARGS -3 ${CMAKE_CURRENT_SOURCE_DIR}/nvapy.pyx -o ${CMAKE_CURRENT_BINARY_DIR}/nvapy.c
MAIN_DEPENDENCY ${CMAKE_CURRENT_SOURCE_DIR}/nvapy.pyx)
add_library(nvapy MODULE ${CMAKE_CURRENT_BINARY_DIR}/nvapy.c nva.c)
set_target_properties(nvapy PROPERTIES PREFIX "")
target_link_libraries(nvapy ${PC_PYTHON_LIBRARIES} ${PC_PCIACCESS_LIBRARIES})
if (NVAPY_PATH)
install(TARGETS nvapy DESTINATION ${NVAPY_PATH})
endif (NVAPY_PATH)
else(PC_PYTHON_FOUND AND CYTHON_EXECUTABLE)
message("Warning: nvapy won't be built because of un-met dependencies (python and cython)")
endif(PC_PYTHON_FOUND AND CYTHON_EXECUTABLE)
target_link_libraries(nvawatch ${CMAKE_THREAD_LIBS_INIT})
target_link_libraries(nvacounter rt)
install(TARGETS nva ${NVA_PROGS}
RUNTIME DESTINATION bin
LIBRARY DESTINATION lib${LIB_SUFFIX}
ARCHIVE DESTINATION lib${LIB_SUFFIX})
install(FILES README DESTINATION share/doc/envytools RENAME README-nva)
else(PC_PCIACCESS_FOUND)
message("Warning: nva won't be built because of un-met dependencies (pciaccess)")
endif(PC_PCIACCESS_FOUND)
endif (NOT DISABLE_NVA)