增加几个CMake库查找工具
This commit is contained in:
parent
f6614e01b9
commit
e18ffbd6f4
22
cmake/FindValgrind.cmake
Normal file
22
cmake/FindValgrind.cmake
Normal file
@ -0,0 +1,22 @@
|
|||||||
|
# - FindValgrind
|
||||||
|
#
|
||||||
|
# Copyright (C) 2015 Valve Corporation
|
||||||
|
|
||||||
|
find_package(PkgConfig)
|
||||||
|
|
||||||
|
pkg_check_modules(PC_VALGRIND QUIET valgrind)
|
||||||
|
|
||||||
|
find_path(VALGRIND_INCLUDE_DIR NAMES valgrind.h memcheck.h
|
||||||
|
HINTS
|
||||||
|
${PC_VALGRIND_INCLUDEDIR}
|
||||||
|
${PC_VALGRIND_INCLUDE_DIRS}
|
||||||
|
)
|
||||||
|
|
||||||
|
include(FindPackageHandleStandardArgs)
|
||||||
|
find_package_handle_standard_args(Valgrind DEFAULT_MSG
|
||||||
|
VALGRIND_INCLUDE_DIR)
|
||||||
|
|
||||||
|
mark_as_advanced(VALGRIND_INCLUDE_DIR)
|
||||||
|
|
||||||
|
set(VALGRIND_INCLUDE_DIRS ${VALGRIND_INCLUDE_DIR})
|
||||||
|
set(VALGRIND_LIBRARIES "")
|
66
cmake/FindWayland.cmake
Normal file
66
cmake/FindWayland.cmake
Normal file
@ -0,0 +1,66 @@
|
|||||||
|
# Try to find Wayland on a Unix system
|
||||||
|
#
|
||||||
|
# This will define:
|
||||||
|
#
|
||||||
|
# WAYLAND_FOUND - True if Wayland is found
|
||||||
|
# WAYLAND_LIBRARIES - Link these to use Wayland
|
||||||
|
# WAYLAND_INCLUDE_DIR - Include directory for Wayland
|
||||||
|
# WAYLAND_DEFINITIONS - Compiler flags for using Wayland
|
||||||
|
#
|
||||||
|
# In addition the following more fine grained variables will be defined:
|
||||||
|
#
|
||||||
|
# WAYLAND_CLIENT_FOUND WAYLAND_CLIENT_INCLUDE_DIR WAYLAND_CLIENT_LIBRARIES
|
||||||
|
# WAYLAND_SERVER_FOUND WAYLAND_SERVER_INCLUDE_DIR WAYLAND_SERVER_LIBRARIES
|
||||||
|
# WAYLAND_EGL_FOUND WAYLAND_EGL_INCLUDE_DIR WAYLAND_EGL_LIBRARIES
|
||||||
|
#
|
||||||
|
# Copyright (c) 2013 Martin Gräßlin <mgraesslin@kde.org>
|
||||||
|
#
|
||||||
|
# Redistribution and use is allowed according to the terms of the BSD license.
|
||||||
|
# For details see the accompanying COPYING-CMAKE-SCRIPTS file.
|
||||||
|
|
||||||
|
IF (NOT WIN32)
|
||||||
|
IF (WAYLAND_INCLUDE_DIR AND WAYLAND_LIBRARIES)
|
||||||
|
# In the cache already
|
||||||
|
SET(WAYLAND_FIND_QUIETLY TRUE)
|
||||||
|
ENDIF ()
|
||||||
|
|
||||||
|
# Use pkg-config to get the directories and then use these values
|
||||||
|
# in the FIND_PATH() and FIND_LIBRARY() calls
|
||||||
|
FIND_PACKAGE(PkgConfig)
|
||||||
|
PKG_CHECK_MODULES(PKG_WAYLAND QUIET wayland-client wayland-server wayland-egl wayland-cursor)
|
||||||
|
|
||||||
|
SET(WAYLAND_DEFINITIONS ${PKG_WAYLAND_CFLAGS})
|
||||||
|
|
||||||
|
FIND_PATH(WAYLAND_CLIENT_INCLUDE_DIR NAMES wayland-client.h HINTS ${PKG_WAYLAND_INCLUDE_DIRS})
|
||||||
|
FIND_PATH(WAYLAND_SERVER_INCLUDE_DIR NAMES wayland-server.h HINTS ${PKG_WAYLAND_INCLUDE_DIRS})
|
||||||
|
FIND_PATH(WAYLAND_EGL_INCLUDE_DIR NAMES wayland-egl.h HINTS ${PKG_WAYLAND_INCLUDE_DIRS})
|
||||||
|
FIND_PATH(WAYLAND_CURSOR_INCLUDE_DIR NAMES wayland-cursor.h HINTS ${PKG_WAYLAND_INCLUDE_DIRS})
|
||||||
|
|
||||||
|
FIND_LIBRARY(WAYLAND_CLIENT_LIBRARIES NAMES wayland-client HINTS ${PKG_WAYLAND_LIBRARY_DIRS})
|
||||||
|
FIND_LIBRARY(WAYLAND_SERVER_LIBRARIES NAMES wayland-server HINTS ${PKG_WAYLAND_LIBRARY_DIRS})
|
||||||
|
FIND_LIBRARY(WAYLAND_EGL_LIBRARIES NAMES wayland-egl HINTS ${PKG_WAYLAND_LIBRARY_DIRS})
|
||||||
|
FIND_LIBRARY(WAYLAND_CURSOR_LIBRARIES NAMES wayland-cursor HINTS ${PKG_WAYLAND_LIBRARY_DIRS})
|
||||||
|
|
||||||
|
set(WAYLAND_INCLUDE_DIR ${WAYLAND_CLIENT_INCLUDE_DIR} ${WAYLAND_SERVER_INCLUDE_DIR} ${WAYLAND_EGL_INCLUDE_DIR} ${WAYLAND_CURSOR_INCLUDE_DIR})
|
||||||
|
|
||||||
|
set(WAYLAND_LIBRARIES ${WAYLAND_CLIENT_LIBRARIES} ${WAYLAND_SERVER_LIBRARIES} ${WAYLAND_EGL_LIBRARIES} ${WAYLAND_CURSOR_LIBRARIES})
|
||||||
|
|
||||||
|
list(REMOVE_DUPLICATES WAYLAND_INCLUDE_DIR)
|
||||||
|
|
||||||
|
include(FindPackageHandleStandardArgs)
|
||||||
|
|
||||||
|
FIND_PACKAGE_HANDLE_STANDARD_ARGS(WAYLAND_CLIENT DEFAULT_MSG WAYLAND_CLIENT_LIBRARIES WAYLAND_CLIENT_INCLUDE_DIR)
|
||||||
|
FIND_PACKAGE_HANDLE_STANDARD_ARGS(WAYLAND_SERVER DEFAULT_MSG WAYLAND_SERVER_LIBRARIES WAYLAND_SERVER_INCLUDE_DIR)
|
||||||
|
FIND_PACKAGE_HANDLE_STANDARD_ARGS(WAYLAND_EGL DEFAULT_MSG WAYLAND_EGL_LIBRARIES WAYLAND_EGL_INCLUDE_DIR)
|
||||||
|
FIND_PACKAGE_HANDLE_STANDARD_ARGS(WAYLAND_CURSOR DEFAULT_MSG WAYLAND_CURSOR_LIBRARIES WAYLAND_CURSOR_INCLUDE_DIR)
|
||||||
|
FIND_PACKAGE_HANDLE_STANDARD_ARGS(WAYLAND DEFAULT_MSG WAYLAND_LIBRARIES WAYLAND_INCLUDE_DIR)
|
||||||
|
|
||||||
|
MARK_AS_ADVANCED(
|
||||||
|
WAYLAND_INCLUDE_DIR WAYLAND_LIBRARIES
|
||||||
|
WAYLAND_CLIENT_INCLUDE_DIR WAYLAND_CLIENT_LIBRARIES
|
||||||
|
WAYLAND_SERVER_INCLUDE_DIR WAYLAND_SERVER_LIBRARIES
|
||||||
|
WAYLAND_EGL_INCLUDE_DIR WAYLAND_EGL_LIBRARIES
|
||||||
|
WAYLAND_CURSOR_INCLUDE_DIR WAYLAND_CURSOR_LIBRARIES
|
||||||
|
)
|
||||||
|
|
||||||
|
ENDIF ()
|
32
cmake/FindX11_XCB.cmake
Normal file
32
cmake/FindX11_XCB.cmake
Normal file
@ -0,0 +1,32 @@
|
|||||||
|
# - Try to find libX11-xcb
|
||||||
|
# Once done this will define
|
||||||
|
#
|
||||||
|
# X11_XCB_FOUND - system has libX11-xcb
|
||||||
|
# X11_XCB_LIBRARIES - Link these to use libX11-xcb
|
||||||
|
# X11_XCB_INCLUDE_DIR - the libX11-xcb include dir
|
||||||
|
# X11_XCB_DEFINITIONS - compiler switches required for using libX11-xcb
|
||||||
|
|
||||||
|
# Copyright (c) 2011 Fredrik Höglund <fredrik@kde.org>
|
||||||
|
# Copyright (c) 2008 Helio Chissini de Castro, <helio@kde.org>
|
||||||
|
# Copyright (c) 2007 Matthias Kretz, <kretz@kde.org>
|
||||||
|
#
|
||||||
|
# Redistribution and use is allowed according to the terms of the BSD license.
|
||||||
|
# For details see the accompanying COPYING-CMAKE-SCRIPTS file.
|
||||||
|
|
||||||
|
IF (NOT WIN32)
|
||||||
|
# use pkg-config to get the directories and then use these values
|
||||||
|
# in the FIND_PATH() and FIND_LIBRARY() calls
|
||||||
|
FIND_PACKAGE(PkgConfig)
|
||||||
|
PKG_CHECK_MODULES(PKG_X11_XCB QUIET x11-xcb)
|
||||||
|
|
||||||
|
SET(X11_XCB_DEFINITIONS ${PKG_X11_XCB_CFLAGS})
|
||||||
|
|
||||||
|
FIND_PATH(X11_XCB_INCLUDE_DIR NAMES X11/Xlib-xcb.h HINTS ${PKG_X11_XCB_INCLUDE_DIRS})
|
||||||
|
FIND_LIBRARY(X11_XCB_LIBRARIES NAMES X11-xcb HINTS ${PKG_X11_XCB_LIBRARY_DIRS})
|
||||||
|
|
||||||
|
include(FindPackageHandleStandardArgs)
|
||||||
|
FIND_PACKAGE_HANDLE_STANDARD_ARGS(X11_XCB DEFAULT_MSG X11_XCB_LIBRARIES X11_XCB_INCLUDE_DIR)
|
||||||
|
|
||||||
|
MARK_AS_ADVANCED(X11_XCB_INCLUDE_DIR X11_XCB_LIBRARIES)
|
||||||
|
ENDIF (NOT WIN32)
|
||||||
|
|
51
cmake/FindXCB.cmake
Normal file
51
cmake/FindXCB.cmake
Normal file
@ -0,0 +1,51 @@
|
|||||||
|
# - FindXCB
|
||||||
|
#
|
||||||
|
# Copyright (C) 2015 Valve Corporation
|
||||||
|
|
||||||
|
find_package(PkgConfig)
|
||||||
|
|
||||||
|
if(NOT XCB_FIND_COMPONENTS)
|
||||||
|
set(XCB_FIND_COMPONENTS xcb)
|
||||||
|
endif()
|
||||||
|
|
||||||
|
include(FindPackageHandleStandardArgs)
|
||||||
|
set(XCB_FOUND true)
|
||||||
|
set(XCB_INCLUDE_DIRS "")
|
||||||
|
set(XCB_LIBRARIES "")
|
||||||
|
foreach(comp ${XCB_FIND_COMPONENTS})
|
||||||
|
# component name
|
||||||
|
string(TOUPPER ${comp} compname)
|
||||||
|
string(REPLACE "-" "_" compname ${compname})
|
||||||
|
# header name
|
||||||
|
string(REPLACE "xcb-" "" headername xcb/${comp}.h)
|
||||||
|
# library name
|
||||||
|
set(libname ${comp})
|
||||||
|
|
||||||
|
pkg_check_modules(PC_${comp} QUIET ${comp})
|
||||||
|
|
||||||
|
find_path(${compname}_INCLUDE_DIR NAMES ${headername}
|
||||||
|
HINTS
|
||||||
|
${PC_${comp}_INCLUDEDIR}
|
||||||
|
${PC_${comp}_INCLUDE_DIRS}
|
||||||
|
)
|
||||||
|
|
||||||
|
find_library(${compname}_LIBRARY NAMES ${libname}
|
||||||
|
HINTS
|
||||||
|
${PC_${comp}_LIBDIR}
|
||||||
|
${PC_${comp}_LIBRARY_DIRS}
|
||||||
|
)
|
||||||
|
|
||||||
|
find_package_handle_standard_args(${comp}
|
||||||
|
FOUND_VAR ${comp}_FOUND
|
||||||
|
REQUIRED_VARS ${compname}_INCLUDE_DIR ${compname}_LIBRARY)
|
||||||
|
mark_as_advanced(${compname}_INCLUDE_DIR ${compname}_LIBRARY)
|
||||||
|
|
||||||
|
list(APPEND XCB_INCLUDE_DIRS ${${compname}_INCLUDE_DIR})
|
||||||
|
list(APPEND XCB_LIBRARIES ${${compname}_LIBRARY})
|
||||||
|
|
||||||
|
if(NOT ${comp}_FOUND)
|
||||||
|
set(XCB_FOUND false)
|
||||||
|
endif()
|
||||||
|
endforeach()
|
||||||
|
|
||||||
|
list(REMOVE_DUPLICATES XCB_INCLUDE_DIRS)
|
Loading…
x
Reference in New Issue
Block a user