--- /dev/null
+#.rst:
+# FindLTTngUST
+# ------------
+#
+# This module finds the `LTTng-UST <http://lttng.org/>`__ library.
+#
+# Imported target
+# ^^^^^^^^^^^^^^^
+#
+# This module defines the following :prop_tgt:`IMPORTED` target:
+#
+# ``LTTng::UST``
+# The LTTng-UST library, if found
+#
+# Result variables
+# ^^^^^^^^^^^^^^^^
+#
+# This module sets the following
+#
+# ``LTTNGUST_FOUND``
+# ``TRUE`` if system has LTTng-UST
+# ``LTTNGUST_INCLUDE_DIRS``
+# The LTTng-UST include directories
+# ``LTTNGUST_LIBRARIES``
+# The libraries needed to use LTTng-UST
+# ``LTTNGUST_VERSION_STRING``
+# The LTTng-UST version
+# ``LTTNGUST_HAS_TRACEF``
+# ``TRUE`` if the ``tracef()`` API is available in the system's LTTng-UST
+# ``LTTNGUST_HAS_TRACELOG``
+# ``TRUE`` if the ``tracelog()`` API is available in the system's LTTng-UST
+
+#=============================================================================
+# Copyright 2016 Kitware, Inc.
+# Copyright 2016 Philippe Proulx <pproulx@efficios.com>
+#
+# Distributed under the OSI-approved BSD License (the "License");
+# see accompanying file Copyright.txt for details.
+#
+# This software is distributed WITHOUT ANY WARRANTY; without even the
+# implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+# See the License for more information.
+#=============================================================================
+# (To distribute this file outside of CMake, substitute the full
+# License text for the above reference.)
+
+find_path(LTTNGUST_INCLUDE_DIRS NAMES lttng/tracepoint.h)
+find_library(LTTNGUST_LIBRARIES NAMES lttng-ust)
+
+if(LTTNGUST_INCLUDE_DIRS AND LTTNGUST_LIBRARIES)
+ # find tracef() and tracelog() support
+ set(LTTNGUST_HAS_TRACEF 0)
+ set(LTTNGUST_HAS_TRACELOG 0)
+
+ if(EXISTS "${LTTNGUST_INCLUDE_DIRS}/lttng/tracef.h")
+ set(LTTNGUST_HAS_TRACEF TRUE)
+ endif()
+
+ if(EXISTS "${LTTNGUST_INCLUDE_DIRS}/lttng/tracelog.h")
+ set(LTTNGUST_HAS_TRACELOG TRUE)
+ endif()
+
+ # get version
+ set(lttngust_version_file "${LTTNGUST_INCLUDE_DIRS}/lttng/ust-version.h")
+
+ if(EXISTS "${lttngust_version_file}")
+ file(STRINGS "${lttngust_version_file}" lttngust_version_major_string
+ REGEX "^[\t ]*#define[\t ]+LTTNG_UST_MAJOR_VERSION[\t ]+[0-9]+[\t ]*$")
+ file(STRINGS "${lttngust_version_file}" lttngust_version_minor_string
+ REGEX "^[\t ]*#define[\t ]+LTTNG_UST_MINOR_VERSION[\t ]+[0-9]+[\t ]*$")
+ file(STRINGS "${lttngust_version_file}" lttngust_version_patch_string
+ REGEX "^[\t ]*#define[\t ]+LTTNG_UST_PATCHLEVEL_VERSION[\t ]+[0-9]+[\t ]*$")
+ string(REGEX REPLACE ".*([0-9]+).*" "\\1"
+ lttngust_v_major "${lttngust_version_major_string}")
+ string(REGEX REPLACE ".*([0-9]+).*" "\\1"
+ lttngust_v_minor "${lttngust_version_minor_string}")
+ string(REGEX REPLACE ".*([0-9]+).*" "\\1"
+ lttngust_v_patch "${lttngust_version_patch_string}")
+ set(LTTNGUST_VERSION_STRING
+ "${lttngust_v_major}.${lttngust_v_minor}.${lttngust_v_patch}")
+ unset(lttngust_version_major_string)
+ unset(lttngust_version_minor_string)
+ unset(lttngust_version_patch_string)
+ unset(lttngust_v_major)
+ unset(lttngust_v_minor)
+ unset(lttngust_v_patch)
+ endif()
+
+ unset(lttngust_version_file)
+
+ if(NOT TARGET LTTng::UST)
+ add_library(LTTng::UST UNKNOWN IMPORTED)
+ set_target_properties(LTTng::UST PROPERTIES
+ INTERFACE_INCLUDE_DIRECTORIES "${LTTNGUST_INCLUDE_DIRS}"
+ INTERFACE_LINK_LIBRARIES ${CMAKE_DL_LIBS}
+ IMPORTED_LINK_INTERFACE_LANGUAGES "C"
+ IMPORTED_LOCATION "${LTTNGUST_LIBRARIES}")
+ endif()
+
+ # add libdl to required libraries
+ set(LTTNGUST_LIBRARIES ${LTTNGUST_LIBRARIES} ${CMAKE_DL_LIBS})
+endif()
+
+# handle the QUIETLY and REQUIRED arguments and set LTTNGUST_FOUND to
+# TRUE if all listed variables are TRUE
+include(FindPackageHandleStandardArgs)
+find_package_handle_standard_args(LTTngUST FOUND_VAR LTTNGUST_FOUND
+ REQUIRED_VARS LTTNGUST_LIBRARIES
+ LTTNGUST_INCLUDE_DIRS
+ VERSION_VAR LTTNGUST_VERSION_STRING)
+mark_as_advanced(LTTNGUST_LIBRARIES LTTNGUST_INCLUDE_DIRS)
+++ /dev/null
-# - 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
-
-if(LTTNG_PATH_HINT)
- message(STATUS "FindLTTng: using PATH HINT: ${LTTNG_PATH_HINT}")
-else()
- set(LTTNG_PATH_HINT)
-endif()
-
-#One can add his/her own builtin PATH.
-#FILE(TO_CMAKE_PATH "/DATA/ERIC/LTTng" MYPATH)
-#list(APPEND LTTNG_PATH_HINT ${MYPATH})
-
-find_path(LTTNG_INCLUDE_DIR
- NAMES lttng/tracepoint.h
- PATHS ${LTTNG_PATH_HINT}
- PATH_SUFFIXES include
- DOC "The LTTng include headers")
-
-find_path(LTTNG_LIBRARY_DIR
- NAMES liblttng-ust.so
- PATHS ${LTTNG_PATH_HINT}
- PATH_SUFFIXES lib lib64
- 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_EXECUTABLE
- NAMES ${LTTNG_NAMES}
- PATHS ${LTTNG_PATH_HINT}/bin
- DOC "The LTTNG command line tool")
-find_program(LTTNG_GEN_TP NAMES lttng-gen-tp
- DOC "The lttng-gen-tp command line tool")
-
-# handle the QUIETLY and REQUIRED arguments and set PRELUDE_FOUND to TRUE if
-# all listed variables are TRUE
-include(FindPackageHandleStandardArgs)
-FIND_PACKAGE_HANDLE_STANDARD_ARGS(LTTNG
- REQUIRED_VARS LTTNG_INCLUDE_DIR LTTNG_LIBRARY_DIR LTTNG_GEN_TP)
-# VERSION FPHSA options not handled by CMake version < 2.8.2)
-# VERSION_VAR)
-mark_as_advanced(LTTNG_INCLUDE_DIR)
-mark_as_advanced(LTTNG_LIBRARY_DIR)