summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorPierre Ossman <ossman@cendio.se>2022-05-30 10:02:05 +0200
committerPierre Ossman <ossman@cendio.se>2022-06-07 10:06:32 +0200
commit1527f0b6dbfa8695ca3d17ca51f711add12c6664 (patch)
treedd9d5e343670db950e8d93e9865cd612a826848b
parent115d3f883e2fceea0f2e7df0e570864a01178f4e (diff)
downloadtigervnc-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.cmake47
-rw-r--r--cmake/StaticBuild.cmake2
-rw-r--r--common/rfb/CMakeLists.txt5
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)