FindGTK3.cmake (ettercap-0.8.3) | : | FindGTK3.cmake (ettercap-0.8.3.1) | ||
---|---|---|---|---|
# - FindGTK3.cmake | # - FindGTK3.cmake | |||
# This module can find the GTK3 widget libraries and several of its other | # This module can find the GTK3 widget libraries and several of its other | |||
# optional components like gtkmm, glade, and glademm. | # optional components like gtkmm, glade, and glademm. | |||
# | # | |||
# NOTE: If you intend to use version checking, CMake 2.6.2 or later is | # NOTE: If you intend to use version checking, CMake 2.6.2 or later is | |||
# required. | # required. | |||
# | # | |||
# Specify one or more of the following components | # Specify one or more of the following components | |||
# as you call this find module. See example below. | # as you call this find module. See example below. | |||
# | # | |||
# gtk | # gtk | |||
# gtkmm | # gtkmm | |||
# glade | # glade | |||
# glademm | # glademm | |||
# | # | |||
# The following variables will be defined for your use | # The following variables will be defined for your use | |||
skipping to change at line 52 | skipping to change at line 52 | |||
# if(GTK3_FOUND) | # if(GTK3_FOUND) | |||
# include_directories(${GTK3_INCLUDE_DIRS}) | # include_directories(${GTK3_INCLUDE_DIRS}) | |||
# add_executable(mygui mygui.cc) | # add_executable(mygui mygui.cc) | |||
# target_link_libraries(mygui ${GTK3_LIBRARIES}) | # target_link_libraries(mygui ${GTK3_LIBRARIES}) | |||
# endif() | # endif() | |||
# | # | |||
#============================================================================= | #============================================================================= | |||
# Copyright 2009 Kitware, Inc. | # Copyright 2009 Kitware, Inc. | |||
# Copyright 2008-2009 Philip Lowman <philip@yhbt.com> | # Copyright 2008-2009 Philip Lowman <philip@yhbt.com> | |||
# Copyright 2014-2018 Ettercap Development Team <info@ettercap-project.org> | ||||
# | # | |||
# Distributed under the OSI-approved BSD License (the "License"); | # Distributed under the OSI-approved BSD License (the "License"); | |||
# see accompanying file Copyright.txt for details. | # see accompanying file Copyright.txt for details. | |||
# | # | |||
# This software is distributed WITHOUT ANY WARRANTY; without even the | # This software is distributed WITHOUT ANY WARRANTY; without even the | |||
# implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. | # implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. | |||
# See the License for more information. | # See the License for more information. | |||
#============================================================================= | #============================================================================= | |||
# (To distribute this file outside of CMake, substitute the full | # (To distribute this file outside of CMake, substitute the full | |||
# License text for the above reference.) | # License text for the above reference.) | |||
# Version 0.1 (5/13/2011) | # Version 0.1 (5/13/2011) | |||
# * First cut at a GTK3 version (Heavily derived from | # * First cut at a GTK3 version (Heavily derived from | |||
# FindGTK2.cmake) | # FindGTK2.cmake) | |||
# Version 0.2 (3/02/2018) | ||||
# * Run git diff against this file to see all changes | ||||
#============================================================= | #============================================================= | |||
# _GTK3_GET_VERSION | # _GTK3_GET_VERSION | |||
# Internal function to parse the version number in gtkversion.h | # Internal function to parse the version number in gtkversion.h | |||
# _OUT_major = Major version number | # _OUT_major = Major version number | |||
# _OUT_minor = Minor version number | # _OUT_minor = Minor version number | |||
# _OUT_micro = Micro version number | # _OUT_micro = Micro version number | |||
# _gtkversion_hdr = Header file to parse | # _gtkversion_hdr = Header file to parse | |||
#============================================================= | #============================================================= | |||
function(_GTK3_GET_VERSION _OUT_major _OUT_minor _OUT_micro _gtkversion_hdr) | function(_GTK3_GET_VERSION _OUT_major _OUT_minor _OUT_micro _gtkversion_hdr) | |||
file(READ ${_gtkversion_hdr} _contents) | file(READ ${_gtkversion_hdr} _contents) | |||
if(_contents) | if(_contents) | |||
string(REGEX REPLACE ".*#define GTK_MAJOR_VERSION[ \t]+\\(([0-9]+)\\).*" "\\ | string(REGEX REPLACE | |||
1" ${_OUT_major} "${_contents}") | ".*#define GTK_MAJOR_VERSION[ \t]+\\(([0-9]+)\\).*" | |||
string(REGEX REPLACE ".*#define GTK_MINOR_VERSION[ \t]+\\(([0-9]+)\\).*" "\\ | "\\1" ${_OUT_major} "${_contents}" | |||
1" ${_OUT_minor} "${_contents}") | ) | |||
string(REGEX REPLACE ".*#define GTK_MICRO_VERSION[ \t]+\\(([0-9]+)\\).*" "\\ | ||||
1" ${_OUT_micro} "${_contents}") | string(REGEX REPLACE | |||
".*#define GTK_MINOR_VERSION[ \t]+\\(([0-9]+)\\).*" | ||||
"\\1" ${_OUT_minor} "${_contents}" | ||||
) | ||||
string(REGEX REPLACE | ||||
".*#define GTK_MICRO_VERSION[ \t]+\\(([0-9]+)\\).*" | ||||
"\\1" ${_OUT_micro} "${_contents}" | ||||
) | ||||
if(NOT ${_OUT_major} MATCHES "[0-9]+") | if(NOT ${_OUT_major} MATCHES "[0-9]+") | |||
message(FATAL_ERROR "Version parsing failed for GTK3_MAJOR_VERSION!") | message(FATAL_ERROR "Version parsing failed for GTK3_MAJOR_VERSION!") | |||
endif() | endif() | |||
if(NOT ${_OUT_minor} MATCHES "[0-9]+") | if(NOT ${_OUT_minor} MATCHES "[0-9]+") | |||
message(FATAL_ERROR "Version parsing failed for GTK3_MINOR_VERSION!") | message(FATAL_ERROR "Version parsing failed for GTK3_MINOR_VERSION!") | |||
endif() | endif() | |||
if(NOT ${_OUT_micro} MATCHES "[0-9]+") | if(NOT ${_OUT_micro} MATCHES "[0-9]+") | |||
message(FATAL_ERROR "Version parsing failed for GTK3_MICRO_VERSION!") | message(FATAL_ERROR "Version parsing failed for GTK3_MICRO_VERSION!") | |||
endif() | endif() | |||
skipping to change at line 129 | skipping to change at line 142 | |||
atkmm-1.0 | atkmm-1.0 | |||
cairo | cairo | |||
cairomm-1.0 | cairomm-1.0 | |||
gdk-pixbuf-2.0 | gdk-pixbuf-2.0 | |||
gdkmm-2.4 | gdkmm-2.4 | |||
giomm-2.4 | giomm-2.4 | |||
gtk-3.0 | gtk-3.0 | |||
gtkmm-2.4 | gtkmm-2.4 | |||
libglade-2.0 | libglade-2.0 | |||
libglademm-2.4 | libglademm-2.4 | |||
harfbuzz | ||||
pango-1.0 | pango-1.0 | |||
pangomm-1.4 | pangomm-1.4 | |||
sigc++-2.2 | sigc++-2.2 | |||
gtk-unix-print-2.0) | gtk-unix-print-2.0) | |||
set(_suffixes) | set(_suffixes) | |||
foreach(_d ${_relatives}) | foreach(_d ${_relatives}) | |||
list(APPEND _suffixes ${_d}) | list(APPEND _suffixes ${_d}) | |||
list(APPEND _suffixes ${_d}/include) # for /usr/lib/gtk-2.0/include | list(APPEND _suffixes ${_d}/include) # for /usr/lib/gtk-2.0/include | |||
endforeach() | endforeach() | |||
if(GTK3_DEBUG) | if(GTK3_DEBUG) | |||
message(STATUS "[FindGTK3.cmake:${CMAKE_CURRENT_LIST_LINE}] " | message(STATUS "[FindGTK3.cmake:${CMAKE_CURRENT_LIST_LINE}] " | |||
"include suffixes = ${_suffixes}") | "include suffixes = ${_suffixes}") | |||
endif() | endif() | |||
find_path(${_var} ${_hdr} | find_path(${_var} ${_hdr} | |||
PATHS | PATHS | |||
# On Windows, glibconfig.h is located | ||||
# under $PREFIX/lib/glib-2.0/include. | ||||
C:/GTK/lib/glib-2.0/include | ||||
C:/msys64/$ENV{MSYSTEM}/lib/glib-2.0 | ||||
# end | ||||
/usr/local/lib64 | /usr/local/lib64 | |||
/usr/local/lib | /usr/local/lib | |||
# fix for Ubuntu == 11.04 (Natty Narwhal) | # fix for Ubuntu == 11.04 (Natty Narwhal) | |||
/usr/lib/i386-linux-gnu/ | /usr/lib/i386-linux-gnu/ | |||
/usr/lib/x86_64-linux-gnu/ | /usr/lib/x86_64-linux-gnu/ | |||
# end | # end | |||
# fix for Ubuntu >= 11.10 (Oneiric Ocelot) | # fix for Ubuntu >= 11.10 (Oneiric Ocelot) | |||
/usr/lib/${CMAKE_LIBRARY_ARCHITECTURE} | /usr/lib/${CMAKE_LIBRARY_ARCHITECTURE} | |||
# end | # end | |||
/usr/lib64 | /usr/lib64 | |||
/usr/lib | /usr | |||
/opt/gnome/include | /opt/gnome | |||
/opt/gnome/lib | /usr/openwin | |||
/opt/openwin/include | /sw | |||
/usr/openwin/lib | /opt/local | |||
/sw/include | $ENV{GTKMM_BASEPATH} | |||
/sw/lib | [HKEY_CURRENT_USER\\SOFTWARE\\gtkmm\\2.4;Path] | |||
/opt/local/include | [HKEY_LOCAL_MACHINE\\SOFTWARE\\gtkmm\\2.4;Path] | |||
/opt/local/lib | ||||
$ENV{GTKMM_BASEPATH}/include | ||||
$ENV{GTKMM_BASEPATH}/lib | ||||
[HKEY_CURRENT_USER\\SOFTWARE\\gtkmm\\2.4;Path]/include | ||||
[HKEY_CURRENT_USER\\SOFTWARE\\gtkmm\\2.4;Path]/lib | ||||
[HKEY_LOCAL_MACHINE\\SOFTWARE\\gtkmm\\2.4;Path]/include | ||||
[HKEY_LOCAL_MACHINE\\SOFTWARE\\gtkmm\\2.4;Path]/lib | ||||
PATH_SUFFIXES | PATH_SUFFIXES | |||
${_suffixes} | ${_suffixes} include lib | |||
) | ) | |||
if(${_var}) | if(${_var}) | |||
set(GTK3_INCLUDE_DIRS ${GTK3_INCLUDE_DIRS} ${${_var}} PARENT_SCOPE) | set(GTK3_INCLUDE_DIRS ${GTK3_INCLUDE_DIRS} ${${_var}} PARENT_SCOPE) | |||
if(NOT GTK3_SKIP_MARK_AS_ADVANCED) | if(NOT GTK3_SKIP_MARK_AS_ADVANCED) | |||
mark_as_advanced(${_var}) | mark_as_advanced(${_var}) | |||
endif() | endif() | |||
endif() | endif() | |||
endfunction() | endfunction() | |||
skipping to change at line 243 | skipping to change at line 255 | |||
list(APPEND _lib_list "${_library}-${_ver}") | list(APPEND _lib_list "${_library}-${_ver}") | |||
list(APPEND _libd_list "${_library_d}-${_ver}") | list(APPEND _libd_list "${_library_d}-${_ver}") | |||
endforeach() | endforeach() | |||
else() | else() | |||
set(_lib_list ${_library}) | set(_lib_list ${_library}) | |||
set(_libd_list ${_library_d}) | set(_libd_list ${_library_d}) | |||
endif() | endif() | |||
if(GTK3_DEBUG) | if(GTK3_DEBUG) | |||
message(STATUS "[FindGTK3.cmake:${CMAKE_CURRENT_LIST_LINE}] " | message(STATUS "[FindGTK3.cmake:${CMAKE_CURRENT_LIST_LINE}] " | |||
"library list = ${_lib_list} and library debug list = ${_libd_list}" ) | "library list = ${_lib_list} and library debug list = ${_libd_list}") | |||
endif() | endif() | |||
# For some silly reason the MSVC libraries use _ instead of . | # For some silly reason the MSVC libraries use _ instead of . | |||
# in the version fields | # in the version fields | |||
if(_expand_vc AND MSVC) | if(_expand_vc AND MSVC) | |||
set(_no_dots_lib_list) | set(_no_dots_lib_list) | |||
set(_no_dots_libd_list) | set(_no_dots_libd_list) | |||
foreach(_l ${_lib_list}) | foreach(_l ${_lib_list}) | |||
string(REPLACE "." "_" _no_dots_library ${_l}) | string(REPLACE "." "_" _no_dots_library ${_l}) | |||
list(APPEND _no_dots_lib_list ${_no_dots_library}) | list(APPEND _no_dots_lib_list ${_no_dots_library}) | |||
skipping to change at line 268 | skipping to change at line 280 | |||
string(REPLACE "." "_" _no_dots_libraryd ${_l}) | string(REPLACE "." "_" _no_dots_libraryd ${_l}) | |||
list(APPEND _no_dots_libd_list ${_no_dots_libraryd}) | list(APPEND _no_dots_libd_list ${_no_dots_libraryd}) | |||
endforeach() | endforeach() | |||
# Copy list back to original names | # Copy list back to original names | |||
set(_lib_list ${_no_dots_lib_list}) | set(_lib_list ${_no_dots_lib_list}) | |||
set(_libd_list ${_no_dots_libd_list}) | set(_libd_list ${_no_dots_libd_list}) | |||
endif() | endif() | |||
if(GTK3_DEBUG) | if(GTK3_DEBUG) | |||
message(STATUS "[FindGTK3.cmake:${CMAKE_CURRENT_LIST_LINE}] " | message(STATUS "[FindGTK3.cmake:${CMAKE_CURRENT_LIST_LINE}] " | |||
"While searching for ${_var}, our proposed library list is ${_lib_li st}") | "While searching for ${_var}, our proposed library list is ${_lib_list}") | |||
endif() | endif() | |||
find_library(${_var} | find_library(${_var} | |||
NAMES ${_lib_list} | NAMES ${_lib_list} | |||
PATHS | PATHS | |||
/opt/gnome/lib | /opt/gnome | |||
/opt/gnome/lib64 | /usr/openwin | |||
/usr/openwin/lib | /sw | |||
/usr/openwin/lib64 | $ENV{GTKMM_BASEPATH} | |||
/sw/lib | [HKEY_CURRENT_USER\\SOFTWARE\\gtkmm\\2.4;Path] | |||
$ENV{GTKMM_BASEPATH}/lib | [HKEY_LOCAL_MACHINE\\SOFTWARE\\gtkmm\\2.4;Path] | |||
[HKEY_CURRENT_USER\\SOFTWARE\\gtkmm\\2.4;Path]/lib | PATH_SUFFIXES lib lib64 | |||
[HKEY_LOCAL_MACHINE\\SOFTWARE\\gtkmm\\2.4;Path]/lib | ||||
) | ) | |||
if(_expand_vc AND MSVC) | if(_expand_vc AND MSVC) | |||
if(GTK3_DEBUG) | if(GTK3_DEBUG) | |||
message(STATUS "[FindGTK3.cmake:${CMAKE_CURRENT_LIST_LINE}] " | message(STATUS "[FindGTK3.cmake:${CMAKE_CURRENT_LIST_LINE}] " | |||
"While searching for ${_var}_DEBUG our proposed library list is ${ _libd_list}") | "While searching for ${_var}_DEBUG our proposed library list is ${_libd_list}") | |||
endif() | endif() | |||
find_library(${_var}_DEBUG | find_library(${_var}_DEBUG | |||
NAMES ${_libd_list} | NAMES ${_libd_list} | |||
PATHS | PATHS | |||
$ENV{GTKMM_BASEPATH}/lib | $ENV{GTKMM_BASEPATH} | |||
[HKEY_CURRENT_USER\\SOFTWARE\\gtkmm\\2.4;Path]/lib | [HKEY_CURRENT_USER\\SOFTWARE\\gtkmm\\2.4;Path] | |||
[HKEY_LOCAL_MACHINE\\SOFTWARE\\gtkmm\\2.4;Path]/lib | [HKEY_LOCAL_MACHINE\\SOFTWARE\\gtkmm\\2.4;Path] | |||
PATH_SUFFIXES lib | ||||
) | ) | |||
if(${_var} AND ${_var}_DEBUG) | if(${_var} AND ${_var}_DEBUG) | |||
if(NOT GTK3_SKIP_MARK_AS_ADVANCED) | if(NOT GTK3_SKIP_MARK_AS_ADVANCED) | |||
mark_as_advanced(${_var}_DEBUG) | mark_as_advanced(${_var}_DEBUG) | |||
endif() | endif() | |||
set(GTK3_LIBRARIES ${GTK3_LIBRARIES} optimized ${${_var}} debug ${${_var}_DE | set(GTK3_LIBRARIES | |||
BUG}) | ${GTK3_LIBRARIES} | |||
optimized ${${_var}} | ||||
debug ${${_var}_DEBUG} | ||||
) | ||||
set(GTK3_LIBRARIES ${GTK3_LIBRARIES} PARENT_SCOPE) | set(GTK3_LIBRARIES ${GTK3_LIBRARIES} PARENT_SCOPE) | |||
endif() | endif() | |||
else() | else() | |||
if(NOT GTK3_SKIP_MARK_AS_ADVANCED) | if(NOT GTK3_SKIP_MARK_AS_ADVANCED) | |||
mark_as_advanced(${_var}) | mark_as_advanced(${_var}) | |||
endif() | endif() | |||
set(GTK3_LIBRARIES ${GTK3_LIBRARIES} ${${_var}}) | set(GTK3_LIBRARIES ${GTK3_LIBRARIES} ${${_var}}) | |||
set(GTK3_LIBRARIES ${GTK3_LIBRARIES} PARENT_SCOPE) | set(GTK3_LIBRARIES ${GTK3_LIBRARIES} PARENT_SCOPE) | |||
# Set debug to release | # Set debug to release | |||
set(${_var}_DEBUG ${${_var}}) | set(${_var}_DEBUG ${${_var}}) | |||
skipping to change at line 333 | skipping to change at line 349 | |||
set(GTK3_FOUND) | set(GTK3_FOUND) | |||
set(GTK3_INCLUDE_DIRS) | set(GTK3_INCLUDE_DIRS) | |||
set(GTK3_LIBRARIES) | set(GTK3_LIBRARIES) | |||
if(NOT GTK3_FIND_COMPONENTS) | if(NOT GTK3_FIND_COMPONENTS) | |||
# Assume they only want GTK | # Assume they only want GTK | |||
set(GTK3_FIND_COMPONENTS gtk) | set(GTK3_FIND_COMPONENTS gtk) | |||
endif() | endif() | |||
# | # | |||
# If specified, enforce version number | # If not specified, enforce version number | |||
# | # | |||
if(GTK3_FIND_VERSION) | if(GTK3_FIND_VERSION) | |||
cmake_minimum_required(VERSION 2.6.2) | if(NOT DEFINED CMAKE_MINIMUM_REQUIRED_VERSION) | |||
cmake_minimum_required(VERSION 2.6.2) | ||||
endif() | ||||
set(GTK3_FAILED_VERSION_CHECK true) | set(GTK3_FAILED_VERSION_CHECK true) | |||
if(GTK3_DEBUG) | if(GTK3_DEBUG) | |||
message(STATUS "[FindGTK3.cmake:${CMAKE_CURRENT_LIST_LINE}] " | message(STATUS "[FindGTK3.cmake:${CMAKE_CURRENT_LIST_LINE}] " | |||
"Searching for version ${GTK3_FIND_VERSION}") | "Searching for version ${GTK3_FIND_VERSION}") | |||
endif() | endif() | |||
_gtk3_find_include_dir(GTK3_GTK_INCLUDE_DIR gtk/gtk.h) | _gtk3_find_include_dir(GTK3_GTK_INCLUDE_DIR gtk/gtk.h) | |||
if(GTK3_GTK_INCLUDE_DIR) | if(GTK3_GTK_INCLUDE_DIR) | |||
_gtk3_get_version(GTK3_MAJOR_VERSION | _gtk3_get_version(GTK3_MAJOR_VERSION | |||
GTK3_MINOR_VERSION | GTK3_MINOR_VERSION | |||
GTK3_PATCH_VERSION | GTK3_PATCH_VERSION | |||
skipping to change at line 372 | skipping to change at line 390 | |||
if(GTK3_FIND_REQUIRED AND NOT GTK3_FIND_QUIETLY) | if(GTK3_FIND_REQUIRED AND NOT GTK3_FIND_QUIETLY) | |||
message(FATAL_ERROR "Could not find GTK3 include directory") | message(FATAL_ERROR "Could not find GTK3 include directory") | |||
endif() | endif() | |||
return() | return() | |||
endif() | endif() | |||
if(GTK3_FAILED_VERSION_CHECK) | if(GTK3_FAILED_VERSION_CHECK) | |||
if(GTK3_FIND_REQUIRED AND NOT GTK3_FIND_QUIETLY) | if(GTK3_FIND_REQUIRED AND NOT GTK3_FIND_QUIETLY) | |||
if(GTK3_FIND_VERSION_EXACT) | if(GTK3_FIND_VERSION_EXACT) | |||
message(FATAL_ERROR "GTK3 version check failed. | message(FATAL_ERROR "GTK3 version check failed. | |||
Version ${GTK3_VERSION} was found, version ${GTK3_FIND_VERSION} is needed exactl | Version ${GTK3_VERSION} was found, \ | |||
y.") | version ${GTK3_FIND_VERSION} is needed exactly." | |||
) | ||||
else() | else() | |||
message(FATAL_ERROR "GTK3 version check failed. | message(FATAL_ERROR "GTK3 version check failed. | |||
Version ${GTK3_VERSION} was found, at least version ${GTK3_FIND_VERSION} is requ | Version ${GTK3_VERSION} was found, \ | |||
ired") | at least version ${GTK3_FIND_VERSION} is required" | |||
) | ||||
endif() | endif() | |||
endif() | endif() | |||
# If the version check fails, exit out of the module here | # If the version check fails, exit out of the module here | |||
return() | return() | |||
endif() | endif() | |||
endif() | endif() | |||
# | # | |||
# Find all components | # Find all components | |||
# | # | |||
find_package(Freetype) | find_package(Freetype QUIET) | |||
list(APPEND GTK3_INCLUDE_DIRS ${FREETYPE_INCLUDE_DIRS}) | list(APPEND GTK3_INCLUDE_DIRS ${FREETYPE_INCLUDE_DIRS}) | |||
list(APPEND GTK3_LIBRARIES ${FREETYPE_LIBRARIES}) | list(APPEND GTK3_LIBRARIES ${FREETYPE_LIBRARIES}) | |||
foreach(_GTK3_component ${GTK3_FIND_COMPONENTS}) | foreach(_GTK3_component ${GTK3_FIND_COMPONENTS}) | |||
if(_GTK3_component STREQUAL "gtk") | if(_GTK3_component STREQUAL "gtk") | |||
_gtk3_find_include_dir(GTK3_GLIB_INCLUDE_DIR glib.h) | _gtk3_find_include_dir(GTK3_GLIB_INCLUDE_DIR glib.h) | |||
_gtk3_find_include_dir(GTK3_GLIBCONFIG_INCLUDE_DIR glibconfig.h) | _gtk3_find_include_dir(GTK3_GLIBCONFIG_INCLUDE_DIR glibconfig.h) | |||
_gtk3_find_library(GTK3_GLIB_LIBRARY glib false true) | _gtk3_find_library(GTK3_GLIB_LIBRARY glib false true) | |||
_gtk3_find_library(GTK3_GTHREAD_LIBRARY gthread false true) | ||||
_gtk3_find_include_dir(GTK3_GOBJECT_INCLUDE_DIR gobject/gobject.h) | _gtk3_find_include_dir(GTK3_GOBJECT_INCLUDE_DIR gobject/gobject.h) | |||
_gtk3_find_library(GTK3_GOBJECT_LIBRARY gobject false true) | _gtk3_find_library(GTK3_GOBJECT_LIBRARY gobject false true) | |||
_gtk3_find_include_dir(GTK3_GIO_INCLUDE_DIR gio/gio.h) | _gtk3_find_include_dir(GTK3_GIO_INCLUDE_DIR gio/gio.h) | |||
_gtk3_find_library(GTK3_GIO_LIBRARY gio false true) | _gtk3_find_library(GTK3_GIO_LIBRARY gio false true) | |||
_gtk3_find_include_dir(GTK3_GDK_PIXBUF_INCLUDE_DIR gdk-pixbuf/gdk-pixbuf.h) | _gtk3_find_include_dir(GTK3_GDK_PIXBUF_INCLUDE_DIR gdk-pixbuf/gdk-pixbuf.h) | |||
_gtk3_find_library(GTK3_GDK_PIXBUF_LIBRARY gdk_pixbuf false true) | _gtk3_find_library(GTK3_GDK_PIXBUF_LIBRARY gdk_pixbuf false true) | |||
_gtk3_find_include_dir(GTK3_GDK_INCLUDE_DIR gdk/gdk.h) | _gtk3_find_include_dir(GTK3_GDK_INCLUDE_DIR gdk/gdk.h) | |||
_gtk3_find_include_dir(GTK3_GDKCONFIG_INCLUDE_DIR gdk/gdkconfig.h) | _gtk3_find_include_dir(GTK3_GDKCONFIG_INCLUDE_DIR gdk/gdkconfig.h) | |||
_gtk3_find_include_dir(GTK3_GTK_INCLUDE_DIR gtk/gtk.h) | _gtk3_find_include_dir(GTK3_GTK_INCLUDE_DIR gtk/gtk.h) | |||
# ********* At least on Debian the gdk & gtk libraries | # ********* At least on Debian the gdk & gtk libraries | |||
# ********* don't have the -x11 suffix. | # ********* don't have the -x11 suffix. | |||
if(UNIX) | if(UNIX) | |||
_gtk3_find_library(GTK3_GDK_LIBRARY gdk false true) | _gtk3_find_library(GTK3_GDK_LIBRARY gdk false true) | |||
_gtk3_find_library(GTK3_GTK_LIBRARY gtk false true) | _gtk3_find_library(GTK3_GTK_LIBRARY gtk false true) | |||
else() | else() | |||
# ********* There are various gtk3 builds/packages/bundles | ||||
# ********* available on Windows. Some of them follow the | ||||
# ********* classic naming scheme (libs with -win32 suffix) | ||||
# ********* and others prefer the original names. | ||||
# ********* Because we want to support as many packages | ||||
# ********* as possible, we search for both naming styles. | ||||
# ********* Starting with the original names. | ||||
# ********* | ||||
# ********* Tested with both vcpkg (gtk+-3.22.19) | ||||
# ********* and Msys2 (gtk+-3.22.28) | ||||
_gtk3_find_library(GTK3_GDK_LIBRARY gdk false true) | ||||
_gtk3_find_library(GTK3_GTK_LIBRARY gtk false true) | ||||
_gtk3_find_library(GTK3_GDK_LIBRARY gdk-win32 false true) | _gtk3_find_library(GTK3_GDK_LIBRARY gdk-win32 false true) | |||
_gtk3_find_library(GTK3_GTK_LIBRARY gtk-win32 false true) | _gtk3_find_library(GTK3_GTK_LIBRARY gtk-win32 false true) | |||
endif() | endif() | |||
_gtk3_find_include_dir(GTK3_CAIRO_INCLUDE_DIR cairo.h) | _gtk3_find_include_dir(GTK3_CAIRO_INCLUDE_DIR cairo.h) | |||
_gtk3_find_library(GTK3_CAIRO_LIBRARY cairo false false) | _gtk3_find_library(GTK3_CAIRO_LIBRARY cairo false false) | |||
_gtk3_find_include_dir(GTK3_FONTCONFIG_INCLUDE_DIR fontconfig/fontconfig.h) | _gtk3_find_include_dir(GTK3_FONTCONFIG_INCLUDE_DIR fontconfig/fontconfig.h) | |||
_gtk3_find_include_dir(GTK3_PANGO_INCLUDE_DIR pango/pango.h) | _gtk3_find_include_dir(GTK3_PANGO_INCLUDE_DIR pango/pango.h) | |||
_gtk3_find_library(GTK3_PANGO_LIBRARY pango false true) | _gtk3_find_library(GTK3_PANGO_LIBRARY pango false true) | |||
_gtk3_find_include_dir(GTK3_HARFBUZZ_INCLUDE_DIR hb.h) | ||||
_gtk3_find_include_dir(GTK3_ATK_INCLUDE_DIR atk/atk.h) | _gtk3_find_include_dir(GTK3_ATK_INCLUDE_DIR atk/atk.h) | |||
_gtk3_find_library(GTK3_ATK_LIBRARY atk false true) | _gtk3_find_library(GTK3_ATK_LIBRARY atk false true) | |||
elseif(_GTK3_component STREQUAL "gtkmm") | elseif(_GTK3_component STREQUAL "gtkmm") | |||
_gtk3_find_include_dir(GTK3_GLIBMM_INCLUDE_DIR glibmm.h) | _gtk3_find_include_dir(GTK3_GLIBMM_INCLUDE_DIR glibmm.h) | |||
_gtk3_find_include_dir(GTK3_GLIBMMCONFIG_INCLUDE_DIR glibmmconfig.h) | _gtk3_find_include_dir(GTK3_GLIBMMCONFIG_INCLUDE_DIR glibmmconfig.h) | |||
_gtk3_find_library(GTK3_GLIBMM_LIBRARY glibmm true true) | _gtk3_find_library(GTK3_GLIBMM_LIBRARY glibmm true true) | |||
_gtk3_find_include_dir(GTK3_GDKMM_INCLUDE_DIR gdkmm.h) | _gtk3_find_include_dir(GTK3_GDKMM_INCLUDE_DIR gdkmm.h) | |||
skipping to change at line 488 | skipping to change at line 526 | |||
endforeach() | endforeach() | |||
# | # | |||
# Solve for the GTK3 version if we haven't already | # Solve for the GTK3 version if we haven't already | |||
# | # | |||
if(NOT GTK3_FIND_VERSION AND GTK3_GTK_INCLUDE_DIR) | if(NOT GTK3_FIND_VERSION AND GTK3_GTK_INCLUDE_DIR) | |||
_gtk3_get_version(GTK3_MAJOR_VERSION | _gtk3_get_version(GTK3_MAJOR_VERSION | |||
GTK3_MINOR_VERSION | GTK3_MINOR_VERSION | |||
GTK3_PATCH_VERSION | GTK3_PATCH_VERSION | |||
${GTK3_GTK_INCLUDE_DIR}/gtk/gtkversion.h) | ${GTK3_GTK_INCLUDE_DIR}/gtk/gtkversion.h) | |||
set(GTK3_VERSION ${GTK3_MAJOR_VERSION}.${GTK3_MINOR_VERSION}.${GTK3_PATCH_VERS | set(GTK3_VERSION | |||
ION}) | ${GTK3_MAJOR_VERSION}.${GTK3_MINOR_VERSION}.${GTK3_PATCH_VERSION} | |||
) | ||||
endif() | endif() | |||
# | # | |||
# Try to enforce components | # Try to enforce components | |||
# | # | |||
set(_GTK3_did_we_find_everything true) # This gets set to GTK3_FOUND | set(_GTK3_did_we_find_everything true) # This gets set to GTK3_FOUND | |||
include(FindPackageHandleStandardArgs) | include(FindPackageHandleStandardArgs) | |||
#include(${CMAKE_CURRENT_LIST_DIR}/FindPackageHandleStandardArgs.cmake) | #include(${CMAKE_CURRENT_LIST_DIR}/FindPackageHandleStandardArgs.cmake) | |||
foreach(_GTK3_component ${GTK3_FIND_COMPONENTS}) | foreach(_GTK3_component ${GTK3_FIND_COMPONENTS}) | |||
string(TOUPPER ${_GTK3_component} _COMPONENT_UPPER) | string(TOUPPER ${_GTK3_component} _COMPONENT_UPPER) | |||
if(_GTK3_component STREQUAL "gtk") | if(_GTK3_component STREQUAL "gtk") | |||
find_package_handle_standard_args(GTK3_${_COMPONENT_UPPER} "Some or all of t | find_package_handle_standard_args(GTK3_${_COMPONENT_UPPER} | |||
he gtk libraries were not found." | "Some or all of the gtk libraries were not found." | |||
GTK3_GTK_LIBRARY | GTK3_GTK_LIBRARY | |||
GTK3_GTK_INCLUDE_DIR | GTK3_GTK_INCLUDE_DIR | |||
GTK3_GLIB_INCLUDE_DIR | GTK3_GLIB_INCLUDE_DIR | |||
GTK3_GLIBCONFIG_INCLUDE_DIR | GTK3_GLIBCONFIG_INCLUDE_DIR | |||
GTK3_GLIB_LIBRARY | GTK3_GLIB_LIBRARY | |||
GTK3_GTHREAD_LIBRARY | ||||
GTK3_GDK_INCLUDE_DIR | GTK3_GDK_INCLUDE_DIR | |||
GTK3_GDKCONFIG_INCLUDE_DIR | GTK3_GDKCONFIG_INCLUDE_DIR | |||
GTK3_GDK_LIBRARY | GTK3_GDK_LIBRARY | |||
) | ) | |||
elseif(_GTK3_component STREQUAL "gtkmm") | elseif(_GTK3_component STREQUAL "gtkmm") | |||
find_package_handle_standard_args(GTK3_${_COMPONENT_UPPER} "Some or all of t | find_package_handle_standard_args(GTK3_${_COMPONENT_UPPER} | |||
he gtkmm libraries were not found." | "Some or all of the gtkmm libraries were not found." | |||
GTK3_GTKMM_LIBRARY | GTK3_GTKMM_LIBRARY | |||
GTK3_GTKMM_INCLUDE_DIR | GTK3_GTKMM_INCLUDE_DIR | |||
GTK3_GTKMMCONFIG_INCLUDE_DIR | GTK3_GTKMMCONFIG_INCLUDE_DIR | |||
GTK3_GLIBMM_INCLUDE_DIR | GTK3_GLIBMM_INCLUDE_DIR | |||
GTK3_GLIBMMCONFIG_INCLUDE_DIR | GTK3_GLIBMMCONFIG_INCLUDE_DIR | |||
GTK3_GLIBMM_LIBRARY | GTK3_GLIBMM_LIBRARY | |||
GTK3_GDKMM_INCLUDE_DIR | GTK3_GDKMM_INCLUDE_DIR | |||
GTK3_GDKMMCONFIG_INCLUDE_DIR | GTK3_GDKMMCONFIG_INCLUDE_DIR | |||
GTK3_GDKMM_LIBRARY | GTK3_GDKMM_LIBRARY | |||
) | ) | |||
elseif(_GTK3_component STREQUAL "glade") | elseif(_GTK3_component STREQUAL "glade") | |||
find_package_handle_standard_args(GTK3_${_COMPONENT_UPPER} "The glade librar | find_package_handle_standard_args(GTK3_${_COMPONENT_UPPER} | |||
y was not found." | "The glade library was not found." | |||
GTK3_GLADE_LIBRARY | GTK3_GLADE_LIBRARY | |||
GTK3_GLADE_INCLUDE_DIR | GTK3_GLADE_INCLUDE_DIR | |||
) | ) | |||
elseif(_GTK3_component STREQUAL "glademm") | elseif(_GTK3_component STREQUAL "glademm") | |||
find_package_handle_standard_args(GTK3_${_COMPONENT_UPPER} "The glademm libr | find_package_handle_standard_args(GTK3_${_COMPONENT_UPPER} | |||
ary was not found." | "The glademm library was not found." | |||
GTK3_GLADEMM_LIBRARY | GTK3_GLADEMM_LIBRARY | |||
GTK3_GLADEMM_INCLUDE_DIR | GTK3_GLADEMM_INCLUDE_DIR | |||
GTK3_GLADEMMCONFIG_INCLUDE_DIR | GTK3_GLADEMMCONFIG_INCLUDE_DIR | |||
) | ) | |||
endif() | endif() | |||
if(NOT GTK3_${_COMPONENT_UPPER}_FOUND) | if(NOT GTK3_${_COMPONENT_UPPER}_FOUND) | |||
set(_GTK3_did_we_find_everything false) | set(_GTK3_did_we_find_everything false) | |||
endif() | endif() | |||
endforeach() | endforeach() | |||
End of changes. 29 change blocks. | ||||
56 lines changed or deleted | 92 lines changed or added |