- fix some warnings from new cmake
authorDuncan Mac-Vicar P <dmacvicar@suse.de>
Mon, 7 Jul 2008 13:38:48 +0000 (13:38 +0000)
committerDuncan Mac-Vicar P <dmacvicar@suse.de>
Mon, 7 Jul 2008 13:38:48 +0000 (13:38 +0000)
- require cmake 2.6
- add one policy exception (for libutil)
- add custom FindOpenSSL to find libcrypto

CMakeLists.txt
cmake/modules/FindOpenSSL.cmake [new file with mode: 0644]
tests/CMakeLists.txt
zypp/CMakeLists.txt

index a689bdd..e411851 100644 (file)
@@ -2,7 +2,13 @@ PROJECT(libzypp)
 SET( PACKAGE "libzypp" )
 # where to look first for cmake modules, before ${CMAKE_ROOT}/Modules/ is checked
 SET( CMAKE_MODULE_PATH ${CMAKE_SOURCE_DIR}/cmake/modules )
-cmake_minimum_required(VERSION 2.4.5)
+cmake_minimum_required(VERSION 2.6)
+
+# allow name libraries by name mixed with full
+# paths
+if(COMMAND cmake_policy)
+  cmake_policy(SET CMP0003 NEW)
+endif(COMMAND cmake_policy)
 
 INCLUDE(ZyppCommon)
 INCLUDE( ${CMAKE_SOURCE_DIR}/VERSION.cmake )
@@ -20,7 +26,7 @@ set( CMAKE_C_FLAGS_RELEASE "${CMAKE_C_FLAGS} -O3" )
 set( CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS} -O3" )
 
 ADD_DEFINITIONS( -D_FILE_OFFSET_BITS=64 )
