Copy and adapt FindCairo.cmake for Pixman
This commit is contained in:
parent
632cce7aa7
commit
78a5f450ce
|
@ -1,40 +1,148 @@
|
|||
# - Find Pixman
|
||||
# Find the Pixman libraries
|
||||
# - Try to find the PIXMAN library
|
||||
# Once done this will define
|
||||
#
|
||||
# This module defines the following variables:
|
||||
# PIXMAN_FOUND - true if PIXMAN_INCLUDE_DIR & PIXMAN_LIBRARY are found
|
||||
# PIXMAN_LIBRARIES - Set when PIXMAN_LIBRARY is found
|
||||
# PIXMAN_INCLUDE_DIRS - Set when PIXMAN_INCLUDE_DIR is found
|
||||
#
|
||||
# PIXMAN_INCLUDE_DIR - where to find pixman.h, etc.
|
||||
# PIXMAN_LIBRARY - the Pixman library
|
||||
# PIXMAN_ROOT_DIR - Set this variable to the root installation of PIXMAN
|
||||
#
|
||||
# Read-Only variables:
|
||||
# PIXMAN_FOUND - system has the PIXMAN library
|
||||
# PIXMAN_INCLUDE_DIR - the PIXMAN include directory
|
||||
# PIXMAN_LIBRARIES - The libraries needed to use PIXMAN
|
||||
# PIXMAN_VERSION - This is set to $major.$minor.$revision (eg. 0.9.8)
|
||||
|
||||
#=============================================================================
|
||||
# Copyright 2013 Marc-Andre Moreau <marcandre.moreau@gmail.com>
|
||||
# Copyright 2012 Dmitry Baryshnikov <polimax at mail dot ru>
|
||||
# Copyright 2017 Simon Richter <Simon.Richter at hogyros dot de>
|
||||
#
|
||||
# Licensed under the Apache License, Version 2.0 (the "License");
|
||||
# you may not use this file except in compliance with the License.
|
||||
# You may obtain a copy of the License at
|
||||
# Distributed under the OSI-approved BSD License (the "License");
|
||||
# see accompanying file Copyright.txt for details.
|
||||
#
|
||||
# http://www.apache.org/licenses/LICENSE-2.0
|
||||
#
|
||||
# Unless required by applicable law or agreed to in writing, software
|
||||
# distributed under the License is distributed on an "AS IS" BASIS,
|
||||
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
# See the License for the specific language governing permissions and
|
||||
# limitations under the License.
|
||||
# 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(PIXMAN_INCLUDE_DIR NAMES pixman.h PATH_SUFFIXES pixman-1)
|
||||
find_package(PkgConfig)
|
||||
|
||||
find_library(PIXMAN_LIBRARY NAMES pixman-1)
|
||||
if(PKG_CONFIG_FOUND)
|
||||
pkg_check_modules(_PIXMAN pixman-1)
|
||||
endif (PKG_CONFIG_FOUND)
|
||||
|
||||
find_package_handle_standard_args(pixman-1 DEFAULT_MSG PIXMAN_LIBRARY PIXMAN_INCLUDE_DIR)
|
||||
SET(_PIXMAN_ROOT_HINTS
|
||||
$ENV{PIXMAN}
|
||||
${PIXMAN_ROOT_DIR}
|
||||
)
|
||||
SET(_PIXMAN_ROOT_PATHS
|
||||
$ENV{PIXMAN}/src
|
||||
/usr
|
||||
/usr/local
|
||||
)
|
||||
SET(_PIXMAN_ROOT_HINTS_AND_PATHS
|
||||
HINTS ${_PIXMAN_ROOT_HINTS}
|
||||
PATHS ${_PIXMAN_ROOT_PATHS}
|
||||
)
|
||||
|
||||
if(PIXMAN-1_FOUND)
|
||||
set(PIXMAN_LIBRARIES ${PIXMAN_LIBRARY})
|
||||
set(PIXMAN_INCLUDE_DIRS ${PIXMAN_INCLUDE_DIR})
|
||||
FIND_PATH(PIXMAN_INCLUDE_DIR
|
||||
NAMES
|
||||
pixman.h
|
||||
HINTS
|
||||
${_PIXMAN_INCLUDEDIR}
|
||||
${_PIXMAN_ROOT_HINTS_AND_PATHS}
|
||||
PATH_SUFFIXES
|
||||
include
|
||||
"include/pixman-1"
|
||||
)
|
||||
|
||||
IF(NOT PKGCONFIG_FOUND AND WIN32 AND NOT CYGWIN)
|
||||
# MINGW should go here too
|
||||
IF(MSVC)
|
||||
# Implementation details:
|
||||
# We are using the libraries located in the VC subdir instead of the parent directory eventhough :
|
||||
FIND_LIBRARY(PIXMAN
|
||||
NAMES
|
||||
pixman-1
|
||||
${_PIXMAN_ROOT_HINTS_AND_PATHS}
|
||||
PATH_SUFFIXES
|
||||
"lib"
|
||||
"VC"
|
||||
"lib/VC"
|
||||
)
|
||||
|
||||
MARK_AS_ADVANCED(PIXMAN)
|
||||
set( PIXMAN_LIBRARIES ${PIXMAN})
|
||||
ELSEIF(MINGW)
|
||||
# same player, for MingW
|
||||
FIND_LIBRARY(PIXMAN
|
||||
NAMES
|
||||
pixman-1
|
||||
${_PIXMAN_ROOT_HINTS_AND_PATHS}
|
||||
PATH_SUFFIXES
|
||||
"lib"
|
||||
"lib/MinGW"
|
||||
)
|
||||
|
||||
MARK_AS_ADVANCED(PIXMAN)
|
||||
set( PIXMAN_LIBRARIES ${PIXMAN})
|
||||
ELSE(MSVC)
|
||||
# Not sure what to pick for -say- intel, let's use the toplevel ones and hope someone report issues:
|
||||
FIND_LIBRARY(PIXMAN
|
||||
NAMES
|
||||
pixman-1
|
||||
HINTS
|
||||
${_PIXMAN_LIBDIR}
|
||||
${_PIXMAN_ROOT_HINTS_AND_PATHS}
|
||||
PATH_SUFFIXES
|
||||
lib
|
||||
)
|
||||
|
||||
MARK_AS_ADVANCED(PIXMAN)
|
||||
set( PIXMAN_LIBRARIES ${PIXMAN} )
|
||||
ENDIF(MSVC)
|
||||
ELSE()
|
||||
|
||||
FIND_LIBRARY(PIXMAN_LIBRARY
|
||||
NAMES
|
||||
pixman-1
|
||||
HINTS
|
||||
${_PIXMAN_LIBDIR}
|
||||
${_PIXMAN_ROOT_HINTS_AND_PATHS}
|
||||
PATH_SUFFIXES
|
||||
"lib"
|
||||
"local/lib"
|
||||
)
|
||||
|
||||
MARK_AS_ADVANCED(PIXMAN_LIBRARY)
|
||||
|
||||
# compat defines
|
||||
SET(PIXMAN_LIBRARIES ${PIXMAN_LIBRARY})
|
||||
|
||||
ENDIF()
|
||||
|
||||
#message( STATUS "Pixman_FIND_VERSION=${Pixman_FIND_VERSION}.")
|
||||
#message( STATUS "PIXMAN_INCLUDE_DIR=${PIXMAN_INCLUDE_DIR}.")
|
||||
|
||||
# Fetch version from pixman-version.h if a version was requested by find_package()
|
||||
if(PIXMAN_INCLUDE_DIR AND Pixman_FIND_VERSION)
|
||||
file(READ "${PIXMAN_INCLUDE_DIR}/pixman-version.h" _PIXMAN_VERSION_H_CONTENTS)
|
||||
string(REGEX REPLACE "^(.*\n)?#define[ \t]+PIXMAN_VERSION_MAJOR[ \t]+([0-9]+).*"
|
||||
"\\2" PIXMAN_VERSION_MAJOR ${_PIXMAN_VERSION_H_CONTENTS})
|
||||
string(REGEX REPLACE "^(.*\n)?#define[ \t]+PIXMAN_VERSION_MINOR[ \t]+([0-9]+).*"
|
||||
"\\2" PIXMAN_VERSION_MINOR ${_PIXMAN_VERSION_H_CONTENTS})
|
||||
string(REGEX REPLACE "^(.*\n)?#define[ \t]+PIXMAN_VERSION_MICRO[ \t]+([0-9]+).*"
|
||||
"\\2" PIXMAN_VERSION_MICRO ${_PIXMAN_VERSION_H_CONTENTS})
|
||||
set(PIXMAN_VERSION ${PIXMAN_VERSION_MAJOR}.${PIXMAN_VERSION_MINOR}.${PIXMAN_VERSION_MICRO}
|
||||
CACHE INTERNAL "The version number for Pixman libraries")
|
||||
endif()
|
||||
|
||||
mark_as_advanced(PIXMAN_INCLUDE_DIR PIXMAN_LIBRARY)
|
||||
include(FindPackageHandleStandardArgs)
|
||||
|
||||
find_package_handle_standard_args(Pixman
|
||||
REQUIRED_VARS
|
||||
PIXMAN_LIBRARIES
|
||||
PIXMAN_INCLUDE_DIR
|
||||
VERSION_VAR
|
||||
PIXMAN_VERSION
|
||||
)
|
||||
|
||||
MARK_AS_ADVANCED(PIXMAN_INCLUDE_DIR PIXMAN_LIBRARIES)
|
||||
|
|
Loading…
Reference in New Issue