vcpkg/ports/cairomm/cmake/FindSigC++.cmake

112 lines
3.1 KiB
CMake

# - Try to find SIGC++
# Once done this will define
#
# SIGC++_ROOT_DIR - Set this variable to the root installation of SIGC++
# SIGC++_FOUND - system has SIGC++
# SIGC++_INCLUDE_DIRS - the SIGC++ include directory
# SIGC++_LIBRARIES - Link these to use SIGC++
#
# Copyright (c) 2008 Joshua L. Blocher <verbalshadow at gmail dot com>
# Copyright (c) 2012 Dmitry Baryshnikov <polimax at mail dot ru>
# Copyright (c) 2013-2017 Mikhail Paulyshka <me at mixaill dot tk>
#
# Distributed under the OSI-approved BSD License
#
if (NOT WIN32)
find_package(PkgConfig)
if (PKG_CONFIG_FOUND)
pkg_check_modules(_SIGC++ sigc++-2.0)
SET(SIGC++_VERSION ${_SIGC++_VERSION})
endif (PKG_CONFIG_FOUND)
endif (NOT WIN32)
SET(_SIGC++_ROOT_HINTS
$ENV{SIGC++}
${CMAKE_FIND_ROOT_PATH}
${SIGC++_ROOT_DIR}
)
SET(_SIGC++_ROOT_PATHS
$ENV{SIGC++}/src
/usr
/usr/local
)
SET(_SIGC++_ROOT_HINTS_AND_PATHS
HINTS ${_SIGC++_ROOT_HINTS}
PATHS ${_SIGC++_ROOT_PATHS}
)
FIND_PATH(SIGC++_INCLUDE_DIR
NAMES
"sigc++/sigc++.h"
HINTS
${_SIGC++_INCLUDEDIR}
${_SIGC++_ROOT_HINTS_AND_PATHS}
PATH_SUFFIXES
include
"include/sigc++-2.0"
)
find_path(SIGC++_CONFIG_INCLUDE_DIR
NAMES
sigc++config.h
HINTS
${_SIGC++_LIBDIR}
${_SIGC++_INCLUDEDIR}
${_SIGC++_ROOT_HINTS_AND_PATHS}
PATH_SUFFIXES
include
lib
"sigc++-2.0/include"
"lib/sigc++-2.0"
"lib/sigc++-2.0/include"
)
FIND_LIBRARY(SIGC++_LIBRARY
NAMES
sigc-2.0
HINTS
${_SIGC++_LIBDIR}
${_SIGC++_ROOT_HINTS_AND_PATHS}
PATH_SUFFIXES
"lib"
"local/lib"
)
SET(SIGC++_LIBRARIES
${SIGC++_LIBRARY}
)
SET(SIGC++_INCLUDE_DIRS
${SIGC++_INCLUDE_DIR}
${SIGC++_CONFIG_INCLUDE_DIR}
)
if (NOT SIGC++_VERSION)
if (EXISTS "${SIGC++_CONFIG_INCLUDE_DIR}/sigc++config.h")
file(READ "${SIGC++_CONFIG_INCLUDE_DIR}/sigc++config.h" SIGC++_VERSION_CONTENT)
string(REGEX MATCH "#define +SIGCXX_MAJOR_VERSION +([0-9]+)" _dummy "${SIGC++_VERSION_CONTENT}")
set(SIGC++_VERSION_MAJOR "${CMAKE_MATCH_1}")
string(REGEX MATCH "#define +SIGCXX_MINOR_VERSION +([0-9]+)" _dummy "${SIGC++_VERSION_CONTENT}")
set(SIGC++_VERSION_MINOR "${CMAKE_MATCH_1}")
string(REGEX MATCH "#define +SIGCXX_MICRO_VERSION +([0-9]+)" _dummy "${SIGC++_VERSION_CONTENT}")
set(SIGC++_VERSION_MICRO "${CMAKE_MATCH_1}")
set(SIGC++_VERSION "${SIGC++_VERSION_MAJOR}.${SIGC++_VERSION_MINOR}.${SIGC++_VERSION_MICRO}")
endif (EXISTS "${SIGC++_CONFIG_INCLUDE_DIR}/sigc++config.h")
endif(NOT SIGC++_VERSION)
include(FindPackageHandleStandardArgs)
find_package_handle_standard_args(SIGC++
REQUIRED_VARS SIGC++_LIBRARIES SIGC++_INCLUDE_DIRS
VERSION_VAR SIGC++_VERSION
FAIL_MESSAGE "Could NOT find SIGC++, try to set the path to SIGC++ root folder in the system variable SIGC++"
)
MARK_AS_ADVANCED(SIGC++_CONFIG_INCLUDE_DIR SIGC++_INCLUDE_DIR SIGC++_INCLUDE_DIRS SIGC++_LIBRARY SIGC++_LIBRARIES)