Revision: 6517
          http://playerstage.svn.sourceforge.net/playerstage/?rev=6517&view=rev
Author:   gbiggs
Date:     2008-06-10 04:09:43 -0700 (Tue, 10 Jun 2008)

Log Message:
-----------
Updated to use new FindPkgConfig module

Modified Paths:
--------------
    code/player/trunk/cmake/internal/DriverUtils.cmake

Modified: code/player/trunk/cmake/internal/DriverUtils.cmake
===================================================================
--- code/player/trunk/cmake/internal/DriverUtils.cmake  2008-06-10 10:22:13 UTC 
(rev 6516)
+++ code/player/trunk/cmake/internal/DriverUtils.cmake  2008-06-10 11:09:43 UTC 
(rev 6517)
@@ -150,51 +150,49 @@
 
 
 ###############################################################################
-# PLAYERDRIVER_REQUIRE_PKG (_name _cumulativeVar _package _includeDir _libDir 
_linkFlags _cFlags [version])
+# PLAYERDRIVER_REQUIRE_PKG (_name _cumulativeVar _package _includeDir _libDir 
_linkFlags _cFlags [_version])
 # Check if a required package is available.
-# If a minimum version is required, supply it as an optional argument. For 
example, ">=1.2".
+# If a minimum version is required, supply it as an optional argument with no 
spaces. For example,
+# ">=0.9.6".
 #
 # _name:            Driver name.
 # _cumulativeVar:   The option used in the calling CMakeLists.txt to check if
 #                   the driver has been enabled.
-# _package:         Name of the package config file to look for.
-INCLUDE (UsePkgConfig)
+# _package:         Name (and possibly version) of the package to look for.
+INCLUDE (FindPkgConfig)
 MACRO (PLAYERDRIVER_REQUIRE_PKG _name _cumulativeVar _package _includeDir 
_libDir _linkFlags _cFlags)
+    IF (NOT PKG_CONFIG_FOUND)
+        MESSAGE (FATAL_ERROR "Could not find pkg-config.")
+    ENDIF (NOT PKG_CONFIG_FOUND)
+
     IF (${ARGC} GREATER 7)
-        SET (minVersionReq ${ARG7})
+        SET (_minVersion ${ARG7})
     ENDIF (${ARGC} GREATER 7)
+
     # Look for the package using pkg-config
-    PKGCONFIG (${_package} ${_includeDir} ${_libDir} ${_linkFlags} ${_cFlags})
-    SET (foundPackage FALSE)    # Make sure foundPackage isn't TRUE from a 
previous use of this macro
-    IF (${_includeDir} OR ${_libDir} OR ${_linkFlags} OR ${_cFlags})
-        SET (foundPackage TRUE)
-    ENDIF (${_includeDir} OR ${_libDir} OR ${_linkFlags} OR ${_cFlags})
-    # Check if the version is acceptable (if one was supplied)
-    IF (foundPackage AND minVersionReq)
-        # The UsePkgConfig module doesn't support versions, so have to do it 
ourselves. Joy.
-        EXECUTE_PROCESS (COMMAND pkg-config --exists --print-errors 
"${_package} ${minVersionReq}"
-            ERROR_VARIABLE haveMinVersionReq
-            ERROR_STRIP_TRAILING_WHITESPACE)
-        IF (NOT "x${haveMinVersionReq}" EQUAL "x")
-            SET (foundPackage FALSE)
-        ENDIF (NOT "x${haveMinVersionReq}" EQUAL "x")
-    ENDIF (foundPackage AND minVersionReq)
+    SET (_pkgVar "${_package}_PKG")
+    pkg_check_modules (${_pkgVar} ${_package}${_minVersion})
+
     # If not found, disable this driver
-    # Derefernce cumulativeVar only once because IF will dereference the 
variable name stored inside itself
-    IF (${_cumulativeVar} AND foundPackage)
+    # Dereference cumulativeVar only once because IF will dereference the 
variable name stored inside itself
+    IF (${_cumulativeVar} AND ${_pkgVar}_FOUND)
         # Driver will be built and package found - add a #define
         STRING (TOUPPER ${_package} packageNameUpper)
         # Append to a list instead of setting an option so we can 
auto-generate driver_config.h
         APPEND_TO_CACHED_LIST (PLAYERDRIVER_HAVE_DEFINES 
${PLAYERDRIVER_HAVE_DEFINES_DESC} "HAVE_PKG_${_packageNameUpper}")
+        # Set the values
+        SET (${_includeDir} ${${_pkgVar}_INCLUDE_DIRS})
+        SET (${_libDir} ${${_pkgVar}_LIBRARY_DIRS})
+        LIST_TO_STRING (${_cFlags} "${${_pkgVar}_CFLAGS}")
+        LIST_TO_STRING (${_linkFlags} "${${_pkgVar}_LDFLAGS}")
     ELSEIF (${_cumulativeVar})
         # Case where cumulativeVar is set but package wasn't found - don't 
build
         SET (${_cumulativeVar} FALSE)
         PLAYERDRIVER_ADD_TO_NOT_BUILT (${_name} "Could not find package 
${_package}")
         PLAYERDRIVER_ADD_DRIVEROPTION (${_name} OFF TRUE)
-    ENDIF (${_cumulativeVar} AND foundPackage)
+    ENDIF (${_cumulativeVar} AND ${_pkgVar}_FOUND)
 ENDMACRO (PLAYERDRIVER_REQUIRE_PKG)
 
-
 ###############################################################################
 # PLAYERDRIVER_REQUIRE_HEADER (_name _cumulativeVar _header)
 # Check if a required header file is available.


This was sent by the SourceForge.net collaborative development platform, the 
world's largest Open Source development site.

-------------------------------------------------------------------------
Check out the new SourceForge.net Marketplace.
It's the best place to buy or sell services for
just about anything Open Source.
http://sourceforge.net/services/buy/index.php
_______________________________________________
Playerstage-commit mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/playerstage-commit

Reply via email to