Imported Upstream version 0.7.13
[platform/upstream/libsolv.git] / CMakeLists.txt
index e331318..347bb0d 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)
@@ -126,6 +130,8 @@ SET (ENABLE_HAIKU ON)
 SET (have_system ${have_system}x)
 ENDIF (HAIKU)
 
+SET (CMAKE_MACOSX_RPATH ON)
+
 IF (${have_system} STREQUAL x)
     MESSAGE (STATUS "Building for no system")
 ENDIF (${have_system} STREQUAL x)
@@ -221,21 +227,30 @@ 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)
@@ -268,7 +283,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_PGPDIGGETPARAMS HAVE_RPMDBNEXTITERATORHEADERBLOB HAVE_RPMDBFSTAT
+  WITH_LIBXML2 WITHOUT_COOKIEOPEN)
   IF(${VAR})
     ADD_DEFINITIONS (-D${VAR}=1)
     SET (SWIG_FLAGS ${SWIG_FLAGS} -D${VAR})
@@ -418,9 +434,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)