Imported Upstream version 17.22.1
[platform/upstream/libzypp.git] / zypp / CMakeLists.txt
index 4919a50..e5524f9 100644 (file)
@@ -4,8 +4,11 @@ SET( POT_FILE_DEPENDS ${POT_FILE_DEPENDS} PARENT_SCOPE )
 
 
 ADD_DEFINITIONS(-DLOCALEDIR="${CMAKE_INSTALL_PREFIX}/share/locale" -DTEXTDOMAIN="zypp" -DZYPP_DLL )
+INCLUDE_DIRECTORIES( ${CMAKE_CURRENT_BINARY_DIR} )
 
-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
@@ -36,6 +39,7 @@ SET( zypp_SRCS
   HistoryLogData.cc
   IdString.cc
   InstanceId.cc
+  KeyManager.cc
   KeyRing.cc
   Locks.cc
   MediaSetAccess.cc
@@ -54,6 +58,7 @@ SET( zypp_SRCS
   ProgressData.cc
   ProvideFilePolicy.cc
   PublicKey.cc
+  PurgeKernels.cc
   Range.cc
   Rel.cc
   RepoInfo.cc
@@ -64,6 +69,7 @@ SET( zypp_SRCS
   ResObject.cc
   Resolvable.cc
   Resolver.cc
+  ResolverFocus.cc
   ResolverProblem.cc
   ResPool.cc
   ResPoolProxy.cc
@@ -71,6 +77,7 @@ SET( zypp_SRCS
   ServiceInfo.cc
   Signature.cc
   SrcPackage.cc
+  ShutdownLock.cc
   SysContent.cc
   Target.cc
   TmpPath.cc
@@ -91,7 +98,7 @@ SET( zypp_EARLY_SRCS
 )
 
 SET( zypp_HEADERS
-  APIConfig.h
+  ${CMAKE_CURRENT_BINARY_DIR}/APIConfig.h
   Application.h
   Arch.h
   AutoDispose.h
@@ -128,6 +135,7 @@ SET( zypp_HEADERS
   IdStringType.h
   InstanceId.h
   KeyContext.h
+  KeyManager.h
   KeyRing.h
   KVMap.h
   LanguageCode.h
@@ -155,6 +163,7 @@ SET( zypp_HEADERS
   ProgressData.h
   ProvideFilePolicy.h
   PublicKey.h
+  PurgeKernels.h
   Range.h
   RelCompare.h
   Rel.h
@@ -169,6 +178,7 @@ SET( zypp_HEADERS
   ResObjects.h
   Resolvable.h
   Resolver.h
+  ResolverFocus.h
   ResolverNamespace.h
   ResolverProblem.h
   ResPool.h
@@ -198,12 +208,12 @@ SET( zypp_HEADERS
 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
@@ -221,15 +231,18 @@ 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
@@ -240,7 +253,6 @@ SET( zypp_base_HEADERS
   base/UserRequestException.h
   base/EnumClass.h
   base/ExternalDataSource.h
-  base/Fd.h
   base/Flags.h
   base/Function.h
   base/Functional.h
@@ -252,6 +264,7 @@ SET( zypp_base_HEADERS
   base/Iterable.h
   base/Iterator.h
   base/Json.h
+  base/LocaleGuard.h
   base/LogControl.h
   base/LogTools.h
   base/Logger.h
@@ -265,6 +278,7 @@ SET( zypp_base_HEADERS
   base/SetRelationMixin.h
   base/SetTracker.h
   base/Signal.h
+  base/SimpleStreambuf.h
   base/String.h
   base/StrMatcher.h
   base/Regex.h
@@ -276,12 +290,25 @@ SET( zypp_base_HEADERS
   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 ${INCLUDE_INSTALL_DIR}/zypp/base
 )
 
 SET( zypp_media_SRCS
+  media/CurlHelper.cc
   media/MediaException.cc
   media/MediaAccess.cc
   media/MediaHandler.cc
@@ -440,12 +467,10 @@ INSTALL(  FILES
 
 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
@@ -453,20 +478,6 @@ INSTALL(  FILES
   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 ${INCLUDE_INSTALL_DIR}/zypp/parser/ws
-)
-
-
 SET( zypp_pool_SRCS
   pool/PoolImpl.cc
   pool/PoolStats.cc
@@ -484,6 +495,17 @@ INSTALL(  FILES
   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/ProblemSolutionIgnore.cc
   solver/detail/ProblemSolutionCombi.cc
@@ -527,6 +549,7 @@ 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
@@ -544,6 +567,7 @@ SET( zypp_sat_HEADERS
   sat/Solvable.h
   sat/SolvableSet.h
   sat/SolvableType.h
+  sat/SolvableSpec.h
   sat/SolvIterMixin.h
   sat/Map.h
   sat/Queue.h
@@ -610,19 +634,6 @@ INSTALL(  FILES
   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
 )
@@ -643,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
@@ -662,22 +672,6 @@ INSTALL(  FILES
   DESTINATION ${INCLUDE_INSTALL_DIR}/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 ${INCLUDE_INSTALL_DIR}/zypp/thread
-)
-
 SET( zypp_ui_SRCS
   ui/Selectable.cc
   ui/SelectableImpl.cc
@@ -776,12 +770,10 @@ INSTALL( FILES
 
 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
@@ -792,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
@@ -820,13 +804,14 @@ INSTALL( FILES
 
 ####################################################################
 
+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_ws_SRCS}
 ${zypp_parser_SRCS}
 ${zypp_media_proxyinfo_SRCS}
 ${zypp_media_SRCS}
@@ -841,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
@@ -857,26 +841,25 @@ ${zypp_parser_tagfile_HEADERS}
 ${zypp_parser_susetags_HEADERS}
 ${zypp_parser_yum_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}
 )
 
 #
@@ -911,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}" )
-SET (CMAKE_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS} -Wl,--version-script=${CMAKE_CURRENT_SOURCE_DIR}/libzypp.map")
-# 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_LIBRARIES} )
-TARGET_LINK_LIBRARIES(zypp ${LIBXML2_LIBRARIES} )
-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
+)