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 |