Enable examples directory
authorMichael Andres <ma@suse.de>
Tue, 14 Jul 2009 15:58:48 +0000 (17:58 +0200)
committerMichael Andres <ma@suse.de>
Tue, 14 Jul 2009 15:58:48 +0000 (17:58 +0200)
CMakeLists.txt
examples/CMakeLists.txt
examples/whatprovides.cc [new file with mode: 0644]

index 8563bf4..2e4b1d0 100644 (file)
@@ -173,7 +173,7 @@ ADD_SUBDIRECTORY( zypp )
 # do not build devel by default
 ADD_SUBDIRECTORY( devel EXCLUDE_FROM_ALL )
 ADD_SUBDIRECTORY( tools )
-#ADD_SUBDIRECTORY( examples )
+ADD_SUBDIRECTORY( examples )
 ADD_SUBDIRECTORY( po EXCLUDE_FROM_ALL )
 ADD_SUBDIRECTORY( doc )
 ADD_SUBDIRECTORY( vendor )
index 2beb5d3..e7ca22a 100644 (file)
@@ -1,10 +1,14 @@
-INCLUDE_DIRECTORIES( ${CMAKE_CURRENT_SOURCE_DIR} ${CMAKE_CURRENT_BINARY_DIR} )
-
-
-########### next target ###############
-
-SET(read_plaindir_source_SRCS
-read_plaindir_source.cc
-)
-
-ADD_EXECUTABLE(read_plaindir_source ${read_plaindir_source_SRCS})
+## ############################################################
+
+FILE( GLOB ALLCC RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} "*.cc" )
+STRING( REPLACE ".cc" ";" APLLPROG ${ALLCC} )
+FOREACH( loop_var ${APLLPROG} )
+  ADD_EXECUTABLE( ${loop_var}
+    ${loop_var}.cc
+  )
+  TARGET_LINK_LIBRARIES( ${loop_var}
+    zypp
+  )
+ENDFOREACH( loop_var )
+
+## ############################################################
diff --git a/examples/whatprovides.cc b/examples/whatprovides.cc
new file mode 100644 (file)
index 0000000..e8e55fc
--- /dev/null
@@ -0,0 +1,31 @@
+#include <iostream>
+
+#include <zypp/ZYpp.h>
+#include <zypp/ZYppFactory.h>
+#include <zypp/PathInfo.h>
+#include <zypp/Capability.h>
+#include <zypp/sat/Solvable.h>
+#include <zypp/sat/WhatProvides.h>
+
+int main(int argc, char **argv) {
+       zypp::ZYpp::Ptr zyppPtr = zypp::ZYppFactory::instance().getZYpp();
+
+       zypp::Pathname sysRoot( "/" );
+
+       zyppPtr->initializeTarget( sysRoot, false );
+       zyppPtr->target()->load();
+
+       std::cout << "Looking for packages which provide " << argv[1] << std::endl;
+       zypp::Capability cap(argv[1]);
+       zypp::sat::WhatProvides wp(cap);
+
+       if (wp.empty()) {
+               std::cout << "No providers of " << argv[1] << " found" << std::endl;
+       } else {
+               zypp::sat::Solvable package(*wp.begin());
+               std::cout << "Provided by " << package.name() << " version " << package.edition().version()
+                       << std::endl;
+       }
+
+       return EXIT_SUCCESS;
+}