Imported Upstream version 0.7.15
[platform/upstream/libsolv.git] / CMakeLists.txt
index b39fd99..3541f49 100644 (file)
@@ -17,6 +17,7 @@ OPTION (ENABLE_RPMPKG "Build with rpm package support?" OFF)
 OPTION (ENABLE_PUBKEY "Build with pubkey support?" OFF)
 OPTION (ENABLE_RPMDB_BYRPMHEADER "Build with rpmdb Header support?" OFF)
 OPTION (ENABLE_RPMDB_LIBRPM "Use librpm to access the rpm database?" OFF)
+OPTION (ENABLE_RPMDB_BDB "Use BerkeleyDB to access the rpm database?" OFF)
 OPTION (ENABLE_RPMPKG_LIBRPM "Use librpm to access rpm header information?" OFF)
 OPTION (ENABLE_RPMMD "Build with rpmmd repository support?" OFF)
 OPTION (ENABLE_SUSEREPO "Build with suse repository support?" OFF)
@@ -57,6 +58,9 @@ ENDIF (NOT PKGCONFIG_INSTALL_DIR)
 SET (CMAKE_MODULE_PATH ${CMAKE_SOURCE_DIR}/cmake/modules)
 INSTALL( FILES ${CMAKE_MODULE_PATH}/FindLibSolv.cmake DESTINATION ${CMAKE_INSTALL_PREFIX}/share/cmake/Modules )
 
+# for shared libraries on windows (DLLs), we just export all symbols for now
+SET(CMAKE_WINDOWS_EXPORT_ALL_SYMBOLS ON)
+
 INCLUDE (${CMAKE_SOURCE_DIR}/VERSION.cmake)
 
 SET (have_system x)
@@ -205,6 +209,12 @@ ENDIF (ENABLE_RPMDB)
 
 INCLUDE (CheckIncludeFile)
 IF (ENABLE_RPMDB OR ENABLE_RPMPKG_LIBRPM)
+  FIND_PATH (RPM_INCLUDE_DIR NAMES rpm/rpmio.h)
+  IF (RPM_INCLUDE_DIR)
+    INCLUDE_DIRECTORIES (${RPM_INCLUDE_DIR})
+    SET (CMAKE_REQUIRED_INCLUDES ${CMAKE_REQUIRED_INCLUDES} ${RPM_INCLUDE_DIR})
+  ENDIF (RPM_INCLUDE_DIR)
+
   FIND_LIBRARY (RPMDB_LIBRARY NAMES rpmdb)
 
   IF (NOT RPMDB_LIBRARY)
@@ -223,21 +233,29 @@ IF (ENABLE_RPMDB OR ENABLE_RPMPKG_LIBRPM)
     ENDIF (RPMMISC_LIBRARY)
   ENDIF (RPM5)
 
-  # check if rpm contains a bundled berkeley db
-  CHECK_INCLUDE_FILE(rpm/db.h HAVE_RPM_DB_H)
-  IF (NOT ENABLE_RPMDB_LIBRPM)
-    IF (NOT HAVE_RPM_DB_H)
-      FIND_LIBRARY (DB_LIBRARY NAMES db)
-      IF (DB_LIBRARY)
-        SET (RPMDB_LIBRARY ${DB_LIBRARY} ${RPMDB_LIBRARY})
-      ENDIF (DB_LIBRARY)
-      IF (DB_INCLUDE_DIR)
-        INCLUDE_DIRECTORIES (${DB_INCLUDE_DIR})
-      ENDIF (DB_INCLUDE_DIR)
-    ENDIF (NOT HAVE_RPM_DB_H)
-  ENDIF (NOT ENABLE_RPMDB_LIBRPM)
+  IF (ENABLE_RPMDB)
+    IF (NOT ENABLE_RPMDB_BDB)
+      SET (ENABLE_RPMDB_LIBRPM ON)
+    ENDIF (NOT ENABLE_RPMDB_BDB)
+
+    # check if rpm contains a bundled berkeley db
+    CHECK_INCLUDE_FILE(rpm/db.h HAVE_RPM_DB_H)
+    IF (NOT ENABLE_RPMDB_LIBRPM)
+      IF (NOT HAVE_RPM_DB_H)
+        FIND_LIBRARY (DB_LIBRARY NAMES db)
+        IF (DB_LIBRARY)
+          SET (RPMDB_LIBRARY ${DB_LIBRARY} ${RPMDB_LIBRARY})
+        ENDIF (DB_LIBRARY)
+        IF (DB_INCLUDE_DIR)
+          INCLUDE_DIRECTORIES (${DB_INCLUDE_DIR})
+        ENDIF (DB_INCLUDE_DIR)
+      ENDIF (NOT HAVE_RPM_DB_H)
+    ENDIF (NOT ENABLE_RPMDB_LIBRPM)
+  ENDIF (ENABLE_RPMDB)
+
   INCLUDE (CheckLibraryExists)
-  CHECK_LIBRARY_EXISTS(rpmio pgpDigGetParams "" HAVE_PGPDIGGETPARAMS)
+  CHECK_LIBRARY_EXISTS(rpm rpmdbNextIteratorHeaderBlob "" HAVE_RPMDBNEXTITERATORHEADERBLOB)
+  CHECK_LIBRARY_EXISTS(rpm rpmdbFStat "" HAVE_RPMDBFSTAT)
 ENDIF (ENABLE_RPMDB OR ENABLE_RPMPKG_LIBRPM)
 
 IF (ENABLE_PUBKEY)
@@ -270,7 +288,8 @@ ENDIF (${CMAKE_MAJOR_VERSION} GREATER 2)
 
 # should create config.h with #cmakedefine instead...
 FOREACH (VAR HAVE_STRCHRNUL HAVE_FOPENCOOKIE HAVE_FUNOPEN WORDS_BIGENDIAN
-  HAVE_RPM_DB_H HAVE_PGPDIGGETPARAMS WITH_LIBXML2 WITHOUT_COOKIEOPEN)
+  HAVE_RPM_DB_H HAVE_RPMDBNEXTITERATORHEADERBLOB HAVE_RPMDBFSTAT
+  WITH_LIBXML2 WITHOUT_COOKIEOPEN)
   IF(${VAR})
     ADD_DEFINITIONS (-D${VAR}=1)
     SET (SWIG_FLAGS ${SWIG_FLAGS} -D${VAR})
@@ -420,9 +439,9 @@ ENDIF (HAVE_LINKER_AS_NEEDED)
 ADD_SUBDIRECTORY (src)
 ADD_SUBDIRECTORY (ext)
 ADD_SUBDIRECTORY (tools)
-IF (ENABLE_PERL OR ENABLE_PYTHON OR ENABLE_RUBY OR ENABLE_TCL)
+IF (ENABLE_PERL OR ENABLE_PYTHON OR ENABLE_PYTHON3 OR ENABLE_RUBY OR ENABLE_TCL)
     ADD_SUBDIRECTORY (bindings)
-ENDIF (ENABLE_PERL OR ENABLE_PYTHON OR ENABLE_RUBY OR ENABLE_TCL)
+ENDIF (ENABLE_PERL OR ENABLE_PYTHON OR ENABLE_PYTHON3 OR ENABLE_RUBY OR ENABLE_TCL)
 ADD_SUBDIRECTORY (examples)
 ADD_SUBDIRECTORY (doc)