X-Git-Url: http://review.tizen.org/git/?a=blobdiff_plain;f=CMakeLists.txt;h=c1f9fc50d5fad6b7eeef6c231a8b727a47401e22;hb=673b10389cfdea7282d2587a00a01c9b0cf713d9;hp=72677de54e9db912b36d5489bd70bce5b33a121f;hpb=1129ccb9a62c8d1474472495dda4356946a21e5c;p=platform%2Fupstream%2Flibsolv.git diff --git a/CMakeLists.txt b/CMakeLists.txt index 72677de..c1f9fc5 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -2,8 +2,31 @@ PROJECT (libsolv) CMAKE_MINIMUM_REQUIRED (VERSION 2.4) -OPTION(ENABLE_STATIC "Build a static version of the libraries?" OFF) -OPTION(DISABLE_SHARED "Do not build a shared version of the libraries?" OFF) +OPTION (ENABLE_STATIC "Build a static version of the libraries?" OFF) +OPTION (DISABLE_SHARED "Do not build a shared version of the libraries?" OFF) + +OPTION (ENABLE_PERL "Build the perl bindings?" OFF) +OPTION (ENABLE_PYTHON "Build the python bindings?" OFF) +OPTION (ENABLE_RUBY "Build the ruby bindings?" OFF) + +OPTION (USE_VENDORDIRS "Install the bindings in vendor directories?" OFF) + +OPTION (ENABLE_RPMDB "Build with rpm database support?" OFF) +OPTION (ENABLE_PUBKEY "Build with pubkey support?" OFF) +OPTION (ENABLE_RPMDB_BYRPMHEADER "Build with rpmdb Header support?" OFF) +OPTION (ENABLE_RPMMD "Build with rpmmd repository support?" OFF) +OPTION (ENABLE_SUSEREPO "Build with suse repository support?" OFF) +OPTION (ENABLE_COMPS "Build with fedora comps support?" OFF) +OPTION (ENABLE_HELIXREPO "Build with helix repository support?" OFF) +OPTION (ENABLE_DEBIAN "Build with debian database/repository support?" OFF) +OPTION (ENABLE_MDKREPO "Build with mandriva/mageia repository support?" OFF) +OPTION (ENABLE_ARCHREPO "Build with archlinux repository support?" OFF) +OPTION (ENABLE_CUDFREPO "Build with cudf repository support?" OFF) +OPTION (ENABLE_HAIKU "Build with Haiku package support?" OFF) +OPTION (ENABLE_APPDATA "Build with AppStream appdata support?" OFF) + +OPTION (ENABLE_LZMA_COMPRESSION "Build with lzma/xz compression support?" OFF) +OPTION (ENABLE_BZIP2_COMPRESSION "Build with bzip2 compression support?" OFF) #IF(${CMAKE_MAJOR_VERSION}.${CMAKE_MINOR_VERISION} GREATER 2.4) #ENDIF(${CMAKE_MAJOR_VERSION}.${CMAKE_MINOR_VERISION} GREATER 2.4) @@ -24,6 +47,11 @@ ELSE (DEFINED LIB) ENDIF (DEFINED LIB) MESSAGE (STATUS "Libraries will be installed in ${LIB_INSTALL_DIR}") SET (BIN_INSTALL_DIR "${CMAKE_INSTALL_PREFIX}/bin") +SET (MAN_INSTALL_DIR "${CMAKE_INSTALL_PREFIX}/man") +IF (IS_DIRECTORY "${CMAKE_INSTALL_PREFIX}/share/man" AND NOT IS_DIRECTORY "${CMAKE_INSTALL_PREFIX}/man") + SET (MAN_INSTALL_DIR "${CMAKE_INSTALL_PREFIX}/share/man") +ENDIF (IS_DIRECTORY "${CMAKE_INSTALL_PREFIX}/share/man" AND NOT IS_DIRECTORY "${CMAKE_INSTALL_PREFIX}/man") +MESSAGE(STATUS "Man pages will be installed in ${MAN_INSTALL_DIR}") #################################################################### # CONFIGURATION # @@ -31,64 +59,138 @@ SET (BIN_INSTALL_DIR "${CMAKE_INSTALL_PREFIX}/bin") # where to look first for cmake modules, before ${CMAKE_ROOT}/Modules/ is checked SET (CMAKE_MODULE_PATH ${CMAKE_SOURCE_DIR}/cmake/modules) +INSTALL( FILES ${CMAKE_MODULE_PATH}/FindLibSolv.cmake DESTINATION ${CMAKE_INSTALL_PREFIX}/share/cmake/Modules ) INCLUDE (${CMAKE_SOURCE_DIR}/VERSION.cmake) -FIND_PACKAGE (EXPAT REQUIRED) -FIND_PACKAGE (Check REQUIRED) -FIND_PACKAGE (ZLIB REQUIRED) +SET (have_system x) IF (FEDORA) MESSAGE(STATUS "Building for Fedora") ADD_DEFINITIONS (-DFEDORA) +SET (ENABLE_RPMDB ON) +SET (ENABLE_RPMMD ON) +SET (have_system ${have_system}x) ENDIF (FEDORA) IF (DEBIAN) MESSAGE (STATUS "Building for Debian") -ADD_DEFINITIONS (-DDEBIAN -DDEBIAN_SEMANTICS) +ADD_DEFINITIONS (-DDEBIAN) +SET (ENABLE_DEBIAN ON) +SET (have_system ${have_system}x) ENDIF (DEBIAN) -IF (MULTI_SEMANTICS) -MESSAGE (STATUS "Enabling multi dist support") -ADD_DEFINITIONS (-DMULTI_SEMANTICS) -ENDIF (MULTI_SEMANTICS) +IF (SUSE) +MESSAGE (STATUS "Building for SUSE") +ADD_DEFINITIONS (-DSUSE) +SET (ENABLE_RPMDB ON) +SET (ENABLE_PUBKEY ON) +SET (ENABLE_RPMDB_BYRPMHEADER ON) +SET (ENABLE_RPMMD ON) +SET (ENABLE_SUSEREPO ON) +SET (ENABLE_HELIXREPO ON) +SET (ENABLE_LINKED_PKGS ON) +SET (have_system ${have_system}x) +ENDIF (SUSE) + +IF (ARCHLINUX) +MESSAGE (STATUS "Building for Archlinux") +ADD_DEFINITIONS (-DARCHLINUX) +SET (ENABLE_ARCHREPO ON) +SET (have_system ${have_system}x) +ENDIF (ARCHLINUX) + +IF (MANDRIVA) +MESSAGE (STATUS "Building for Mandriva/Mageia") +ADD_DEFINITIONS (-DMANDRIVA) +SET (ENABLE_MDKREPO ON) +SET (ENABLE_RPMDB ON) +SET (have_system ${have_system}x) +ENDIF (MANDRIVA) + +IF (HAIKU) +MESSAGE(STATUS "Building for Haiku") +FIND_LIBRARY(HAIKU_BE_LIBRARY NAMES be) +FIND_LIBRARY(HAIKU_NETWORK_LIBRARY NAMES network) +FIND_LIBRARY(HAIKU_PACKAGE_LIBRARY NAMES package) +SET (HAIKU_SYSTEM_LIBRARIES + ${HAIKU_BE_LIBRARY} ${HAIKU_NETWORK_LIBRARY} ${HAIKU_PACKAGE_LIBRARY}) +ADD_DEFINITIONS (-DHAIKU) +SET (ENABLE_HAIKU ON) +SET (have_system ${have_system}x) +ENDIF (HAIKU) + +IF (${have_system} STREQUAL x) + MESSAGE (STATUS "Building for no system") + ADD_DEFINITIONS (-DNOSYSTEM) +ENDIF (${have_system} STREQUAL x) +IF (${have_system} STRGREATER xx) + MESSAGE (FATAL_ERROR "Can only compile for one system type.") +ENDIF (${have_system} STRGREATER xx) + +IF (ENABLE_ARCHREPO) +SET (ENABLE_LZMA_COMPRESSION ON) +ENDIF (ENABLE_ARCHREPO) + +FIND_PACKAGE (EXPAT REQUIRED) +FIND_PACKAGE (ZLIB REQUIRED) +IF (ENABLE_LZMA_COMPRESSION) +FIND_PACKAGE (LZMA REQUIRED) +ENDIF (ENABLE_LZMA_COMPRESSION) +IF (ENABLE_BZIP2_COMPRESSION) +FIND_PACKAGE (BZip2 REQUIRED) +ENDIF (ENABLE_BZIP2_COMPRESSION) IF (RPM5) MESSAGE (STATUS "Enabling RPM 5 support") ADD_DEFINITIONS (-DRPM5) +SET (ENABLE_RPMDB ON) +SET (ENABLE_RPMMD ON) FIND_PACKAGE (PkgConfig REQUIRED) PKG_CHECK_MODULES (RPM REQUIRED rpm) INCLUDE_DIRECTORIES (${RPM_INCLUDE_DIRS}) ENDIF (RPM5) +IF (MULTI_SEMANTICS) +MESSAGE (STATUS "Enabling multi dist support") +ADD_DEFINITIONS (-DMULTI_SEMANTICS) +ENDIF (MULTI_SEMANTICS) -IF (RPM5 OR NOT DEBIAN) -FIND_LIBRARY (RPMDB_LIBRARY NAMES rpmdb) - -IF (NOT RPMDB_LIBRARY) -FIND_LIBRARY (RPMDB_LIBRARY NAMES rpm) -ENDIF (NOT RPMDB_LIBRARY) - -FIND_LIBRARY (RPMIO_LIBRARY NAMES rpmio) -IF (RPMIO_LIBRARY) -SET(RPMDB_LIBRARY ${RPMIO_LIBRARY} ${RPMDB_LIBRARY}) -ENDIF (RPMIO_LIBRARY) - -IF (RPM5) -FIND_LIBRARY (RPMMISC_LIBRARY NAMES rpmmisc) -IF (RPMMISC_LIBRARY) -SET (RPMDB_LIBRARY ${RPMMISC_LIBRARY} ${RPMDB_LIBRARY}) -ENDIF (RPMMISC_LIBRARY) -ENDIF (RPM5) - -IF (RPM5 OR FEDORA) -FIND_LIBRARY (DB_LIBRARY NAMES db) -IF (DB_LIBRARY) -SET (RPMDB_LIBRARY ${DB_LIBRARY} ${RPMDB_LIBRARY}) -ENDIF (DB_LIBRARY) -ENDIF (RPM5 OR FEDORA) - -ENDIF (RPM5 OR NOT DEBIAN) +INCLUDE (CheckIncludeFile) +IF (ENABLE_RPMDB) + FIND_LIBRARY (RPMDB_LIBRARY NAMES rpmdb) + + IF (NOT RPMDB_LIBRARY) + FIND_LIBRARY (RPMDB_LIBRARY NAMES rpm) + ENDIF (NOT RPMDB_LIBRARY) + + FIND_LIBRARY (RPMIO_LIBRARY NAMES rpmio) + IF (RPMIO_LIBRARY) + SET(RPMDB_LIBRARY ${RPMIO_LIBRARY} ${RPMDB_LIBRARY}) + ENDIF (RPMIO_LIBRARY) + + IF (RPM5) + FIND_LIBRARY (RPMMISC_LIBRARY NAMES rpmmisc) + IF (RPMMISC_LIBRARY) + SET (RPMDB_LIBRARY ${RPMMISC_LIBRARY} ${RPMDB_LIBRARY}) + 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 HAVE_RPM_DB_H) + FIND_LIBRARY (DB_LIBRARY NAMES db) + IF (DB_LIBRARY) + SET (RPMDB_LIBRARY ${DB_LIBRARY} ${RPMDB_LIBRARY}) + ENDIF (DB_LIBRARY) + ENDIF (NOT HAVE_RPM_DB_H) + INCLUDE (CheckLibraryExists) + CHECK_LIBRARY_EXISTS(rpmio pgpDigGetParams "" HAVE_PGPDIGGETPARAMS) +ENDIF (ENABLE_RPMDB) + +IF (ENABLE_PUBKEY) + SET (ENABLE_PGPVRFY ON) +ENDIF (ENABLE_PUBKEY) INCLUDE (CheckFunctionExists) INCLUDE (TestBigEndian) @@ -99,9 +201,15 @@ CHECK_FUNCTION_EXISTS (funopen HAVE_FUNOPEN) TEST_BIG_ENDIAN (WORDS_BIGENDIAN) # should create config.h with #cmakedefine instead... -FOREACH (VAR HAVE_STRCHRNUL HAVE_FOPENCOOKIE HAVE_FUNOPEN WORDS_BIGENDIAN) +FOREACH (VAR HAVE_STRCHRNUL HAVE_FOPENCOOKIE HAVE_FUNOPEN WORDS_BIGENDIAN + HAVE_RPM_DB_H HAVE_PGPDIGGETPARAMS + ENABLE_RPMDB ENABLE_PUBKEY ENABLE_RPMMD ENABLE_RPMDB_BYRPMHEADER ENABLE_SUSEREPO ENABLE_COMPS + ENABLE_HELIXREPO ENABLE_MDKREPO ENABLE_ARCHREPO ENABLE_DEBIAN ENABLE_HAIKU + ENABLE_LZMA_COMPRESSION ENABLE_BZIP2_COMPRESSION ENABLE_PGPVRFY ENABLE_APPDATA + ENABLE_LINKED_PKGS) IF(${VAR}) ADD_DEFINITIONS (-D${VAR}=1) + SET (SWIG_FLAGS ${SWIG_FLAGS} -D${VAR}) ENDIF (${VAR}) ENDFOREACH (VAR) @@ -110,7 +218,7 @@ SET (VERSION "${LIBSOLV_MAJOR}.${LIBSOLV_MINOR}.${LIBSOLV_PATCH}") ADD_DEFINITIONS (-D_FILE_OFFSET_BITS=64) ADD_DEFINITIONS (-DVERSION=\\\"${VERSION}\\\") -CONFIGURE_FILE (src/satversion.h.in src/satversion.h) +CONFIGURE_FILE (src/solvversion.h.in src/solvversion.h) SET (CPACK_PACKAGE_DESCRIPTION_SUMMARY "Package dependency solver library") SET (CPACK_PACKAGE_VENDOR "SUSE") @@ -175,16 +283,36 @@ INCLUDE_DIRECTORIES (${CMAKE_CURRENT_SOURCE_DIR} ${CMAKE_SOURCE_DIR} ${CMAKE_SOU MESSAGE (STATUS "Looking for modules in ${CMAKE_MODULE_PATH}") -set (CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Werror -Wall -Wl,--as-needed") -set (CMAKE_C_FLAGS_RELEASE "${CMAKE_C_FLAGS} -g -O3") +set (CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wall") +set (CMAKE_C_FLAGS_RELEASE "${CMAKE_C_FLAGS} -O3") +set (CMAKE_C_FLAGS_RELWITHDEBINFO "${CMAKE_C_FLAGS} -g -O3") set (CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS} -g3 -O0") +SET (SYSTEM_LIBRARIES ${EXPAT_LIBRARY} ${ZLIB_LIBRARY}) +IF (ENABLE_LZMA_COMPRESSION) +SET (SYSTEM_LIBRARIES ${SYSTEM_LIBRARIES} ${LZMA_LIBRARY}) +ENDIF (ENABLE_LZMA_COMPRESSION) +IF (ENABLE_BZIP2_COMPRESSION) +SET (SYSTEM_LIBRARIES ${SYSTEM_LIBRARIES} ${BZIP2_LIBRARIES}) +ENDIF (ENABLE_BZIP2_COMPRESSION) +IF (ENABLE_RPMDB) +SET (SYSTEM_LIBRARIES ${RPMDB_LIBRARY} ${SYSTEM_LIBRARIES}) +ENDIF (ENABLE_RPMDB) +IF (ENABLE_HAIKU) +SET (SYSTEM_LIBRARIES ${HAIKU_SYSTEM_LIBRARIES} ${SYSTEM_LIBRARIES}) +ENDIF (ENABLE_HAIKU) +SET (SYSTEM_LIBRARIES "-Wl,--as-needed" ${SYSTEM_LIBRARIES}) + ADD_SUBDIRECTORY (src) ADD_SUBDIRECTORY (ext) ADD_SUBDIRECTORY (tools) +IF (ENABLE_PERL OR ENABLE_PYTHON OR ENABLE_RUBY) + ADD_SUBDIRECTORY (bindings) +ENDIF (ENABLE_PERL OR ENABLE_PYTHON OR ENABLE_RUBY) ADD_SUBDIRECTORY (examples) +ADD_SUBDIRECTORY (doc) -MESSAGE (STATUS "version: ${VERSION}") +MESSAGE (STATUS "Version: ${VERSION}") #################################################################### # RPM SPEC # @@ -210,3 +338,9 @@ ADD_CUSTOM_TARGET (srcpackage ${AUTOBUILD_COMMAND} ) +ADD_CUSTOM_TARGET (srcpackage_local + ${AUTOBUILD_COMMAND} +) + +ENABLE_TESTING() +ADD_SUBDIRECTORY (test)