KDE/kdelibs/cmake/modules

Alexander Neundorf neundorf at kde.org
Thu Nov 26 00:39:15 CET 2009


SVN commit 1054394 by neundorf:

-add support for the COMPONENTS keyword, so we can specifiy which components are REQUIRED (PLUGIN_RAPTORPARSER and PLUGIN_REDLANDBACKEND for kdelibs)

Alex

CCMAIL: trueg at kde.org
CCMAIL: kde-buildsystem at kde.org



 M  +51 -53    FindSoprano.cmake  


--- trunk/KDE/kdelibs/cmake/modules/FindSoprano.cmake #1054393:1054394
@@ -2,7 +2,7 @@
 # Find an installation of Soprano
 #
 # Sets the following variables:
-#  Soprano_FOUND            - true is Soprano has been found
+#  Soprano_FOUND, SOPRANO_FOUND  - true is Soprano has been found
 #  SOPRANO_ONTO2VOCABULARYCLASS_EXECUTABLE - the onto2vocabularyclass program, required for adding ontologies
 #  SOPRANO_SOPRANOCMD_EXECUTABLE - the sopranocmd program
 #  SOPRANO_INCLUDE_DIR      - The include directory
@@ -23,8 +23,21 @@
 # Options:
 #  Set SOPRANO_MIN_VERSION to set the minimum required Soprano version (default: 1.99)
 #
+# FindSoprano.cmake supports the COMPOENTS keyword of find_package().
+# If the REQUIRED keyword is used and any of the specified components have not been
+# found, SOPRANO_FOUND will be set to FALSE.
+#
+# The following components are supported:
+#   PLUGIN_NQUADPARSER
+#   PLUGIN_NQUADSERIALIZER
+#   PLUGIN_RAPTORPARSER
+#   PLUGIN_RAPTORSERIALIZER
+#   PLUGIN_REDLANDBACKEND
+#   PLUGIN_SESAME2BACKEND
+#   PLUGIN_VIRTUOSOBACKEND
 
 # Copyright (c) 2008, Sebastian Trueg, <sebastian at trueg.de>
+# Copyright (c) 2009, Alexander Neundorf, <neundorf at kde.org>
 #
 # Redistribution and use is allowed according to the terms of the BSD license.
 # For details see the accompanying COPYING-CMAKE-SCRIPTS file.
@@ -90,24 +103,7 @@
   ${KDE4_LIB_DIR}
   )
 
-# check for all the libs as required to make sure that we do not try to compile with an old version
 
-if(SOPRANO_INCLUDE_DIR AND SOPRANO_LIBRARIES)
-  set(Soprano_FOUND TRUE)
-endif(SOPRANO_INCLUDE_DIR AND SOPRANO_LIBRARIES)
-
-if(Soprano_FOUND AND SOPRANO_INDEX_LIBRARIES)
-  set(SopranoIndex_FOUND TRUE)
-endif(Soprano_FOUND AND SOPRANO_INDEX_LIBRARIES)
-
-if(Soprano_FOUND AND SOPRANO_CLIENT_LIBRARIES)
-  set(SopranoClient_FOUND TRUE)
-endif(Soprano_FOUND AND SOPRANO_CLIENT_LIBRARIES)
-
-if(Soprano_FOUND AND SOPRANO_SERVER_LIBRARIES)
-  set(SopranoServer_FOUND TRUE)
-endif(Soprano_FOUND AND SOPRANO_SERVER_LIBRARIES)
-
 # check Soprano version
 
 # We set a default for the minimum required version to be backwards compatible
@@ -115,13 +111,12 @@
   set(SOPRANO_MIN_VERSION "1.99")
 endif(NOT SOPRANO_MIN_VERSION)
 
-if(Soprano_FOUND)
+if(SOPRANO_INCLUDE_DIR)
   file(READ ${SOPRANO_INCLUDE_DIR}/soprano/version.h SOPRANO_VERSION_CONTENT)
-  string(REGEX MATCH "SOPRANO_VERSION_STRING \".*\"\n" SOPRANO_VERSION_MATCH ${SOPRANO_VERSION_CONTENT})
+  string(REGEX MATCH "SOPRANO_VERSION_STRING \".*\"\n" SOPRANO_VERSION_MATCH "${SOPRANO_VERSION_CONTENT}")
   if(SOPRANO_VERSION_MATCH)
     string(REGEX REPLACE "SOPRANO_VERSION_STRING \"(.*)\"\n" "\\1" SOPRANO_VERSION ${SOPRANO_VERSION_MATCH})
     if(SOPRANO_VERSION STRLESS "${SOPRANO_MIN_VERSION}")
-      set(Soprano_FOUND FALSE)
       if(Soprano_FIND_REQUIRED)
         message(FATAL_ERROR "Soprano version ${SOPRANO_VERSION} is too old. Please install ${SOPRANO_MIN_VERSION} or newer")
       else(Soprano_FIND_REQUIRED)
@@ -129,16 +124,24 @@
       endif(Soprano_FIND_REQUIRED)
     endif(SOPRANO_VERSION STRLESS "${SOPRANO_MIN_VERSION}")
   endif(SOPRANO_VERSION_MATCH)
-endif(Soprano_FOUND)
+endif(SOPRANO_INCLUDE_DIR)
 
