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