+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")
+ADD_DEFINITIONS (-DMANDRIVA)
+SET (ENABLE_MDKREPO ON)
+SET (ENABLE_RPMDB ON)
+SET (have_system ${have_system}x)
+ENDIF (MANDRIVA)
+
+IF (MAGEIA)
+MESSAGE (STATUS "Building for Mageia")
+ADD_DEFINITIONS (-DMAGEIA)
+SET (ENABLE_MDKREPO ON)
+SET (ENABLE_RPMDB ON)
+SET (ENABLE_RPMMD ON)
+SET (ENABLE_LZMA_COMPRESSION ON)
+SET (have_system ${have_system}x)
+ENDIF (MAGEIA)
+
+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)
+
+SET (CMAKE_MACOSX_RPATH ON)
+
+IF (${have_system} STREQUAL x)
+ MESSAGE (STATUS "Building for no system")
+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)
+
+SET (ENABLE_ZLIB_COMPRESSION ON)
+IF (ENABLE_ARCHREPO OR ENABLE_DEBIAN)
+SET (ENABLE_LZMA_COMPRESSION ON)
+ENDIF (ENABLE_ARCHREPO OR ENABLE_DEBIAN)
+
+IF (WITH_SYSTEM_ZCHUNK)
+SET (ENABLE_ZCHUNK_COMPRESSION ON)
+FIND_PACKAGE(PkgConfig REQUIRED)
+PKG_CHECK_MODULES(ZCHUNK zck REQUIRED)
+ENDIF (WITH_SYSTEM_ZCHUNK)
+
+IF (ENABLE_ZCHUNK_COMPRESSION)
+SET (ENABLE_ZSTD_COMPRESSION ON)
+ENDIF (ENABLE_ZCHUNK_COMPRESSION)
+
+IF (ENABLE_RPMMD OR ENABLE_SUSEREPO OR ENABLE_APPDATA OR ENABLE_COMPS OR ENABLE_HELIXREPO OR ENABLE_MDKREPO)
+IF (WITH_LIBXML2 )
+FIND_PACKAGE (LibXml2 REQUIRED)
+INCLUDE_DIRECTORIES (${LIBXML2_INCLUDE_DIR})
+ELSE(WITH_LIBXML2 )
+FIND_PACKAGE (EXPAT REQUIRED)
+INCLUDE_DIRECTORIES (${EXPAT_INCLUDE_DIRS})
+ENDIF (WITH_LIBXML2 )
+ENDIF (ENABLE_RPMMD OR ENABLE_SUSEREPO OR ENABLE_APPDATA OR ENABLE_COMPS OR ENABLE_HELIXREPO OR ENABLE_MDKREPO)
+
+IF (ENABLE_ZLIB_COMPRESSION)
+FIND_PACKAGE (ZLIB REQUIRED)
+INCLUDE_DIRECTORIES (${ZLIB_INCLUDE_DIRS})
+ENDIF (ENABLE_ZLIB_COMPRESSION)
+
+IF (ENABLE_LZMA_COMPRESSION)
+FIND_PACKAGE (LZMA REQUIRED)
+INCLUDE_DIRECTORIES (${LZMA_INCLUDE_DIR})
+ENDIF (ENABLE_LZMA_COMPRESSION)
+
+IF (ENABLE_BZIP2_COMPRESSION)
+FIND_PACKAGE (BZip2 REQUIRED)
+INCLUDE_DIRECTORIES (${BZIP2_INCLUDE_DIRS})
+ENDIF (ENABLE_BZIP2_COMPRESSION)
+
+IF (ENABLE_ZSTD_COMPRESSION)
+FIND_LIBRARY (ZSTD_LIBRARY NAMES zstd)
+FIND_PATH (ZSTD_INCLUDE_DIRS zstd.h)
+INCLUDE_DIRECTORIES (${ZSTD_INCLUDE_DIRS})
+ENDIF (ENABLE_ZSTD_COMPRESSION)