Subversion Repositories QNX 8.QNX8 LLVM/Clang compiler suite

Rev

Blame | Last modification | View Log | Download | RSS feed

  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.  
  38.