summaryrefslogtreecommitdiffstats
path: root/src/blkin/cmake/modules/FindLTTng.cmake
diff options
context:
space:
mode:
Diffstat (limited to 'src/blkin/cmake/modules/FindLTTng.cmake')
-rw-r--r--src/blkin/cmake/modules/FindLTTng.cmake64
1 files changed, 64 insertions, 0 deletions
diff --git a/src/blkin/cmake/modules/FindLTTng.cmake b/src/blkin/cmake/modules/FindLTTng.cmake
new file mode 100644
index 00000000..d0462a18
--- /dev/null
+++ b/src/blkin/cmake/modules/FindLTTng.cmake
@@ -0,0 +1,64 @@
+# - Find LTTng
+# Find the Linux Trace Toolkit - next generation with associated includes path.
+# See http://lttng.org/
+#
+# This module accepts the following optional variables:
+# LTTNG_PATH_HINT = A hint on LTTNG install path.
+#
+# This module defines the following variables:
+# LTTNG_FOUND = Was LTTng found or not?
+# LTTNG_EXECUTABLE = The path to lttng command
+# LTTNG_LIBRARIES = The list of libraries to link to when using LTTng
+# LTTNG_INCLUDE_DIR = The path to LTTng include directory
+#
+# On can set LTTNG_PATH_HINT before using find_package(LTTng) and the
+# module with use the PATH as a hint to find LTTng.
+#
+# The hint can be given on the command line too:
+# cmake -DLTTNG_PATH_HINT=/DATA/ERIC/LTTng /path/to/source
+
+find_package(PkgConfig)
+pkg_check_modules(PC_LTTNG QUIET lttng-ust)
+
+find_path(LTTNG_INCLUDE_DIR
+ NAMES lttng/tracepoint.h
+ HINTS ${PC_LTTNG_INCLUDEDIR} ${PC_LTTNG_INCLUDE_DIRS}
+ PATH_SUFFIXES include
+ DOC "The LTTng include headers")
+
+find_path(LTTNG_LIBRARY_DIR
+ NAMES liblttng-ust.so
+ HINTS ${PC_LTTNG_LIBDIR} ${PC_LTTNG_LIBRARY_DIRS}
+ DOC "The LTTng libraries")
+
+find_library(LTTNG_UST_LIBRARY lttng-ust PATHS ${LTTNG_LIBRARY_DIR})
+find_library(URCU_LIBRARY urcu-bp PATHS ${LTTNG_LIBRARY_DIR})
+find_library(UUID_LIBRARY uuid)
+
+set(LTTNG_LIBRARIES ${LTTNG_UST_LIBRARY} ${URCU_LIBRARY} ${UUID_LIBRARY})
+
+message(STATUS "Looking for lttng executable...")
+set(LTTNG_NAMES "lttng;lttng-ctl")
+# FIND_PROGRAM twice using NO_DEFAULT_PATH on first shot
+find_program(LTTNG_EXECUTABLE
+ NAMES ${LTTNG_NAMES}
+ PATHS ${LTTNG_PATH_HINT}/bin
+ NO_DEFAULT_PATH
+ DOC "The LTTNG command line tool")
+find_program(LTTNG_PROGRAM
+ NAMES ${LTTNG_NAMES}
+ PATHS ${LTTNG_PATH_HINT}/bin
+ DOC "The LTTNG command line tool")
+
+# handle the QUIETLY and REQUIRED arguments and set LTTNG_FOUND to TRUE if
+# all listed variables are TRUE
+include(FindPackageHandleStandardArgs)
+FIND_PACKAGE_HANDLE_STANDARD_ARGS(LTTNG DEFAULT_MSG LTTNG_INCLUDE_DIR LTTNG_LIBRARY_DIR)
+if (NOT LTTNG_FOUND)
+ if (LTTng_FIND_REQUIRED)
+ message(FATAL_ERROR "LTTng not found")
+ endif ()
+endif ()
+
+mark_as_advanced(LTTNG_INCLUDE_DIR)
+mark_as_advanced(LTTNG_LIBRARY_DIR)