fixup Fix to build with libxml 2.12.x (fixes #505)
[platform/upstream/libzypp.git] / CMakeLists.txt
index 29c17b8..1245837 100644 (file)
@@ -1,22 +1,23 @@
+cmake_minimum_required(VERSION 3.1)
 PROJECT(LIBZYPP)
 SET( PACKAGE "libzypp" )
 # where to look first for cmake modules, before ${CMAKE_ROOT}/Modules/ is checked
 SET( CMAKE_MODULE_PATH ${LIBZYPP_SOURCE_DIR}/cmake/modules )
-
-cmake_minimum_required(VERSION 2.6)
+INCLUDE(ZyppCommon)
 
 OPTION (ENABLE_BUILD_DOCS "Build documentation by default?" OFF)
 OPTION (ENABLE_BUILD_TRANS "Build translation files by default?" OFF)
 OPTION (ENABLE_BUILD_TESTS "Build and run test suite by default?" OFF)
 OPTION (ENABLE_USE_THREADS "Enable using threads (NOT being used by threads!)?" OFF)
+OPTION (ENABLE_ZCHUNK_COMPRESSION "Build with zchunk compression support?" OFF)
+OPTION (DISABLE_MEDIABACKEND_TESTS "Disable Tests depending on Nginx and libfcgi?" OFF)
 
 OPTION (DISABLE_LIBPROXY "Build without libproxy support even if package is installed?" OFF)
 OPTION (DISABLE_AUTODOCS "Do not require doxygen being installed (required to build autodocs)?" OFF)
+OPTION (EXPORT_NG_API "Export experimental libzypp API" OFF)
 #--------------------------------------------------------------------------------
 SET (have_system x)
 
-set (CMAKE_CXX_STANDARD 14)
-
 IF (DEBIAN)
   MESSAGE (STATUS "Building for Debian")
   SET (ENABLE_BUILD_DOCS ON)
@@ -40,7 +41,7 @@ if(COMMAND cmake_policy)
   cmake_policy(SET CMP0003 NEW)
 endif(COMMAND cmake_policy)
 
-INCLUDE(ZyppCommon)
+find_package(FindPkgConfig)
 INCLUDE( ${LIBZYPP_SOURCE_DIR}/VERSION.cmake )
 
 MATH( EXPR LIBZYPP_NUMVERSION "${LIBZYPP_MAJOR} * 10000 + ${LIBZYPP_MINOR} * 100 + ${LIBZYPP_PATCH}" )
@@ -52,6 +53,7 @@ MATH( EXPR LIBZYPP_SO_FIRST  "${LIBZYPP_CURRENT}-${LIBZYPP_AGE}" )
 SET( VERSION "${LIBZYPP_MAJOR}.${LIBZYPP_MINOR}.${LIBZYPP_PATCH}" )
 CONFIGURE_FILE ( zypp/APIConfig.h.in zypp/APIConfig.h )
 
+SET (CMAKE_CXX_STANDARD ${ZYPPCOMMON_CXX_STANDARD})
 include(CheckCCompilerFlag)
 include(CheckCXXCompilerFlag)
 CHECK_C_COMPILER_FLAG("-Werror=format-security" CC_FORMAT_SECURITY)
@@ -97,7 +99,13 @@ MACRO(ADD_TESTS)
   FOREACH( loop_var ${ARGV} )
     SET_SOURCE_FILES_PROPERTIES( ${loop_var}_test.cc COMPILE_FLAGS "-DBOOST_TEST_DYN_LINK -DBOOST_TEST_MAIN -DBOOST_AUTO_TEST_MAIN=\"\" " )
     ADD_EXECUTABLE( ${loop_var}_test ${loop_var}_test.cc )
-    TARGET_LINK_LIBRARIES( ${loop_var}_test  zypp ${Boost_UNIT_TEST_FRAMEWORK_LIBRARY} zypp_test_utils)
+
+    SET(TEST_REQ_LIBS zypp-allsym ${Boost_UNIT_TEST_FRAMEWORK_LIBRARY} )
+    IF(NOT DISABLE_MEDIABACKEND_TESTS)
+      LIST( APPEND TEST_REQ_LIBS zypp_test_utils)
+    ENDIF()
+
+    TARGET_LINK_LIBRARIES( ${loop_var}_test ${TEST_REQ_LIBS} )
     ADD_TEST( ${loop_var}_test ${CMAKE_CURRENT_BINARY_DIR}/${loop_var}_test --catch_system_errors=no)
   ENDFOREACH( loop_var )
 ENDMACRO(ADD_TESTS)
@@ -239,6 +247,20 @@ ELSE ( NOT DOXYGEN )
   MESSAGE( STATUS "doxygen found: ${DOXYGEN}" )
 ENDIF ( NOT DOXYGEN )
 
+IF (ENABLE_ZCHUNK_COMPRESSION)
+  MESSAGE("Building with zchunk support enabled.")
+  PKG_CHECK_MODULES (ZCHUNK zck REQUIRED)
+  SET( CMAKE_C_FLAGS     "${CMAKE_C_FLAGS} ${ZCHUNK_CFLAGS}" )
+  SET( CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${ZCHUNK_CFLAGS}" )
+  ADD_DEFINITIONS (-DENABLE_ZCHUNK_COMPRESSION=1)
+ENDIF(ENABLE_ZCHUNK_COMPRESSION)
+
+pkg_check_modules ( SIGCPP REQUIRED sigc++-2.0 )
+INCLUDE_DIRECTORIES( ${SIGCPP_INCLUDE_DIRS} )
+
+pkg_check_modules ( LIBGLIB REQUIRED glib-2.0 )
+INCLUDE_DIRECTORIES( ${LIBGLIB_INCLUDE_DIRS} )
+
 MESSAGE(STATUS "soname: ${LIBZYPP_VERSION_INFO}")
 MESSAGE(STATUS "version: ${VERSION}")
 
@@ -277,7 +299,6 @@ ADD_SUBDIRECTORY( zypp )
 ADD_SUBDIRECTORY( devel EXCLUDE_FROM_ALL )
 ADD_SUBDIRECTORY( tools )
 ADD_SUBDIRECTORY( doc )
-ADD_SUBDIRECTORY( vendor )
 
 IF ( ENABLE_BUILD_TRANS )
   ADD_SUBDIRECTORY( po )