-ADD_DEFINITIONS( -DVERSION=\\\"${VERSION}\\\" )
+ADD_DEFINITIONS( -DVERSION="${VERSION}" )
 SET( LIBZYPP_VERSION_INFO "${LIBZYPP_SO_FIRST}.${LIBZYPP_AGE}.${LIBZYPP_PATCH}" )
 SET( LIBZYPP_SOVERSION_INFO "${LIBZYPP_SO_FIRST}" )
 
diff --git a/cmake/modules/FindOpenSSL.cmake b/cmake/modules/FindOpenSSL.cmake
new file mode 100644 (file)
index 0000000..dd967d1
--- /dev/null
@@ -0,0 +1,100 @@
+# - Try to find the OpenSSL encryption library\r
+# Once done this will define\r
+#\r
+#  OPENSSL_FOUND - system has the OpenSSL library\r
+#  OPENSSL_INCLUDE_DIR - the OpenSSL include directory\r
+#  OPENSSL_LIBRARIES - The libraries needed to use OpenSSL\r
+\r
+if (OPENSSL_INCLUDE_DIR AND OPENSSL_LIBRARIES)\r
+\r
+  # in cache already\r
+  SET(OPENSSL_FOUND TRUE)\r
+\r
+else (OPENSSL_INCLUDE_DIR AND OPENSSL_LIBRARIES)\r
+\r
+  FIND_PATH(OPENSSL_INCLUDE_DIR openssl/ssl.h\r
+     /usr/include/\r
+     /usr/local/include/\r
+     $ENV{ProgramFiles}/OpenSSL/include/\r
+     $ENV{SystemDrive}/OpenSSL/include/\r
+  )\r
+\r
+  if(WIN32 AND MSVC)\r
+      # /MD and /MDd are the standard values - if somone wants to use\r
+      # others, the libnames have to change here too\r
+      # see http://www.openssl.org/support/faq.html#PROG2 for their meaning\r
+\r
+      FIND_LIBRARY(SSL_EAY_DEBUG NAMES ssleay32MDd\r
+        PATHS\r
+        $ENV{ProgramFiles}/OpenSSL/lib/VC/\r
+        $ENV{SystemDrive}/OpenSSL/lib/VC/\r
+      )\r
+      FIND_LIBRARY(SSL_EAY_RELEASE NAMES ssleay32MD\r
+        PATHS\r
+        $ENV{ProgramFiles}/OpenSSL/lib/VC/\r
+        $ENV{SystemDrive}/OpenSSL/lib/VC/\r
+      )\r
+      FIND_LIBRARY(LIB_EAY_DEBUG NAMES libeay32MDd\r
+        PATHS\r
+        $ENV{ProgramFiles}/OpenSSL/lib/VC/\r
+        $ENV{SystemDrive}/OpenSSL/lib/VC/\r
+      )\r
+      FIND_LIBRARY(LIB_EAY_RELEASE NAMES libeay32MD\r
+        PATHS\r
+        $ENV{ProgramFiles}/OpenSSL/lib/VC/\r
+        $ENV{SystemDrive}/OpenSSL/lib/VC/\r
+      )\r
+\r
+      IF(MSVC_IDE)\r
+        IF(SSL_EAY_DEBUG AND SSL_EAY_RELEASE)\r
+            SET(OPENSSL_LIBRARIES optimized ${SSL_EAY_RELEASE} ${LIB_EAY_RELEASE} debug ${SSL_EAY_DEBUG} ${LIB_EAY_DEBUG})\r
+        ELSE(SSL_EAY_DEBUG AND SSL_EAY_RELEASE)\r
+          MESSAGE(FATAL_ERROR "Could not find the debug and release version of openssl")\r
+        ENDIF(SSL_EAY_DEBUG AND SSL_EAY_RELEASE)\r
+      ELSE(MSVC_IDE)\r
+        STRING(TOLOWER ${CMAKE_BUILD_TYPE} CMAKE_BUILD_TYPE_TOLOWER)\r
+        IF(CMAKE_BUILD_TYPE_TOLOWER MATCHES debug)\r
+          SET(OPENSSL_LIBRARIES ${SSL_EAY_DEBUG} ${LIB_EAY_DEBUG})\r
+        ELSE(CMAKE_BUILD_TYPE_TOLOWER MATCHES debug)\r
+          SET(OPENSSL_LIBRARIES ${SSL_EAY_RELEASE} ${LIB_EAY_RELEASE})\r
+        ENDIF(CMAKE_BUILD_TYPE_TOLOWER MATCHES debug)\r
+      ENDIF(MSVC_IDE)\r
+      MARK_AS_ADVANCED(SSL_EAY_DEBUG SSL_EAY_RELEASE LIB_EAY_DEBUG LIB_EAY_RELEASE)\r
+  else(WIN32 AND MSVC)\r
+\r
+   FIND_LIBRARY(OPENSSL_LIBRARIES NAMES ssl ssleay32 ssleay32MD libeay32 libeay32MD\r
+      PATHS\r
+      /usr/lib\r
+      /usr/local/lib\r
+   )\r
+   FIND_LIBRARY(CRYPTO_LIBRARIES crypto\r
+      PATHS\r
+      /usr/lib\r
+      /usr/local/lib\r
+   )\r
+\r
+  endif(WIN32 AND MSVC)\r
+\r
+  if (OPENSSL_INCLUDE_DIR AND OPENSSL_LIBRARIES)\r
+     set(OPENSSL_FOUND TRUE)\r
+  endif (OPENSSL_INCLUDE_DIR AND OPENSSL_LIBRARIES)\r
+\r
+  if (CRYPTO_LIBRARIES)\r
+     set(CRYPTO_FOUND TRUE)\r
+     message(STATUS "Found libcrypto: ${CRYPTO_LIBRARIES}")\r
+  endif (CRYPTO_LIBRARIES)\r
+\r
+  if (OPENSSL_FOUND)\r
+     if (NOT OpenSSL_FIND_QUIETLY)\r
+        message(STATUS "Found OpenSSL: ${OPENSSL_LIBRARIES}")\r
+     endif (NOT OpenSSL_FIND_QUIETLY)\r
+  else (OPENSSL_FOUND)\r
+     if (OpenSSL_FIND_REQUIRED)\r
+        message(FATAL_ERROR "Could NOT find OpenSSL")\r
+     endif (OpenSSL_FIND_REQUIRED)\r
+  endif (OPENSSL_FOUND)\r
+\r
+  MARK_AS_ADVANCED(OPENSSL_INCLUDE_DIR OPENSSL_LIBRARIES)\r
+\r
+endif (OPENSSL_INCLUDE_DIR AND OPENSSL_LIBRARIES)\r
+\r
index abb4858..62356e7 100644 (file)
@@ -1,6 +1,6 @@
 ENABLE_TESTING()
 
-ADD_DEFINITIONS( -DTESTS_SRC_DIR=\\\"${CMAKE_CURRENT_SOURCE_DIR}\\\" -DTESTS_BUILD_DIR=\\\"${CMAKE_CURRENT_BINARY_DIR}\\\" )
+ADD_DEFINITIONS( -DTESTS_SRC_DIR="${CMAKE_CURRENT_SOURCE_DIR}" -DTESTS_BUILD_DIR="${CMAKE_CURRENT_BINARY_DIR}" )
 
 #ADD_SUBDIRECTORY( media EXCLUDE_FROM_ALL )
 ADD_SUBDIRECTORY( zypp )
index fbdd2d5..ada8e49 100644 (file)
@@ -2,7 +2,7 @@
 # SOURCES                                                          #
 ####################################################################
 
-ADD_DEFINITIONS(-DLOCALEDIR=\\\"${CMAKE_INSTALL_PREFIX}/share/locale\\\" -DTEXTDOMAIN=\\\"zypp\\\" )
+ADD_DEFINITIONS(-DLOCALEDIR="${CMAKE_INSTALL_PREFIX}/share/locale" -DTEXTDOMAIN="zypp" )
 
 INCLUDE_DIRECTORIES(${CMAKE_CURRENT_BINARY_DIR})
 #FILE(WRITE filename "message to write"... )
@@ -892,7 +892,8 @@ SET_TARGET_PROPERTIES( zypp PROPERTIES VERSION "${LIBZYPP_VERSION_INFO}" )
 SET_TARGET_PROPERTIES( zypp PROPERTIES SOVERSION "${LIBZYPP_SOVERSION_INFO}" )
 ADD_DEPENDENCIES(zypp schema_header)
 # System libraries
-TARGET_LINK_LIBRARIES(zypp util )
+SET(UTIL_LIBRARY util)
+TARGET_LINK_LIBRARIES(zypp ${UTIL_LIBRARY} )
 TARGET_LINK_LIBRARIES(zypp ${DBUS_LIBRARY} )
 TARGET_LINK_LIBRARIES(zypp ${RPM_LIBRARY} )
 TARGET_LINK_LIBRARIES(zypp ${GETTEXT_LIBRARIES} )
@@ -903,7 +904,7 @@ TARGET_LINK_LIBRARIES(zypp ${LIBXML_LIBRARY} )
 TARGET_LINK_LIBRARIES(zypp ${ZLIB_LIBRARY} )
 TARGET_LINK_LIBRARIES(zypp ${SATSOLVER_LIBRARY} )
 TARGET_LINK_LIBRARIES(zypp ${OPENSSL_LIBRARIES})
-TARGET_LINK_LIBRARIES(zypp crypto)
+TARGET_LINK_LIBRARIES(zypp ${CRYPTO_LIBRARIES} )
 
 INSTALL(TARGETS zypp LIBRARY DESTINATION ${LIB_INSTALL_DIR} )