From 56883bddb1d1cf784a0c4e81da6232cddee62562 Mon Sep 17 00:00:00 2001 From: Raphael Kubo da Costa 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, -# (c)2006, Tim Beaulen - - -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 +# Copyright (c) 2006, Tim Beaulen +# +# 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