From d1275e7fcce9d4fc23f418d3b841d8940d2cc163 Mon Sep 17 00:00:00 2001 From: Michael Schroeder Date: Mon, 2 Apr 2012 13:41:10 +0200 Subject: [PATCH] - make sure to link against the lzma library if ENABLE_LZMA_COMPRESSION is set --- CMakeLists.txt | 3 +++ bindings/CMakeLists.txt | 3 +++ cmake/modules/FindLZMA.cmake | 25 +++++++++++++++++++++++++ examples/CMakeLists.txt | 3 +++ tools/CMakeLists.txt | 3 +++ 5 files changed, 37 insertions(+) create mode 100644 cmake/modules/FindLZMA.cmake diff --git a/CMakeLists.txt b/CMakeLists.txt index 34829bf..02b1eec 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -55,6 +55,9 @@ INCLUDE (${CMAKE_SOURCE_DIR}/VERSION.cmake) FIND_PACKAGE (EXPAT REQUIRED) FIND_PACKAGE (ZLIB REQUIRED) +IF (ENABLE_LZMA_COMPRESSION) +FIND_PACKAGE (LZMA REQUIRED) +ENDIF (ENABLE_LZMA_COMPRESSION) IF (FEDORA) MESSAGE(STATUS "Building for Fedora") diff --git a/bindings/CMakeLists.txt b/bindings/CMakeLists.txt index 1fe3061..b6b9a27 100644 --- a/bindings/CMakeLists.txt +++ b/bindings/CMakeLists.txt @@ -1,5 +1,8 @@ # as we link with --as-needed we do not get bogus dependencies SET (SYSTEM_LIBRARIES ${EXPAT_LIBRARY} ${ZLIB_LIBRARY}) +IF (ENABLE_LZMA_COMPRESSION) +SET (SYSTEM_LIBRARIES ${SYSTEM_LIBRARIES} ${LZMA_LIBRARY}) +ENDIF (ENABLE_LZMA_COMPRESSION) IF (NOT DEBIAN) SET (SYSTEM_LIBRARIES ${RPMDB_LIBRARY} ${SYSTEM_LIBRARIES}) ENDIF (NOT DEBIAN) diff --git a/cmake/modules/FindLZMA.cmake b/cmake/modules/FindLZMA.cmake new file mode 100644 index 0000000..eb112df --- /dev/null +++ b/cmake/modules/FindLZMA.cmake @@ -0,0 +1,25 @@ +# - Find lzma +# Find the native LZMA headers and library +# +# LZMA_INCLUDE_DIR - where to find lzma.h, etc. +# LZMA_LIBRARIES - List of libraries when using liblzma. +# LZMA_FOUND - True if liblzma found. + +IF (LZMA_INCLUDE_DIR) + # Already in cache, be silent + SET(LZMA_FIND_QUIETLY TRUE) +ENDIF (LZMA_INCLUDE_DIR) + +FIND_PATH(LZMA_INCLUDE_DIR lzma.h) +FIND_LIBRARY(LZMA_LIBRARY NAMES lzma liblzma) + +# handle the QUIETLY and REQUIRED arguments and set LZMA_FOUND to TRUE if +# all listed variables are TRUE +INCLUDE(FindPackageHandleStandardArgs) +FIND_PACKAGE_HANDLE_STANDARD_ARGS(LZMA DEFAULT_MSG LZMA_LIBRARY LZMA_INCLUDE_DIR) + +IF(LZMA_FOUND) + SET( LZMA_LIBRARIES ${LZMA_LIBRARY} ) +ELSE(LZMA_FOUND) + SET( LZMA_LIBRARIES ) +ENDIF(LZMA_FOUND) diff --git a/examples/CMakeLists.txt b/examples/CMakeLists.txt index 1d69d21..4b857b8 100644 --- a/examples/CMakeLists.txt +++ b/examples/CMakeLists.txt @@ -1,5 +1,8 @@ # as we link with --as-needed we do not get bogus dependencies SET (SYSTEM_LIBRARIES ${EXPAT_LIBRARY} ${ZLIB_LIBRARY}) +IF (ENABLE_LZMA_COMPRESSION) +SET (SYSTEM_LIBRARIES ${SYSTEM_LIBRARIES} ${LZMA_LIBRARY}) +ENDIF (ENABLE_LZMA_COMPRESSION) IF (NOT DEBIAN) SET (SYSTEM_LIBRARIES ${RPMDB_LIBRARY} ${SYSTEM_LIBRARIES}) ENDIF (NOT DEBIAN) diff --git a/tools/CMakeLists.txt b/tools/CMakeLists.txt index d5173ae..681ca55 100644 --- a/tools/CMakeLists.txt +++ b/tools/CMakeLists.txt @@ -6,6 +6,9 @@ ADD_LIBRARY (toolstuff STATIC common_write.c) # as we link with --as-needed we do not get bogus dependencies SET (SYSTEM_LIBRARIES ${EXPAT_LIBRARY} ${ZLIB_LIBRARY}) +IF (ENABLE_LZMA_COMPRESSION) +SET (SYSTEM_LIBRARIES ${SYSTEM_LIBRARIES} ${LZMA_LIBRARY}) +ENDIF (ENABLE_LZMA_COMPRESSION) IF (ENABLE_RPMDB) SET (SYSTEM_LIBRARIES ${RPMDB_LIBRARY} ${SYSTEM_LIBRARIES}) ENDIF (ENABLE_RPMDB) -- 2.7.4