+set(_SOPRANO_REQUIRED_COMPONENTS_RESULTS)
+if( Soprano_FIND_COMPONENTS )
+  foreach( _component ${Soprano_FIND_COMPONENTS} )
+    set(_SOPRANO_REQUIRED_COMPONENTS_RESULTS ${_SOPRANO_REQUIRED_COMPONENTS_RESULTS} SOPRANO_${_component}_FOUND)
+  endforeach( _component )
+endif( Soprano_FIND_COMPONENTS )
 
 #look for parser plugins
-if(Soprano_FOUND)
+if(SOPRANO_INCLUDE_DIR)
+  get_filename_component(_SOPRANO_PREFIX ${SOPRANO_INCLUDE_DIR} PATH)
+
   find_path(SOPRANO_PLUGIN_ROOT_DIR 
     NAMES
     soprano/plugins
     PATHS
-    ${SOPRANO_INCLUDE_DIR}/../share
+    ${_SOPRANO_PREFIX}/share
     ${SHARE_INSTALL_PREFIX} 
     /usr/share 
     /usr/local/share
@@ -184,7 +187,6 @@
 
   # make sure the Soprano cmake macros are found
   # We also include it directly for convinience
-  get_filename_component(_SOPRANO_PREFIX ${SOPRANO_INCLUDE_DIR} PATH)
   find_file(_SOPRANO_MACRO_FILE NAMES SopranoAddOntology.cmake HINTS ${_SOPRANO_PREFIX}/share/soprano/cmake )
   if(_SOPRANO_MACRO_FILE)
     # new Soprano > 2.3.0 location
@@ -199,35 +201,32 @@
     endif(_SOPRANO_MACRO_FILE_OLD)
   endif(_SOPRANO_MACRO_FILE)
 
-endif(Soprano_FOUND)
+endif(SOPRANO_INCLUDE_DIR)
 
-if(Soprano_FOUND)
-  if(NOT Soprano_FIND_QUIETLY)
-    message(STATUS "Found Soprano version ${SOPRANO_VERSION}: ${SOPRANO_LIBRARIES}")
-    message(STATUS "Found Soprano includes: ${SOPRANO_INCLUDE_DIR}")
-    message(STATUS "Found Soprano Index: ${SOPRANO_INDEX_LIBRARIES}")
-    message(STATUS "Found Soprano Client: ${SOPRANO_CLIENT_LIBRARIES}")
-    message(STATUS "Found Soprano Plugin Dir: ${SOPRANO_PLUGIN_DIR}")
-    message(STATUS "Found Soprano Plugins:${_plugins}")
-  endif(NOT Soprano_FIND_QUIETLY)
-else(Soprano_FOUND)
-  if(Soprano_FIND_REQUIRED)
-    if(NOT SOPRANO_INCLUDE_DIR)
-      message(FATAL_ERROR "Could not find Soprano includes.")
-    endif(NOT SOPRANO_INCLUDE_DIR)
-    if(NOT SOPRANO_LIBRARIES)
-      message(FATAL_ERROR "Could not find Soprano library.")
-    endif(NOT SOPRANO_LIBRARIES)
-  else(Soprano_FIND_REQUIRED)
-    if(NOT SOPRANO_INCLUDE_DIR)
-      message(STATUS "Could not find Soprano includes.")
-    endif(NOT SOPRANO_INCLUDE_DIR)
-    if(NOT SOPRANO_LIBRARIES)
-      message(STATUS "Could not find Soprano library.")
-    endif(NOT SOPRANO_LIBRARIES)
-  endif(Soprano_FIND_REQUIRED)
-endif(Soprano_FOUND)
+include(FindPackageHandleStandardArgs)
+find_package_handle_standard_args(Soprano DEFAULT_MSG 
+                                  SOPRANO_INCLUDE_DIR SOPRANO_LIBRARIES
+                                  ${_SOPRANO_REQUIRED_COMPONENTS_RESULTS} )
 
+# for compatibility:
+set(Soprano_FOUND ${SOPRANO_FOUND})
+
+# check for all the libs as required to make sure that we do not try to compile with an old version
+
+if(SOPRANO_FOUND AND SOPRANO_INDEX_LIBRARIES)
+  set(SopranoIndex_FOUND TRUE)
+endif(SOPRANO_FOUND AND SOPRANO_INDEX_LIBRARIES)
+
+if(SOPRANO_FOUND AND SOPRANO_CLIENT_LIBRARIES)
+  set(SopranoClient_FOUND TRUE)
+endif(SOPRANO_FOUND AND SOPRANO_CLIENT_LIBRARIES)
+
+if(SOPRANO_FOUND AND SOPRANO_SERVER_LIBRARIES)
+  set(SopranoServer_FOUND TRUE)
+endif(SOPRANO_FOUND AND SOPRANO_SERVER_LIBRARIES)
+
+
+
 mark_as_advanced(SOPRANO_CLIENT_LIBRARIES 
                  SOPRANO_INDEX_LIBRARIES
                  SOPRANO_LIBRARIES
@@ -239,4 +238,3 @@
                  SOPRANO_SOPRANOCMD_EXECUTABLE
                  )
 
-#endif(SOPRANO_INCLUDE_DIR AND SOPRANO_LIBRARIES AND SOPRANO_INDEX_LIBRARIES AND SOPRANO_SERVER_LIBRARIES)


More information about the Kde-buildsystem mailing list