Details | Last modification | View Log | RSS feed
Rev | Author | Line No. | Line |
---|---|---|---|
14 | pmbaty | 1 | # CMake module for finding libpfm4. |
2 | # |
||
3 | # If successful, the following variables will be defined: |
||
4 | # HAVE_LIBPFM |
||
5 | # |
||
6 | # Libpfm can be disabled by setting LLVM_ENABLE_LIBPFM to 0. |
||
7 | |||
8 | include(CheckIncludeFile) |
||
9 | include(CheckLibraryExists) |
||
10 | include(CheckCXXSourceCompiles) |
||
11 | |||
12 | if (LLVM_ENABLE_LIBPFM) |
||
13 | check_library_exists(pfm pfm_initialize "" HAVE_LIBPFM_INITIALIZE) |
||
14 | if(HAVE_LIBPFM_INITIALIZE) |
||
15 | check_include_file(perfmon/perf_event.h HAVE_PERFMON_PERF_EVENT_H) |
||
16 | check_include_file(perfmon/pfmlib.h HAVE_PERFMON_PFMLIB_H) |
||
17 | check_include_file(perfmon/pfmlib_perf_event.h HAVE_PERFMON_PFMLIB_PERF_EVENT_H) |
||
18 | if(HAVE_PERFMON_PERF_EVENT_H AND HAVE_PERFMON_PFMLIB_H AND HAVE_PERFMON_PFMLIB_PERF_EVENT_H) |
||
19 | set(HAVE_LIBPFM 1) |
||
20 | # Check to see if perf_branch_entry has the field 'cycles'. |
||
21 | # We couldn't use CheckStructHasMember here because 'cycles' is a bit field which is not |
||
22 | # supported by CheckStructHasMember. |
||
23 | CHECK_CXX_SOURCE_COMPILES(" |
||
24 | #include <perfmon/perf_event.h> |
||
25 | int main() { |
||
26 | perf_branch_entry entry; |
||
27 | entry.cycles = 2; |
||
28 | return 0; |
||
29 | }" COMPILE_WITH_CYCLES) |
||
30 | if(COMPILE_WITH_CYCLES) |
||
31 | set(LIBPFM_HAS_FIELD_CYCLES 1) |
||
32 | endif() |
||
33 | endif() |
||
34 | endif() |
||
35 | endif() |
||
36 | |||
37 |