diff options
author | Pierre Ossman <ossman@cendio.se> | 2022-05-30 10:02:05 +0200 |
---|---|---|
committer | Pierre Ossman <ossman@cendio.se> | 2022-06-07 10:06:32 +0200 |
commit | 1527f0b6dbfa8695ca3d17ca51f711add12c6664 (patch) | |
tree | dd9d5e343670db950e8d93e9865cd612a826848b | |
parent | 115d3f883e2fceea0f2e7df0e570864a01178f4e (diff) | |
download | tigervnc-1527f0b6dbfa8695ca3d17ca51f711add12c6664.tar.gz tigervnc-1527f0b6dbfa8695ca3d17ca51f711add12c6664.zip |
Use pkg-config for pixman
This is the standard method of finding it on Unix systems, so make sure
we use it. Still keep a fallback, though, for other systems, e.g.
Windows.
-rw-r--r-- | cmake/Modules/FindPixman.cmake | 47 | ||||
-rw-r--r-- | cmake/StaticBuild.cmake | 2 | ||||
-rw-r--r-- | common/rfb/CMakeLists.txt | 5 |
3 files changed, 12 insertions, 42 deletions
diff --git a/cmake/Modules/FindPixman.cmake b/cmake/Modules/FindPixman.cmake index 7bfca77b..04fe481f 100644 --- a/cmake/Modules/FindPixman.cmake +++ b/cmake/Modules/FindPixman.cmake @@ -1,40 +1,9 @@ -# - Find Pixman -# Find the Pixman libraries -# -# 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 -# - -#============================================================================= -# Copyright 2013 Marc-Andre Moreau <marcandre.moreau@gmail.com> -# -# 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 -# -# 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. -#============================================================================= - -find_path(PIXMAN_INCLUDE_DIR NAMES pixman.h PATH_SUFFIXES pixman-1) - -find_library(PIXMAN_LIBRARY NAMES pixman-1) - -find_package_handle_standard_args(pixman-1 DEFAULT_MSG PIXMAN_LIBRARY PIXMAN_INCLUDE_DIR) - -if(PIXMAN-1_FOUND) - set(PIXMAN_LIBRARIES ${PIXMAN_LIBRARY}) - set(PIXMAN_INCLUDE_DIRS ${PIXMAN_INCLUDE_DIR}) +find_package(PkgConfig) + +if (PKG_CONFIG_FOUND) + pkg_check_modules(PIXMAN pixman-1) +else() + find_path(PIXMAN_INCLUDE_DIRS NAMES pixman.h PATH_SUFFIXES pixman-1) + find_library(PIXMAN_LIBRARIES NAMES pixman-1) + find_package_handle_standard_args(PIXMAN DEFAULT_MSG PIXMAN_LIBRARIES PIXMAN_INCLUDE_DIRS) endif() - -mark_as_advanced(PIXMAN_INCLUDE_DIR PIXMAN_LIBRARY) diff --git a/cmake/StaticBuild.cmake b/cmake/StaticBuild.cmake index b96d800b..7ce219de 100644 --- a/cmake/StaticBuild.cmake +++ b/cmake/StaticBuild.cmake @@ -20,7 +20,7 @@ if(BUILD_STATIC) set(JPEG_LIBRARIES "-Wl,-Bstatic -ljpeg -Wl,-Bdynamic") set(ZLIB_LIBRARIES "-Wl,-Bstatic -lz -Wl,-Bdynamic") - set(PIXMAN_LIBRARY "-Wl,-Bstatic -lpixman-1 -Wl,-Bdynamic") + set(PIXMAN_LIBRARIES "-Wl,-Bstatic -lpixman-1 -Wl,-Bdynamic") # gettext is included in libc on many unix systems if(NOT LIBC_HAS_DGETTEXT) diff --git a/common/rfb/CMakeLists.txt b/common/rfb/CMakeLists.txt index 07728453..1b43ed11 100644 --- a/common/rfb/CMakeLists.txt +++ b/common/rfb/CMakeLists.txt @@ -1,4 +1,4 @@ -include_directories(${CMAKE_SOURCE_DIR}/common ${JPEG_INCLUDE_DIR} ${PIXMAN_INCLUDE_DIR}) +include_directories(${CMAKE_SOURCE_DIR}/common ${JPEG_INCLUDE_DIR} ${PIXMAN_INCLUDE_DIRS}) add_library(rfb STATIC Blacklist.cxx @@ -65,7 +65,8 @@ add_library(rfb STATIC util.cxx) target_link_libraries(rfb os rdr) -target_link_libraries(rfb ${JPEG_LIBRARIES} ${PIXMAN_LIBRARY}) +target_link_libraries(rfb ${JPEG_LIBRARIES} ${PIXMAN_LIBRARIES}) +target_link_directories(rfb PUBLIC ${PIXMAN_LIBRARY_DIRS}) if(ENABLE_H264 AND NOT H264_LIBS STREQUAL "NONE") target_sources(rfb PRIVATE H264Decoder.cxx H264DecoderContext.cxx) |