X-Git-Url: https://git.quassel-irc.org/?p=quassel.git;a=blobdiff_plain;f=CMakeLists.txt;h=a220522805838739749a7f45ddd58c19ac683525;hp=24deb865708efd8f84527ee658cbe0248ab2ea8f;hb=933f2d9f203bc5fabf3040d9361ba4e0cb637b9b;hpb=1eb37b0c2ddc69041a267afeed5a494a3599b538 diff --git a/CMakeLists.txt b/CMakeLists.txt index 24deb865..a2205228 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -25,19 +25,13 @@ # NOTE: You should remove CMakeCache.txt if you plan to change any of these values! +cmake_minimum_required(VERSION 2.8.9) project(QuasselIRC) include(CheckFunctionExists) include(CheckIncludeFile) include(CheckCXXCompilerFlag) -# For building against Qt5, we check for an even newer cmake version below! -cmake_minimum_required(VERSION 2.8.1 FATAL_ERROR) - -if(COMMAND cmake_policy) - cmake_policy(SET CMP0003 NEW) -endif(COMMAND cmake_policy) - # Use our own (well, and KDE's) version of some modules # In particular cmake's own FindQt4 and FindOpenSSL are quite buggy set(CMAKE_MODULE_PATH ${CMAKE_SOURCE_DIR}/cmake/modules) @@ -150,6 +144,9 @@ if(CMAKE_COMPILER_IS_GNUCXX) if(CXX_W_OVERLOADED_VIRTUAL) set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Woverloaded-virtual") endif() + + # Just for miniz + set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wall -Wextra -Wno-unused-function -Wno-undef -fno-strict-aliasing") endif(CMAKE_COMPILER_IS_GNUCXX) # ... and for Clang @@ -160,6 +157,8 @@ if (CMAKE_CXX_COMPILER_ID STREQUAL "Clang") set(CMAKE_CXX_FLAGS_DEBUG "-g -O2 -fno-inline") set(CMAKE_CXX_FLAGS_DEBUGFULL "-g3 -fno-inline") set(CMAKE_CXX_FLAGS_PROFILE "-g3 -fno-inline -ftest-coverage -fprofile-arcs") + + set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wall -Wextra -Wno-unused-function -Wno-undef -fno-strict-aliasing") endif() # Mac build stuff @@ -237,6 +236,21 @@ if(QT_LRELEASE_EXECUTABLE) endif(QT_LRELEASE_EXECUTABLE) +# zlib for compression, however we can always fall back to miniz +find_package(ZLIB) +if(ZLIB_FOUND) + message(STATUS "Using system zlib for compression") + add_definitions(-DHAVE_ZLIB) + include_directories(${ZLIB_INCLUDE_DIRS}) + set(COMMON_LIBRARIES ${COMMON_LIBRARIES} ${ZLIB_LIBRARIES}) +else() + message(STATUS "zlib NOT found, using bundled miniz for compression") + if(${CMAKE_SIZEOF_VOID_P} EQUAL 4) + message(STATUS "WARNING: This may be slow on 32 bit systems!") + endif() +endif() + + # Execinfo is needed for generating backtraces find_package(ExecInfo) if(EXECINFO_FOUND) @@ -329,6 +343,8 @@ if(BUILD_GUI) # Setup KDE4 support if(WITH_KDE AND NOT WITH_QT5) + # KDE has overzealous CFLAGS making miniz not compile, so save our old flags + set(_cflags ${CMAKE_C_FLAGS}) find_package(KDE4) if(KDE4_FOUND) message(STATUS "Enabling KDE4 integration") @@ -338,6 +354,8 @@ if(BUILD_GUI) set(CLIENT_LIBRARIES ${CLIENT_LIBRARIES} ${KDE4_KDECORE_LIBS} ${KDE4_KDEUI_LIBRARY} ${KDE4_SOLID_LIBS} ${KDE4_KNOTIFYCONFIG_LIBRARY}) # We always use external icons for KDE4 support, since we use its iconloader rather than our own set(EMBED_DATA OFF) + # Restore our old CFLAGS + set(CMAKE_C_FLAGS ${_cflags}) else(KDE4_FOUND) message(STATUS "KDE4 not found, disabling KDE integration") endif(KDE4_FOUND) @@ -373,6 +391,13 @@ if(BUILD_GUI) else(WITH_PHONON) message(STATUS "Not enabling Phonon support") endif(WITH_PHONON) + + find_package(Libsnore) + if(LIBSNORE_FOUND) + add_definitions(-DHAVE_LIBSNORE) + set(CLIENT_LIBRARIES ${CLIENT_LIBRARIES} ${LIBSNORE_LIBRARIES}) + set(HAVE_SNORENOTIFY true) + endif(LIBSNORE_FOUND) endif(NOT HAVE_KDE) # Setup libindicate-qt support @@ -401,7 +426,6 @@ if(BUILD_GUI) /System/Library/Frameworks/Foundation.framework ) endif() - endif(BUILD_GUI) # Core-only deps