Imported Upstream version 17.22.1
[platform/upstream/libzypp.git] / zypp / CMakeLists.txt
index db4d53f..e5524f9 100644 (file)
@@ -1,23 +1,28 @@
-####################################################################
-# SOURCES                                                          #
-####################################################################
+# Collect all files that may contain translatable texts
+FILE( GLOB_RECURSE POT_FILE_DEPENDS RELATIVE ${LIBZYPP_SOURCE_DIR} "*.h" "*.cc" )
+SET( POT_FILE_DEPENDS ${POT_FILE_DEPENDS} PARENT_SCOPE )
 
-ADD_DEFINITIONS(-DLOCALEDIR="${CMAKE_INSTALL_PREFIX}/share/locale" -DTEXTDOMAIN="zypp" )
 
-INCLUDE_DIRECTORIES(${CMAKE_CURRENT_BINARY_DIR})
+ADD_DEFINITIONS(-DLOCALEDIR="${CMAKE_INSTALL_PREFIX}/share/locale" -DTEXTDOMAIN="zypp" -DZYPP_DLL )
+INCLUDE_DIRECTORIES( ${CMAKE_CURRENT_BINARY_DIR} )
+
+IF (ENABLE_ZCHUNK_COMPRESSION)
+  INCLUDE_DIRECTORIES( ${ZCHUNK_INCLUDEDIR} )
+ENDIF(ENABLE_ZCHUNK_COMPRESSION)
 #FILE(WRITE filename "message to write"... )
 
 SET( zypp_SRCS
+  Application.cc
   ByteCount.cc
   Capabilities.cc
   Capability.cc
   CapMatch.cc
   Changelog.cc
   CheckSum.cc
+  CpeId.cc
   Date.cc
   Dep.cc
   Digest.cc
-  DiskUsage.cc
   DiskUsageCounter.cc
   DownloadMode.cc
   Edition.cc
@@ -26,6 +31,7 @@ SET( zypp_SRCS
   PluginFrameException.cc
   PluginScript.cc
   PluginScriptException.cc
+  PluginExecutor.cc
   Fetcher.cc
   FileChecker.cc
   Glob.cc
@@ -33,9 +39,9 @@ SET( zypp_SRCS
   HistoryLogData.cc
   IdString.cc
   InstanceId.cc
+  KeyManager.cc
   KeyRing.cc
   Locks.cc
-  MediaProducts.cc
   MediaSetAccess.cc
   OnMediaLocation.cc
   Package.cc
@@ -52,6 +58,7 @@ SET( zypp_SRCS
   ProgressData.cc
   ProvideFilePolicy.cc
   PublicKey.cc
+  PurgeKernels.cc
   Range.cc
   Rel.cc
   RepoInfo.cc
@@ -62,6 +69,7 @@ SET( zypp_SRCS
   ResObject.cc
   Resolvable.cc
   Resolver.cc
+  ResolverFocus.cc
   ResolverProblem.cc
   ResPool.cc
   ResPoolProxy.cc
@@ -69,6 +77,7 @@ SET( zypp_SRCS
   ServiceInfo.cc
   Signature.cc
   SrcPackage.cc
+  ShutdownLock.cc
   SysContent.cc
   Target.cc
   TmpPath.cc
@@ -89,9 +98,12 @@ SET( zypp_EARLY_SRCS
 )
 
 SET( zypp_HEADERS
+  ${CMAKE_CURRENT_BINARY_DIR}/APIConfig.h
+  Application.h
   Arch.h
   AutoDispose.h
   Bit.h
+  Bitmap.h
   ByteCount.h
   Callback.h
   Capabilities.h
@@ -99,12 +111,13 @@ SET( zypp_HEADERS
   CapMatch.h
   Changelog.h
   CheckSum.h
+  ContentType.h
   CountryCode.h
+  CpeId.h
   Date.h
   Dep.h
   Digest.h
   DiskUsageCounter.h
-  DiskUsage.h
   DownloadMode.h
   Edition.h
   ExternalProgram.h
@@ -112,6 +125,7 @@ SET( zypp_HEADERS
   PluginFrameException.h
   PluginScript.h
   PluginScriptException.h
+  PluginExecutor.h
   Fetcher.h
   FileChecker.h
   Glob.h
@@ -121,6 +135,7 @@ SET( zypp_HEADERS
   IdStringType.h
   InstanceId.h
   KeyContext.h
+  KeyManager.h
   KeyRing.h
   KVMap.h
   LanguageCode.h
@@ -148,6 +163,7 @@ SET( zypp_HEADERS
   ProgressData.h
   ProvideFilePolicy.h
   PublicKey.h
+  PurgeKernels.h
   Range.h
   RelCompare.h
   Rel.h
@@ -162,6 +178,8 @@ SET( zypp_HEADERS
   ResObjects.h
   Resolvable.h
   Resolver.h
+  ResolverFocus.h
+  ResolverNamespace.h
   ResolverProblem.h
   ResPool.h
   ResPoolProxy.h
@@ -175,6 +193,7 @@ SET( zypp_HEADERS
   TmpPath.h
   TriBool.h
   Url.h
+  UserData.h
   VendorAttr.h
   VendorSupportOptions.h
   ZConfig.h
@@ -186,20 +205,24 @@ SET( zypp_HEADERS
   ZYpp.h
 )
 
-INSTALL(  FILES ${zypp_HEADERS} DESTINATION "${CMAKE_INSTALL_PREFIX}/include/zypp" )
+INSTALL(  FILES ${zypp_HEADERS} DESTINATION "${INCLUDE_INSTALL_DIR}/zypp" )
 
 SET( zypp_base_SRCS
-  base/InterProcessMutex.cc
+  base/Backtrace.cc
+  base/CleanerThread.cc
+  base/DrunkenBishop.cc
   base/SerialNumber.cc
   base/Random.cc
   base/Measure.cc
-  base/Fd.cc
   base/Gettext.cc
   base/GzStream.cc
   base/IOStream.cc
   base/InputStream.cc
   base/ReferenceCounted.cc
+  base/SetRelationMixin.cc
   base/String.cc
+  base/StrMatcher.h
+  base/StrMatcher.cc
   base/Regex.cc
   base/Unit.cc
   base/ExternalDataSource.cc
@@ -208,58 +231,84 @@ SET( zypp_base_SRCS
   base/Sysconfig.cc
   base/ProfilingFormater.cc
   base/LogControl.cc
+  base/Xml.cc
 )
 
 SET( zypp_base_HEADERS
-  base/InterProcessMutex.h
+  base/Backtrace.h
   base/Collector.h
+  base/DrunkenBishop.h
   base/SerialNumber.h
   base/Easy.h
+  base/Env.h
   base/Errno.h
+  base/fXstream.h
   base/Random.h
   base/Algorithm.h
   base/Counter.h
   base/Debug.h
   base/DefaultIntegral.h
-  base/Deprecated.h
   base/DtorReset.h
   base/Exception.h
   base/UserRequestException.h
+  base/EnumClass.h
   base/ExternalDataSource.h
-  base/Fd.h
   base/Flags.h
   base/Function.h
   base/Functional.h
   base/Gettext.h
   base/GzStream.h
+  base/Hash.h
   base/IOStream.h
   base/InputStream.h
+  base/Iterable.h
   base/Iterator.h
+  base/Json.h
+  base/LocaleGuard.h
   base/LogControl.h
   base/LogTools.h
   base/Logger.h
   base/Measure.h
+  base/NamedValue.h
   base/NonCopyable.h
   base/ProfilingFormater.h
   base/ProvideNumericId.h
   base/PtrTypes.h
   base/ReferenceCounted.h
-  base/SafeBool.h
+  base/SetRelationMixin.h
+  base/SetTracker.h
   base/Signal.h
+  base/SimpleStreambuf.h
   base/String.h
+  base/StrMatcher.h
   base/Regex.h
   base/Sysconfig.h
-  base/Tr1hash.h
+  base/TypeTraits.h
   base/Unit.h
+  base/ValueTransform.h
   base/WatchFile.h
+  base/Xml.h
 )
 
+IF (ENABLE_ZCHUNK_COMPRESSION)
+
+  list( APPEND zypp_base_SRCS
+    base/ZckStream.cc
+  )
+
+  list( APPEND zypp_base_HEADERS
+    base/ZckStream.h
+  )
+
+ENDIF(ENABLE_ZCHUNK_COMPRESSION)
+
 INSTALL(  FILES
   ${zypp_base_HEADERS}
-  DESTINATION ${CMAKE_INSTALL_PREFIX}/include/zypp/base
+  DESTINATION ${INCLUDE_INSTALL_DIR}/zypp/base
 )
 
 SET( zypp_media_SRCS
+  media/CurlHelper.cc
   media/MediaException.cc
   media/MediaAccess.cc
   media/MediaHandler.cc
@@ -272,7 +321,6 @@ SET( zypp_media_SRCS
   media/ProxyInfo.cc
   media/MediaCurl.cc
   media/MediaMultiCurl.cc
-  media/MediaAria2c.cc
   media/MediaISO.cc
   media/MediaPlugin.cc
   media/MediaSource.cc
@@ -295,7 +343,6 @@ SET( zypp_media_HEADERS
   media/MediaCIFS.h
   media/MediaCurl.h
   media/MediaMultiCurl.h
-  media/MediaAria2c.h
   media/MediaDIR.h
   media/MediaDISK.h
   media/MediaException.h
@@ -321,7 +368,7 @@ SET( zypp_media_HEADERS
 
 INSTALL(  FILES
   ${zypp_media_HEADERS}
-  DESTINATION ${CMAKE_INSTALL_PREFIX}/include/zypp/media
+  DESTINATION ${INCLUDE_INSTALL_DIR}/zypp/media
 )
 
 IF ( LIBPROXY_FOUND )
@@ -343,7 +390,7 @@ SET( zypp_media_proxyinfo_HEADERS
 
 INSTALL(  FILES
   ${zypp_media_proxyinfo_HEADERS}
-  DESTINATION ${CMAKE_INSTALL_PREFIX}/include/zypp/media/proxyinfo
+  DESTINATION ${INCLUDE_INSTALL_DIR}/zypp/media/proxyinfo
 )
 
 SET( zypp_parser_SRCS
@@ -364,7 +411,6 @@ SET( zypp_parser_HEADERS
   parser/HistoryLogReader.h
   parser/ParserProgress.h
   parser/RepoFileReader.h
-  parser/xml_escape_parser.hpp
   parser/RepoindexFileReader.h
   parser/ServiceFileReader.h
   parser/ProductFileReader.h
@@ -372,7 +418,7 @@ SET( zypp_parser_HEADERS
 
 INSTALL(  FILES
   ${zypp_parser_HEADERS}
-  DESTINATION ${CMAKE_INSTALL_PREFIX}/include/zypp/parser
+  DESTINATION ${INCLUDE_INSTALL_DIR}/zypp/parser
 )
 
 SET( zypp_parser_susetags_SRCS
@@ -387,20 +433,7 @@ SET( zypp_parser_susetags_HEADERS
 
 INSTALL(  FILES
   ${zypp_parser_susetags_HEADERS}
-  DESTINATION ${CMAKE_INSTALL_PREFIX}/include/zypp/parser/susetags
-)
-
-SET( zypp_parser_plaindir_SRCS
-  parser/plaindir/RepoParser.cc
-)
-
-SET( zypp_parser_plaindir_HEADERS
-  parser/plaindir/RepoParser.h
-)
-
-INSTALL(  FILES
-  ${zypp_parser_plaindir_HEADERS}
-  DESTINATION ${CMAKE_INSTALL_PREFIX}/include/zypp/parser/plaindir
+  DESTINATION ${INCLUDE_INSTALL_DIR}/zypp/parser/susetags
 )
 
 SET( zypp_parser_xml_SRCS
@@ -409,9 +442,9 @@ SET( zypp_parser_xml_SRCS
   parser/xml/ParseDefConsume.cc
   parser/xml/ParseDefException.cc
   parser/xml/Reader.cc
+  parser/xml/XmlEscape.cc
   parser/xml/XmlString.cc
   parser/xml/libxmlfwd.cc
-  parser/xml/xml_escape_parser.cpp
 )
 
 SET( zypp_parser_xml_HEADERS
@@ -425,51 +458,32 @@ SET( zypp_parser_xml_HEADERS
   parser/xml/XmlEscape.h
   parser/xml/XmlString.h
   parser/xml/libxmlfwd.h
-  parser/xml/xml_escape_parser.hpp
 )
 
 INSTALL(  FILES
   ${zypp_parser_xml_HEADERS}
-  DESTINATION ${CMAKE_INSTALL_PREFIX}/include/zypp/parser/xml
+  DESTINATION ${INCLUDE_INSTALL_DIR}/zypp/parser/xml
 )
 
 SET( zypp_parser_yum_SRCS
   parser/yum/RepomdFileReader.cc
-  parser/yum/PatchesFileReader.cc
 )
 
 SET( zypp_parser_yum_HEADERS
   parser/yum/RepomdFileReader.h
-  parser/yum/PatchesFileReader.h
 )
 
 INSTALL(  FILES
   ${zypp_parser_yum_HEADERS}
-  DESTINATION ${CMAKE_INSTALL_PREFIX}/include/zypp/parser/yum
+  DESTINATION ${INCLUDE_INSTALL_DIR}/zypp/parser/yum
 )
 
-SET( zypp_parser_ws_SRCS
-  parser/ws/WebpinResultFileReader.cc
-)
-
-SET( zypp_parser_ws_HEADERS
-  parser/ws/WebpinResultFileReader.h
-)
-
-INSTALL(  FILES
-  ${zypp_parser_ws_HEADERS}
-  DESTINATION ${CMAKE_INSTALL_PREFIX}/include/zypp/parser/ws
-)
-
-
 SET( zypp_pool_SRCS
-  pool/GetResolvablesToInsDel.cc
   pool/PoolImpl.cc
   pool/PoolStats.cc
 )
 
 SET( zypp_pool_HEADERS
-  pool/GetResolvablesToInsDel.h
   pool/PoolImpl.h
   pool/PoolStats.h
   pool/PoolTraits.h
@@ -478,12 +492,21 @@ SET( zypp_pool_HEADERS
 
 INSTALL(  FILES
   ${zypp_pool_HEADERS}
-  DESTINATION ${CMAKE_INSTALL_PREFIX}/include/zypp/pool
+  DESTINATION ${INCLUDE_INSTALL_DIR}/zypp/pool
+)
+
+# SET( zypp_solver_detail_SRCS )
+
+SET( zypp_solver_HEADERS
+  solver/Types.h
+)
+
+INSTALL(  FILES
+  ${zypp_solver_HEADERS}
+  DESTINATION ${INCLUDE_INSTALL_DIR}/zypp/solver
 )
 
 SET( zypp_solver_detail_SRCS
-  solver/detail/Helper.cc
-  solver/detail/InstallOrder.cc
   solver/detail/ProblemSolutionIgnore.cc
   solver/detail/ProblemSolutionCombi.cc
   solver/detail/Resolver.cc
@@ -500,8 +523,6 @@ SET( zypp_solver_detail_SRCS
 )
 
 SET( zypp_solver_detail_HEADERS
-  solver/detail/Helper.h
-  solver/detail/InstallOrder.h
   solver/detail/ProblemSolutionIgnore.h
   solver/detail/ProblemSolutionCombi.h
   solver/detail/Resolver.h
@@ -514,36 +535,43 @@ SET( zypp_solver_detail_HEADERS
   solver/detail/SolverQueueItemUpdate.h
   solver/detail/SolverQueueItemInstallOneOf.h
   solver/detail/SolverQueueItemLock.h
+  solver/detail/ItemCapKind.h
   solver/detail/SATResolver.h
   solver/detail/SystemCheck.h
 )
 
 INSTALL(  FILES
   ${zypp_solver_detail_HEADERS}
-  DESTINATION ${CMAKE_INSTALL_PREFIX}/include/zypp/solver/detail
+  DESTINATION ${INCLUDE_INSTALL_DIR}/zypp/solver/detail
 )
 
 SET( zypp_sat_SRCS
   sat/Pool.cc
   sat/Solvable.cc
   sat/SolvableSet.cc
+  sat/SolvableSpec.cc
   sat/SolvIterMixin.cc
+  sat/Map.cc
   sat/Queue.cc
+  sat/FileConflicts.cc
   sat/Transaction.cc
   sat/WhatProvides.cc
   sat/WhatObsoletes.cc
   sat/LocaleSupport.cc
   sat/LookupAttr.cc
   sat/SolvAttr.cc
-  sat/AttrMatcher.cc
 )
 
 SET( zypp_sat_HEADERS
   sat/Pool.h
   sat/Solvable.h
   sat/SolvableSet.h
+  sat/SolvableType.h
+  sat/SolvableSpec.h
   sat/SolvIterMixin.h
-  sat/Queue.cc
+  sat/Map.h
+  sat/Queue.h
+  sat/FileConflicts.h
   sat/Transaction.h
   sat/WhatProvides.h
   sat/WhatObsoletes.h
@@ -551,12 +579,11 @@ SET( zypp_sat_HEADERS
   sat/LookupAttr.h
   sat/LookupAttrTools.h
   sat/SolvAttr.h
-  sat/AttrMatcher.h
 )
 
 INSTALL(  FILES
   ${zypp_sat_HEADERS}
-  DESTINATION ${CMAKE_INSTALL_PREFIX}/include/zypp/sat
+  DESTINATION ${INCLUDE_INSTALL_DIR}/zypp/sat
 )
 
 SET( zypp_sat_detail_SRCS
@@ -570,13 +597,14 @@ SET( zypp_sat_detail_HEADERS
 
 INSTALL(  FILES
   ${zypp_sat_detail_HEADERS}
-  DESTINATION ${CMAKE_INSTALL_PREFIX}/include/zypp/sat/detail
+  DESTINATION ${INCLUDE_INSTALL_DIR}/zypp/sat/detail
 )
 
 
 SET( zypp_target_SRCS
+  target/RpmPostTransCollector.cc
   target/RequestedLocalesFile.cc
-  target/SoftLocksFile.cc
+  target/SolvIdentFile.cc
   target/HardLocksFile.cc
   target/CommitPackageCache.cc
   target/CommitPackageCacheImpl.cc
@@ -584,11 +612,14 @@ SET( zypp_target_SRCS
   target/TargetCallbackReceiver.cc
   target/TargetException.cc
   target/TargetImpl.cc
+  target/TargetImpl.commitFindFileConflicts.cc
+
 )
 
 SET( zypp_target_HEADERS
+  target/RpmPostTransCollector.h
   target/RequestedLocalesFile.h
-  target/SoftLocksFile.h
+  target/SolvIdentFile.h
   target/HardLocksFile.h
   target/CommitPackageCache.h
   target/CommitPackageCacheImpl.h
@@ -600,22 +631,9 @@ SET( zypp_target_HEADERS
 
 INSTALL(  FILES
   ${zypp_target_HEADERS}
-  DESTINATION ${CMAKE_INSTALL_PREFIX}/include/zypp/target
+  DESTINATION ${INCLUDE_INSTALL_DIR}/zypp/target
 )
 
-IF(NOT UDEV_FOUND)
-IF(HAL_FOUND)
-SET( zypp_target_hal_SRCS
-  target/hal/HalContext.cc
-)
-SET( zypp_target_hal_HEADERS
-  target/hal/HalContext.h
-  target/hal/HalException.h
-)
-ENDIF(HAL_FOUND)
-ENDIF(NOT UDEV_FOUND)
-# as HAL is deprecated, we don't install headers
-
 SET( zypp_target_modalias_SRCS
   target/modalias/Modalias.cc
 )
@@ -626,7 +644,7 @@ SET( zypp_target_modalias_HEADERS
 
 INSTALL(  FILES
   ${zypp_target_modalias_HEADERS}
-  DESTINATION ${CMAKE_INSTALL_PREFIX}/include/zypp/target/modalias
+  DESTINATION ${INCLUDE_INSTALL_DIR}/zypp/target/modalias
 )
 
 SET( zypp_target_rpm_SRCS
@@ -636,7 +654,6 @@ SET( zypp_target_rpm_SRCS
   target/rpm/RpmException.cc
   target/rpm/RpmHeader.cc
   target/rpm/librpmDb.cc
-  target/rpm/librpmDb.cv3.cc
 )
 
 SET( zypp_target_rpm_HEADERS
@@ -652,23 +669,7 @@ SET( zypp_target_rpm_HEADERS
 
 INSTALL(  FILES
   ${zypp_target_rpm_HEADERS}
-  DESTINATION ${CMAKE_INSTALL_PREFIX}/include/zypp/target/rpm
-)
-
-SET( zypp_thread_SRCS
-  thread/Mutex.cc
-)
-
-SET( zypp_thread_HEADERS
-  thread/Mutex.h
-  thread/MutexException.h
-  thread/MutexLock.h
-  thread/Once.h
-)
-
-INSTALL(  FILES
-  ${zypp_thread_HEADERS}
-  DESTINATION ${CMAKE_INSTALL_PREFIX}/include/zypp/thread
+  DESTINATION ${INCLUDE_INSTALL_DIR}/zypp/target/rpm
 )
 
 SET( zypp_ui_SRCS
@@ -689,7 +690,7 @@ SET( zypp_ui_HEADERS
 
 INSTALL(  FILES
   ${zypp_ui_HEADERS}
-  DESTINATION ${CMAKE_INSTALL_PREFIX}/include/zypp/ui
+  DESTINATION ${INCLUDE_INSTALL_DIR}/zypp/ui
 )
 
 SET( zypp_url_SRCS
@@ -705,7 +706,7 @@ SET( zypp_url_HEADERS
 
 INSTALL(  FILES
   ${zypp_url_HEADERS}
-  DESTINATION ${CMAKE_INSTALL_PREFIX}/include/zypp/url
+  DESTINATION ${INCLUDE_INSTALL_DIR}/zypp/url
 )
 
 SET( zypp_zypp_detail_SRCS
@@ -719,7 +720,7 @@ SET( zypp_zypp_detail_HEADERS
 
 INSTALL(  FILES
   ${zypp_zypp_detail_HEADERS}
-  DESTINATION ${CMAKE_INSTALL_PREFIX}/include/zypp/zypp_detail
+  DESTINATION ${INCLUDE_INSTALL_DIR}/zypp/zypp_detail
 )
 
 SET( zypp_repo_SRCS
@@ -758,24 +759,21 @@ SET( zypp_repo_HEADERS
   repo/Downloader.h
   repo/RepoVariables.h
   repo/RepoInfoBase.h
-  repo/RepoInfoBaseImpl.h
   repo/PluginServices.h
   repo/ServiceRepos.h
 )
 
 INSTALL( FILES
   ${zypp_repo_HEADERS}
-  DESTINATION ${CMAKE_INSTALL_PREFIX}/include/zypp/repo
+  DESTINATION ${INCLUDE_INSTALL_DIR}/zypp/repo
 )
 
 SET( zypp_repo_yum_SRCS
   repo/yum/Downloader.cc
-  repo/yum/ResourceType.cc
 )
 
 SET( zypp_repo_yum_HEADERS
   repo/yum/Downloader.h
-  repo/yum/ResourceType.h
 )
 
 SET( zypp_repo_susetags_SRCS
@@ -786,14 +784,6 @@ SET( zypp_repo_susetags_HEADERS
   repo/susetags/Downloader.h
 )
 
-SET( zypp_ws_SRCS
-  ws/WebpinResult.cc
-)
-
-SET( zypp_ws_HEADERS
-  ws/WebpinResult.h
-)
-
 ####################################################################
 
 SET( zypp_misc_HEADERS
@@ -809,19 +799,19 @@ SET( zypp_misc_SRCS
 
 INSTALL( FILES
   ${zypp_misc_HEADERS}
-  DESTINATION ${CMAKE_INSTALL_PREFIX}/include/zypp/misc
+  DESTINATION ${INCLUDE_INSTALL_DIR}/zypp/misc
 )
 
 ####################################################################
 
+add_subdirectory( zyppng )
+
 SET( zypp_lib_SRCS
 ${zypp_misc_SRCS}
 ${zypp_pool_SRCS}
 ${zypp_parser_susetags_SRCS}
 ${zypp_parser_xml_SRCS}
 ${zypp_parser_yum_SRCS}
-${zypp_parser_plaindir_SRCS}
-${zypp_parser_ws_SRCS}
 ${zypp_parser_SRCS}
 ${zypp_media_proxyinfo_SRCS}
 ${zypp_media_SRCS}
@@ -836,14 +826,13 @@ ${zypp_target_modalias_SRCS}
 ${zypp_target_SRCS}
 ${zypp_solver_detail_SRCS}
 ${zypp_ui_SRCS}
-${zypp_thread_SRCS}
-${zypp_ws_SRCS}
 ${zypp_SRCS}
 ${zypp_zypp_detail_SRCS}
 ${zypp_sat_SRCS}
 ${zypp_sat_detail_SRCS}
 ${zypp_EARLY_SRCS}
 ${zypp_base_SRCS}
+${zyppng_SRCS}
 )
 
 SET( zypp_lib_HEADERS
@@ -851,28 +840,26 @@ ${zypp_target_rpm_HEADERS}
 ${zypp_parser_tagfile_HEADERS}
 ${zypp_parser_susetags_HEADERS}
 ${zypp_parser_yum_HEADERS}
-${zypp_parser_plaindir_HEADERS}
 ${zypp_parser_xml_HEADERS}
-${zypp_parser_ws_HEADERS}
 ${zypp_parser_HEADERS}
 ${zypp_ui_HEADERS}
 ${zypp_media_HEADERS}
 ${zypp_media_proxyinfo_HEADERS}
 ${zypp_base_HEADERS}
+${zypp_solver_HEADERS}
 ${zypp_solver_detail_HEADERS}
 ${zypp_sat_HEADERS}
 ${zypp_sat_detail_HEADERS}
 ${zypp_url_HEADERS}
-${zypp_ws_HEADERS}
 ${zypp_HEADERS}
 ${zypp_zypp_detail_HEADERS}
-${zypp_thread_HEADERS}
 ${zypp_repo_HEADERS}
 ${zypp_source_susetags_HEADERS}
 ${zypp_target_modalias_HEADERS}
 ${zypp_target_HEADERS}
 ${zypp_pool_HEADERS}
 ${zypp_misc_HEADERS}
+${zyppng_HEADERS}
 )
 
 #
@@ -907,43 +894,84 @@ SET_LOGGROUP( "libsolv" ${zypp_sat_SRCS} )
 #SET_LOGGROUP( "group" ${zypp_parser_SRCS} )
 #SET_LOGGROUP( "group" ${zypp_SRCS} )
 #SET_LOGGROUP( "group" ${zypp_zypp_detail_SRCS} )
-#SET_LOGGROUP( "group" ${zypp_thread_SRCS} )
 #SET_LOGGROUP( "group" ${zypp_source_susetags_SRCS} )
 #SET_LOGGROUP( "group" ${zypp_target_modalias_SRCS} )
 #SET_LOGGROUP( "group" ${zypp_target_SRCS} )
 #SET_LOGGROUP( "group" ${zypp_parser_yum_SRCS} )
 #SET_LOGGROUP( "group" ${zypp_pool_SRCS} )
 
-
-ADD_LIBRARY(zypp SHARED ${zypp_lib_SRCS})
-SET_TARGET_PROPERTIES( zypp PROPERTIES VERSION "${LIBZYPP_VERSION_INFO}" )
-SET_TARGET_PROPERTIES( zypp PROPERTIES SOVERSION "${LIBZYPP_SOVERSION_INFO}" )
-ADD_DEPENDENCIES(zypp schema_header)
-# System libraries
-SET(UTIL_LIBRARY util)
-TARGET_LINK_LIBRARIES(zypp ${UTIL_LIBRARY} )
-TARGET_LINK_LIBRARIES(zypp ${RPM_LIBRARY} )
-TARGET_LINK_LIBRARIES(zypp ${GETTEXT_LIBRARIES} )
-TARGET_LINK_LIBRARIES(zypp ${CURL_LIBRARY} )
-TARGET_LINK_LIBRARIES(zypp ${LIBXML_LIBRARY} )
-TARGET_LINK_LIBRARIES(zypp ${ZLIB_LIBRARY} )
-TARGET_LINK_LIBRARIES(zypp ${LibSolv_LIBRARIES} ${EXPAT_LIBRARY})
-TARGET_LINK_LIBRARIES(zypp ${OPENSSL_LIBRARIES} )
-TARGET_LINK_LIBRARIES(zypp ${CRYPTO_LIBRARIES} )
-TARGET_LINK_LIBRARIES(zypp ${SIGNALS_LIBRARY} )
-
-IF ( UDEV_FOUND )
-  TARGET_LINK_LIBRARIES(zypp ${UDEV_LIBRARY} )
-ELSE ( UDEV_FOUND )
-  IF ( HAL_FOUND )
-    TARGET_LINK_LIBRARIES(zypp ${HAL_LIBRARY} ${HAL_STORAGE_LIBRARY} ${DBUS_LIBRARY} )
-  ENDIF ( HAL_FOUND )
-ENDIF ( UDEV_FOUND )
-
-TARGET_LINK_LIBRARIES(zypp ${LIBPROXY_LIBRARIES} )
+ADD_LIBRARY( zypp-objlib OBJECT ${zypp_lib_SRCS} ${zypp_lib_HEADERS} )
+
+macro( ADDZYPPLIB LIBNAME )
+  message( "ADDING lib ${LIBNAME} to project" )
+  ADD_LIBRARY(${LIBNAME} SHARED $<TARGET_OBJECTS:zypp-objlib> )
+  SET_TARGET_PROPERTIES( ${LIBNAME} PROPERTIES VERSION "${LIBZYPP_VERSION_INFO}" )
+  SET_TARGET_PROPERTIES( ${LIBNAME} PROPERTIES SOVERSION "${LIBZYPP_SOVERSION_INFO}" )
+  # System libraries
+  SET(UTIL_LIBRARY util)
+  TARGET_LINK_LIBRARIES(${LIBNAME} ${UTIL_LIBRARY} )
+  TARGET_LINK_LIBRARIES(${LIBNAME} ${RPM_LIBRARY} )
+  TARGET_LINK_LIBRARIES(${LIBNAME} ${GETTEXT_LIBRARIES} )
+  TARGET_LINK_LIBRARIES(${LIBNAME} ${CURL_LIBRARIES} )
+  TARGET_LINK_LIBRARIES(${LIBNAME} ${LIBXML2_LIBRARIES} )
+  TARGET_LINK_LIBRARIES(${LIBNAME} ${ZLIB_LIBRARY} )
+  TARGET_LINK_LIBRARIES(${LIBNAME} ${LibSolv_LIBRARIES} )
+  TARGET_LINK_LIBRARIES(${LIBNAME} ${OPENSSL_LIBRARIES} )
+  TARGET_LINK_LIBRARIES(${LIBNAME} ${CRYPTO_LIBRARIES} )
+  TARGET_LINK_LIBRARIES(${LIBNAME} ${SIGNALS_LIBRARY})
+  TARGET_LINK_LIBRARIES(${LIBNAME} ${Boost_THREAD_LIBRARY})
+  TARGET_LINK_LIBRARIES(${LIBNAME} ${GPGME_PTHREAD_LIBRARIES})
+  target_link_libraries(${LIBNAME} ${SIGCPP_LIBRARIES})
+  target_link_libraries(${LIBNAME} ${LIBGLIB_LIBRARIES})
+
+  IF (ENABLE_ZCHUNK_COMPRESSION)
+         TARGET_LINK_LIBRARIES(${LIBNAME} ${ZCHUNK_LDFLAGS})
+  ENDIF(ENABLE_ZCHUNK_COMPRESSION)
+
+  IF ( UDEV_FOUND )
+    TARGET_LINK_LIBRARIES(${LIBNAME} ${UDEV_LIBRARY} )
+  ELSE ( UDEV_FOUND )
+    IF ( HAL_FOUND )
+      TARGET_LINK_LIBRARIES(${LIBNAME} ${HAL_LIBRARY} ${HAL_STORAGE_LIBRARY} ${DBUS_LIBRARY} )
+    ENDIF ( HAL_FOUND )
+  ENDIF ( UDEV_FOUND )
+
+  TARGET_LINK_LIBRARIES( ${LIBNAME} ${LIBPROXY_LIBRARIES} )
+
+endmacro()
+
+#Release library stripped from most symbols, thats what we release to the packages
+ADDZYPPLIB(zypp)
+set_target_properties ( zypp PROPERTIES LINK_FLAGS "-Wl,--version-script=${CMAKE_CURRENT_SOURCE_DIR}/libzypp.map" )
 
 INSTALL(TARGETS zypp LIBRARY DESTINATION ${LIB_INSTALL_DIR} )
 
+#library build just for using it in tests, contains all symbols
+ADDZYPPLIB(zypp-allsym)
+
+#this part does nothing yet, only when switching away from using a map file to
+#a approach where symbols are exported explicitely it would make a difference
+#ZYPPNG symbols need to be added to the map file to be exported
+IF( EXPORT_NG_API )
+ADD_DEFINITIONS(-DEXPORT_EXPERIMENTAL_API)
+INCLUDE(GenerateExportHeader)
+message("Exporting experimental libzypp-ng API")
+GENERATE_EXPORT_HEADER(
+  zypp
+  BASE_NAME zypp-ng
+  PREFIX_NAME LIB
+)
+ENDIF ( EXPORT_NG_API )
+
 # install XML schemas
 FILE( GLOB YUM_SCHEMA_FILES ${LIBZYPP_SOURCE_DIR}/zypp/parser/yum/schema/*.rng )
 INSTALL(FILES ${YUM_SCHEMA_FILES} DESTINATION "${CMAKE_INSTALL_PREFIX}/share/zypp/schema/yum" )
+
+ADD_CUSTOM_TARGET ( buildmon
+  COMMAND test ! -x ./buildmon || ./buildmon
+)
+
+ADD_CUSTOM_COMMAND (
+  TARGET zypp POST_BUILD
+  COMMAND test ! -x ./buildmon || ./buildmon
+)