- check in the header file as well
[platform/upstream/libsolv.git] / CMakeLists.txt
index 1d91451..d2d6f84 100644 (file)
@@ -1,5 +1,15 @@
 PROJECT(satsolver)
 
+cmake_minimum_required(VERSION 2.4)
+
+#IF(${CMAKE_MAJOR_VERSION}.${CMAKE_MINOR_VERISION} GREATER 2.4)
+#ENDIF(${CMAKE_MAJOR_VERSION}.${CMAKE_MINOR_VERISION} GREATER 2.4)
+
+if(COMMAND cmake_policy)
+  # escape preprocessor, see -DVERSION below
+  cmake_policy(SET CMP0005 OLD)
+endif(COMMAND cmake_policy)
+
 # Library
 IF ( DEFINED LIB )
   SET ( LIB_INSTALL_DIR "${CMAKE_INSTALL_PREFIX}/${LIB}" )
@@ -10,6 +20,7 @@ ELSE ( DEFINED  LIB )
   SET ( LIB_INSTALL_DIR "${CMAKE_INSTALL_PREFIX}/lib${LIB_SUFFIX}" )
 ENDIF ( DEFINED  LIB )
 MESSAGE(STATUS "Libraries will be installed in ${LIB_INSTALL_DIR}" )
+SET( BIN_INSTALL_DIR "${CMAKE_INSTALL_PREFIX}/bin" )
 
 ####################################################################
 # CONFIGURATION                                                    #
@@ -20,18 +31,19 @@ SET( CMAKE_MODULE_PATH ${CMAKE_SOURCE_DIR}/cmake/modules )
 
 INCLUDE( ${CMAKE_SOURCE_DIR}/VERSION.cmake )
 
-FIND_PACKAGE(Db43 REQUIRED)
 FIND_PACKAGE(EXPAT REQUIRED)
-#FIND_PACKAGE(Ruby REQUIRED)
+FIND_PACKAGE(Check REQUIRED)
+FIND_PACKAGE(ZLIB REQUIRED)
+
+FIND_LIBRARY(RPMDB_LIBRARY NAMES rpmdb)
 
 SET( PACKAGE "satsolver" )
 SET( VERSION "${LIBSATSOLVER_MAJOR}.${LIBSATSOLVER_MINOR}.${LIBSATSOLVER_PATCH}" )
 
