From b74267745b012e1f3769ea5a7802c79f5480852b Mon Sep 17 00:00:00 2001 From: Philip Lowman Date: Wed, 3 Oct 2012 04:45:22 -0400 Subject: [PATCH 1/4] FindGTK2: Rollback lib64 changes which broke header file finding The changes in "use PATH_SUFFIXES to simplify find_* calls" on 8/14 regressed important functionality in FindGTK for using find_path to locate header files in /lib//include. The find_path function doesn't search /lib only /include. --- Modules/FindGTK2.cmake | 37 ++++++++++++++++++++++++++----------- 1 file changed, 26 insertions(+), 11 deletions(-) diff --git a/Modules/FindGTK2.cmake b/Modules/FindGTK2.cmake index 49af0f2bd..2373422be 100644 --- a/Modules/FindGTK2.cmake +++ b/Modules/FindGTK2.cmake @@ -151,7 +151,7 @@ function(_GTK2_FIND_INCLUDE_DIR _var _hdr) "_GTK2_FIND_INCLUDE_DIR( ${_var} ${_hdr} )") endif() - set(_relatives + set(_gtk_packages # If these ever change, things will break. ${GTK2_ADDITIONAL_SUFFIXES} glibmm-2.4 @@ -172,8 +172,15 @@ function(_GTK2_FIND_INCLUDE_DIR _var _hdr) sigc++-2.0 ) - set(_suffixes include lib) - foreach(_d ${_relatives}) + # + # NOTE: The following suffixes cause searching for header files in both of + # these directories: + # /usr/include/ + # /usr/lib//include + # + + set(_suffixes) + foreach(_d ${_gtk_packages}) list(APPEND _suffixes ${_d}) list(APPEND _suffixes ${_d}/include) # for /usr/lib/gtk-2.0/include endforeach() @@ -186,15 +193,23 @@ function(_GTK2_FIND_INCLUDE_DIR _var _hdr) find_path(${_var} ${_hdr} PATHS /usr/local/lib64 + /usr/local/lib /usr/lib64 - /opt/gnome - /opt/openwin - /usr/openwin - /sw - /opt/local - ENV GTKMM_BASEPATH - [HKEY_CURRENT_USER\\SOFTWARE\\gtkmm\\2.4;Path] - [HKEY_LOCAL_MACHINE\\SOFTWARE\\gtkmm\\2.4;Path] + /usr/lib + /opt/gnome/include + /opt/gnome/lib + /opt/openwin/include + /usr/openwin/lib + /sw/include + /sw/lib + /opt/local/include + /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 ${_suffixes} ) From 06638039aaa01c5431e6b4f0c153390afbe82c46 Mon Sep 17 00:00:00 2001 From: Philip Lowman Date: Wed, 3 Oct 2012 04:52:35 -0400 Subject: [PATCH 2/4] FindGTK2: #12049 fix detection of header files on multiarch systems --- Modules/FindGTK2.cmake | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/Modules/FindGTK2.cmake b/Modules/FindGTK2.cmake index 2373422be..119ad0e7f 100644 --- a/Modules/FindGTK2.cmake +++ b/Modules/FindGTK2.cmake @@ -190,8 +190,15 @@ function(_GTK2_FIND_INCLUDE_DIR _var _hdr) "include suffixes = ${_suffixes}") endif() + if(CMAKE_LIBRARY_ARCHITECTURE) + set(_gtk2_arch_dir /usr/lib/${CMAKE_LIBRARY_ARCHITECTURE}) + if(GTK2_DEBUG) + message(STATUS "Adding ${_gtk2_arch_dir} to search path for multiarch support") + endif() + endif() find_path(${_var} ${_hdr} PATHS + ${_gtk2_arch_dir} /usr/local/lib64 /usr/local/lib /usr/lib64 From 8093f6cedea37b488a1e7f61bc363e149fa43428 Mon Sep 17 00:00:00 2001 From: Philip Lowman Date: Wed, 3 Oct 2012 04:57:45 -0400 Subject: [PATCH 3/4] FindGTK2: #12596 Missing paths for FindGTK2 on NetBSD --- Modules/FindGTK2.cmake | 2 ++ 1 file changed, 2 insertions(+) diff --git a/Modules/FindGTK2.cmake b/Modules/FindGTK2.cmake index 119ad0e7f..b9be78a85 100644 --- a/Modules/FindGTK2.cmake +++ b/Modules/FindGTK2.cmake @@ -211,6 +211,8 @@ function(_GTK2_FIND_INCLUDE_DIR _var _hdr) /sw/lib /opt/local/include /opt/local/lib + /usr/pkg/lib + /usr/pkg/include/glib $ENV{GTKMM_BASEPATH}/include $ENV{GTKMM_BASEPATH}/lib [HKEY_CURRENT_USER\\SOFTWARE\\gtkmm\\2.4;Path]/include From 0594bee578fbe017f8ef194557b4cddfa12b7dae Mon Sep 17 00:00:00 2001 From: Philip Lowman Date: Wed, 3 Oct 2012 05:03:53 -0400 Subject: [PATCH 4/4] FindGTK2: Update local changelog --- Modules/FindGTK2.cmake | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/Modules/FindGTK2.cmake b/Modules/FindGTK2.cmake index b9be78a85..517a9ac6a 100644 --- a/Modules/FindGTK2.cmake +++ b/Modules/FindGTK2.cmake @@ -54,7 +54,7 @@ #============================================================================= # Copyright 2009 Kitware, Inc. -# Copyright 2008-2009 Philip Lowman +# Copyright 2008-2012 Philip Lowman # # Distributed under the OSI-approved BSD License (the "License"); # see accompanying file Copyright.txt for details. @@ -66,10 +66,13 @@ # (To distribute this file outside of CMake, substitute the full # License text for the above reference.) +# Version 1.4 (10/4/2012) (CMake 2.8.10) +# * 12596: Missing paths for FindGTK2 on NetBSD +# * 12049: Fixed detection of GTK include files in the lib folder on +# multiarch systems. # Version 1.3 (11/9/2010) (CMake 2.8.4) # * 11429: Add support for detecting GTK2 built with Visual Studio 10. # Thanks to Vincent Levesque for the patch. - # Version 1.2 (8/30/2010) (CMake 2.8.3) # * Merge patch for detecting gdk-pixbuf library (split off # from core GTK in 2.21). Thanks to Vincent Untz for the patch