Adapt to boost_unit_test_framework-1.38.
[platform/upstream/libzypp.git] / CMakeLists.txt
index 114f2aa..8563bf4 100644 (file)
@@ -20,8 +20,8 @@ MATH( EXPR LIBZYPP_AGE     "${LIBZYPP_MINOR} - ${LIBZYPP_COMPATMINOR}" )
 MATH( EXPR LIBZYPP_SO_FIRST  "${LIBZYPP_CURRENT}-${LIBZYPP_AGE}" )
 SET( VERSION "${LIBZYPP_MAJOR}.${LIBZYPP_MINOR}.${LIBZYPP_PATCH}" )
 
-SET( CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fPIC -g -Wall -Woverloaded-virtual -Wnon-virtual-dtor" )
-SET( CMAKE_C_FLAGS   "${CMAKE_C_FLAGS}   -fPIC -g -Wall" )
+SET( CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fPIC -g -Wall -Werror=format-security -Woverloaded-virtual -Wnon-virtual-dtor -Wl,-as-needed" )
+SET( CMAKE_C_FLAGS   "${CMAKE_C_FLAGS}   -fPIC -g -Wall -Werror=format-security -Wl,-as-needed" )
 set( CMAKE_C_FLAGS_RELEASE "${CMAKE_C_FLAGS} -O3" )
 set( CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS} -O3" )
 
@@ -39,7 +39,7 @@ MACRO(ADD_TESTS)
     SET_SOURCE_FILES_PROPERTIES( ${loop_var}_test.cc COMPILE_FLAGS "-DBOOST_TEST_DYN_LINK -DBOOST_TEST_MAIN -DBOOST_AUTO_TEST_MAIN=\"\" " )
     ADD_EXECUTABLE( ${loop_var}_test ${loop_var}_test.cc )
     TARGET_LINK_LIBRARIES( ${loop_var}_test  zypp boost_unit_test_framework zypp_test_utils)
-    ADD_TEST( ${loop_var}_test ${CMAKE_CURRENT_BINARY_DIR}/${loop_var}_test)
+    ADD_TEST( ${loop_var}_test ${CMAKE_CURRENT_BINARY_DIR}/${loop_var}_test --catch_system_errors=no)
   ENDFOREACH( loop_var )
 ENDMACRO(ADD_TESTS)
 
@@ -52,6 +52,13 @@ ELSE ( NOT RPM_FOUND)
   INCLUDE_DIRECTORIES(${RPM_INCLUDE_DIR})
   # fix includes not relative to rpm
   INCLUDE_DIRECTORIES(${RPM_INCLUDE_DIR}/rpm)
+  if ( RPM_SUSPECT_VERSION STREQUAL "5.x" )
+       MESSAGE( STATUS "rpm found: enable rpm-4 compat interface." )
+       ADD_DEFINITIONS(-D_RPM_5)
+  elseif ( RPM_SUSPECT_VERSION STREQUAL "4.x" )
+       MESSAGE( STATUS "rpm found: enable rpm-4.4 legacy interface." )
+       ADD_DEFINITIONS(-D_RPM_4_4_COMPAT)
+  endif ( RPM_SUSPECT_VERSION STREQUAL "5.x" )
 ENDIF( NOT RPM_FOUND)
 
 FIND_PACKAGE(Boost REQUIRED)
@@ -70,11 +77,16 @@ ELSE (GETTEXT_FOUND)
 ENDIF (GETTEXT_FOUND)
 
 FIND_PACKAGE(Hal REQUIRED)
-IF ( NOT HAL_FOUND)
-  MESSAGE( FATAL_ERROR " Hal not found" )
+IF ( NOT HAL_FOUND )
+  MESSAGE( WARNING " Package 'hal' not found. HAL is mainly used for CD/DVD device detection." )
+  MESSAGE( WARNING " If you build libzypp without HAL, this will result in a limited" )
+  MESSAGE( WARNING " CD/DVD device detection (/dev/dvd,/dev/cdrom)." )
+  SET(HAL_LIBRARY "")
+  SET(HAL_STORAGE_LIBRARY "")
+  ADD_DEFINITIONS(-DNO_HAL)
 ELSE ( NOT HAL_FOUND)
   INCLUDE_DIRECTORIES(${HAL_INCLUDE_DIR})
-# hal/libhal-storage.h is broken grrr
+  # hal/libhal-storage.h is broken grrr
   INCLUDE_DIRECTORIES(${HAL_INCLUDE_DIR}/hal)
 ENDIF( NOT HAL_FOUND)