-SET( CMAKE_C_FLAGS   "${CMAKE_C_FLAGS}   -g -O3 -Wall" )
 ADD_DEFINITIONS( -D_FILE_OFFSET_BITS=64 )
 ADD_DEFINITIONS( -DVERSION=\\\"${VERSION}\\\" )
 
-SET(CPACK_PACKAGE_DESCRIPTION_SUMMARY "mls solver")
+SET(CPACK_PACKAGE_DESCRIPTION_SUMMARY "SAT Solver library")
 SET(CPACK_PACKAGE_VENDOR "Novell Inc.")
 SET(CPACK_PACKAGE_VERSION_MAJOR ${LIBSATSOLVER_MAJOR})
 SET(CPACK_PACKAGE_VERSION_MINOR ${LIBSATSOLVER_MINOR})
@@ -72,6 +84,9 @@ SET (CPACK_SOURCE_IGNORE_FILES
 "Makefile\\\\.in$"
 "testsuite/data.libzypp/kernel-tests/kernel-hardware"
 "testsuite/data.libzypp/yast-tests/kernel3-hardware"
+# cmake cache files
+"CMakeCache.txt"
+"CMakeFiles"
 )
 
 INCLUDE(CPack)
@@ -94,27 +109,25 @@ INCLUDE_DIRECTORIES( ${CMAKE_CURRENT_SOURCE_DIR} ${CMAKE_SOURCE_DIR} ${CMAKE_SOU
 ####################################################################
 
 MESSAGE(STATUS "Looking modules in ${CMAKE_MODULE_PATH}")
-FIND_PROGRAM(SWIG_EXECUTABLE
-  NAMES swig-1.3 swig
-  PATHS ${SWIG_DIR} ${SWIG_DIR}/.. ${SWIG_DIR}/../../bin /usr/bin /usr/local/bin ${CMAKE_INSTALL_PREFIX}/bin
-)
+#FIND_PROGRAM(SWIG_EXECUTABLE
+#  NAMES swig-1.3 swig
+#  PATHS ${SWIG_DIR} ${SWIG_DIR}/.. ${SWIG_DIR}/../../bin /usr/bin /usr/local/bin ${CMAKE_INSTALL_PREFIX}/bin
+#)
 
-set ( CMAKE_C_FLAGS     "${CMAKE_C_FLAGS} -Werror" )
-set ( CMAKE_C_FLAGS_DEBUG     "-g3 -O0" )
+set ( CMAKE_C_FLAGS     "${CMAKE_C_FLAGS} -Werror -Wall" )
+set ( CMAKE_C_FLAGS_RELEASE "${CMAKE_C_FLAGS} -g -O3" )
+set ( CMAKE_C_FLAGS_DEBUG     "${CMAKE_C_FLAGS} -g3 -O0" )
 
 ADD_SUBDIRECTORY(src)
 ADD_SUBDIRECTORY(tools)
+ADD_SUBDIRECTORY(applayer)
+ADD_SUBDIRECTORY(tests)
 
-IF( EXISTS "${CMAKE_SOURCE_DIR}/testsuite" )
-  ADD_SUBDIRECTORY(testsuite)
-ENDIF( EXISTS "${CMAKE_SOURCE_DIR}/testsuite" )
+FIND_PACKAGE(SWIG REQUIRED)
 
-IF ( NOT SWIG_EXECUTABLE )
-  MESSAGE( FATAL "SWIG not found." )
-ELSE ( NOT SWIG_EXECUTABLE )
-  MESSAGE( STATUS "SWIG found at ${SWIG_EXECUTABLE}" )
+IF ( SWIG_FOUND )
   ADD_SUBDIRECTORY(bindings)
-ENDIF ( NOT SWIG_EXECUTABLE )
+ENDIF ( SWIG_FOUND )
 
 MESSAGE(STATUS "version: ${VERSION}")
 
@@ -135,11 +148,24 @@ ADD_CUSTOM_TARGET( svncheck
   COMMAND cd $(CMAKE_SOURCE_DIR) && ! LC_ALL=C svn status --show-updates --quiet | grep -v '^Status against revision'
 )
 
+
+# backup dist command while cpack is kaputt
+SET(DIST_COMMAND 
+  COMMAND rm -rf ${CMAKE_BUILD_DIR}/package/${CPACK_SOURCE_PACKAGE_FILE_NAME}
+#  COMMAND mkdir -p "${CMAKE_BUILD_DIR}/package/${CPACK_SOURCE_PACKAGE_FILE_NAME}"
+                  COMMAND cp -r "${CMAKE_SOURCE_DIR}" "/tmp/${CPACK_SOURCE_PACKAGE_FILE_NAME}"
+                  COMMAND tar -jcf "${CMAKE_BINARY_DIR}/package/${CPACK_SOURCE_PACKAGE_FILE_NAME}.tar.bz2" -C "/tmp" --exclude-vcs --exclude=".hidden" --exclude="build" ${CPACK_SOURCE_PACKAGE_FILE_NAME} WORKING_DIRECTORY "${CMAKE_SOURCE_DIR}"
+                  COMMAND rm -rf "/tmp/${CPACK_SOURCE_PACKAGE_FILE_NAME}"
+)
+
+ADD_CUSTOM_TARGET( dist ${DIST_COMMAND} )
+
 SET( AUTOBUILD_COMMAND
   COMMAND ${CMAKE_COMMAND} -E remove ${CMAKE_BINARY_DIR}/package/*.tar.bz2
-  COMMAND ${CMAKE_MAKE_PROGRAM} package_source
-  COMMAND ${CMAKE_COMMAND} -E copy ${CPACK_SOURCE_PACKAGE_FILE_NAME}.tar.bz2 ${CMAKE_BINARY_DIR}/package
-  COMMAND ${CMAKE_COMMAND} -E remove ${CPACK_SOURCE_PACKAGE_FILE_NAME}.tar.bz2
+#  COMMAND ${CMAKE_MAKE_PROGRAM} package_source
+  COMMAND ${CMAKE_MAKE_PROGRAM} dist
+  #COMMAND ${CMAKE_COMMAND} -E copy ${CPACK_SOURCE_PACKAGE_FILE_NAME}.tar.bz2 ${CMAKE_BINARY_DIR}/package
+  #COMMAND ${CMAKE_COMMAND} -E remove ${CPACK_SOURCE_PACKAGE_FILE_NAME}.tar.bz2
   COMMAND ${CMAKE_COMMAND} -E copy "${CMAKE_SOURCE_DIR}/package/libsatsolver.changes" "${CMAKE_BINARY_DIR}/package/libsatsolver.changes"
 )
 
@@ -151,3 +177,8 @@ ADD_CUSTOM_TARGET( srcpackage
   COMMAND ${CMAKE_MAKE_PROGRAM} svncheck
   ${AUTOBUILD_COMMAND}
 )
+
+INCLUDE(CTest)
+ENABLE_TESTING()
+
+