Subversion Repositories QNX 8.QNX8 LLVM/Clang compiler suite

Rev

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