Blob Blame History Raw
From 56883bddb1d1cf784a0c4e81da6232cddee62562 Mon Sep 17 00:00:00 2001
From: Raphael Kubo da Costa <rakuco@FreeBSD.org>
Date: Fri, 30 Dec 2011 21:14:36 -0200
Subject: [PATCH 1/2] Sync FindGObject.cmake with the one in kdelibs.

Import kdelibs' FindGObject.cmake at commit
e02cae5112ef7ec37d6af3553399a136726b5288.

Highlights:
 * Remove unnecessary WIN32 check.
 * Use the pkg-config paths as HINTS, not PATHS.
 * Use FindPackageHandleStandardArgs instead of duplicating its
   functionality.

As a consequence, GOBJECT_LIBRARIES uses full library paths on all
platforms, which should fix linking when gobject is in a non-standard
path.

Reviewed-by: Dario Freddi
---
 cmake/modules/FindGObject.cmake | 85 +++++++++++++++--------------------------
 1 file changed, 31 insertions(+), 54 deletions(-)

diff --git a/cmake/modules/FindGObject.cmake b/cmake/modules/FindGObject.cmake
index 79a2127..af0c9f7 100644
--- a/cmake/modules/FindGObject.cmake
+++ b/cmake/modules/FindGObject.cmake
@@ -6,70 +6,47 @@
 #  GOBJECT_LIBRARIES - the libraries needed to use GObject
 #  GOBJECT_DEFINITIONS - Compiler switches required for using GObject
 
-# Copyright (c) 2008 Helio Chissini de Castro, <helio@kde.org>
-#  (c)2006, Tim Beaulen <tbscope@gmail.com>
-
-
-IF (GOBJECT_INCLUDE_DIR AND GOBJECT_LIBRARIES)
-   # in cache already
-   SET(GObject_FIND_QUIETLY TRUE)
-ELSE (GOBJECT_INCLUDE_DIR AND GOBJECT_LIBRARIES)
-   SET(GObject_FIND_QUIETLY FALSE)
-ENDIF (GOBJECT_INCLUDE_DIR AND GOBJECT_LIBRARIES)
-
-IF (NOT WIN32)
-   FIND_PACKAGE(PkgConfig)
-   # use pkg-config to get the directories and then use these values
-   # in the FIND_PATH() and FIND_LIBRARY() calls
-   PKG_CHECK_MODULES(PKG_GOBJECT2 gobject-2.0)
-   SET(GOBJECT_DEFINITIONS ${PKG_GOBJECT2_CFLAGS})
-ENDIF (NOT WIN32)
-
-FIND_PATH(GOBJECT_INCLUDE_DIR gobject/gobject.h
-   PATHS
-   ${PKG_GOBJECT2_INCLUDE_DIRS}
-   /usr/include/glib-2.0/
-   PATH_SUFFIXES glib-2.0
+# Copyright (c) 2011, Raphael Kubo da Costa <kubito@gmail.com>
+# Copyright (c) 2006, Tim Beaulen <tbscope@gmail.com>
+#
+# Redistribution and use is allowed according to the terms of the BSD license.
+# For details see the accompanying COPYING-CMAKE-SCRIPTS file.
+
+FIND_PACKAGE(PkgConfig)
+PKG_CHECK_MODULES(PC_GOBJECT gobject-2.0)
+SET(GOBJECT_DEFINITIONS ${PC_GOBJECT_CFLAGS_OTHER})
+
+FIND_PATH(GOBJECT_INCLUDE_DIR gobject.h
+   HINTS
+   ${PC_GOBJECT_INCLUDEDIR}
+   ${PC_GOBJECT_INCLUDE_DIRS}
+   PATH_SUFFIXES glib-2.0/gobject/
    )
 
 FIND_LIBRARY(_GObjectLibs NAMES gobject-2.0
-   PATHS
-   ${PKG_GOBJECT2_LIBRARY_DIRS}
+   HINTS
+   ${PC_GOBJECT_LIBDIR}
+   ${PC_GOBJECT_LIBRARY_DIRS}
    )
 FIND_LIBRARY(_GModuleLibs NAMES gmodule-2.0
-   PATHS
-   ${PKG_GOBJECT2_LIBRARY_DIRS}
+   HINTS
+   ${PC_GOBJECT_LIBDIR}
+   ${PC_GOBJECT_LIBRARY_DIRS}
    )
 FIND_LIBRARY(_GThreadLibs NAMES gthread-2.0
-   PATHS
-   ${PKG_GOBJECT2_LIBRARY_DIRS}
+   HINTS
+   ${PC_GOBJECT_LIBDIR}
+   ${PC_GOBJECT_LIBRARY_DIRS}
    )
 FIND_LIBRARY(_GLibs NAMES glib-2.0
-   PATHS
-   ${PKG_GOBJECT2_LIBRARY_DIRS}
+   HINTS
+   ${PC_GOBJECT_LIBDIR}
+   ${PC_GOBJECT_LIBRARY_DIRS}
    )
 
-IF (WIN32)
-SET (GOBJECT_LIBRARIES ${_GObjectLibs} ${_GModuleLibs} ${_GThreadLibs} ${_GLibs})
-ELSE (WIN32)
-SET (GOBJECT_LIBRARIES ${PKG_GOBJECT2_LIBRARIES})
-ENDIF (WIN32)
-
-IF (GOBJECT_INCLUDE_DIR AND GOBJECT_LIBRARIES)
-   SET(GOBJECT_FOUND TRUE)
-ELSE (GOBJECT_INCLUDE_DIR AND GOBJECT_LIBRARIES)
-   SET(GOBJECT_FOUND FALSE)
-ENDIF (GOBJECT_INCLUDE_DIR AND GOBJECT_LIBRARIES)
+SET( GOBJECT_LIBRARIES ${_GObjectLibs} ${_GModuleLibs} ${_GThreadLibs} ${_GLibs} )
 
-IF (GOBJECT_FOUND)
-   IF (NOT GObject_FIND_QUIETLY)
-      MESSAGE(STATUS "Found GObject libraries: ${GOBJECT_LIBRARIES}")
-      MESSAGE(STATUS "Found GObject includes : ${GOBJECT_INCLUDE_DIR}")
-   ENDIF (NOT GObject_FIND_QUIETLY)
-ELSE (GOBJECT_FOUND)
-    IF (GObject_FIND_REQUIRED)
-      MESSAGE(STATUS "Could NOT find GObject")
-    ENDIF(GObject_FIND_REQUIRED)
-ENDIF (GOBJECT_FOUND)
+INCLUDE(FindPackageHandleStandardArgs)
+FIND_PACKAGE_HANDLE_STANDARD_ARGS(GOBJECT DEFAULT_MSG GOBJECT_LIBRARIES GOBJECT_INCLUDE_DIR)
 
-MARK_AS_ADVANCED(GOBJECT_INCLUDE_DIR GOBJECT_LIBRARIES)
+MARK_AS_ADVANCED(GOBJECT_INCLUDE_DIR _GObjectLibs _GModuleLibs _GThreadLibs _GLibs)
-- 
1.8.1.4