X-Git-Url: https://git.quassel-irc.org/?p=quassel.git;a=blobdiff_plain;f=CMakeLists.txt;h=02957135c74acf9768d98bb2fa126f5af4e838ea;hp=a220522805838739749a7f45ddd58c19ac683525;hb=a2121709c6e39fe3640163e5a4b6b96b8b0f1ab8;hpb=b0021c10835573ee881e067e9550a1625834177d diff --git a/CMakeLists.txt b/CMakeLists.txt index a2205228..02957135 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -28,13 +28,19 @@ cmake_minimum_required(VERSION 2.8.9) project(QuasselIRC) +# Versions +set(QUASSEL_MAJOR 0) +set(QUASSEL_MINOR 11) +set(QUASSEL_PATCH 0) +set(QUASSEL_VERSION_STRING "0.11-pre") + +# Tell CMake about or own stuff +set(CMAKE_MODULE_PATH ${CMAKE_SOURCE_DIR}/cmake) + include(CheckFunctionExists) include(CheckIncludeFile) include(CheckCXXCompilerFlag) -# 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) include(QuasselMacros) # Various options and variables that can be set on the command line @@ -537,20 +543,18 @@ if(NOT WIN32) endif(HAVE_UMASK) endif(NOT WIN32) -# We need to create a version.gen -# For this, we create our genversion binary and make sure it is run every time. +# Generate version information from Git +include(GetGitRevisionDescription) +get_git_head_revision(GIT_REFSPEC GIT_HEAD) +git_describe(GIT_DESCRIBE --long) -setup_qt_variables() -include_directories(${QUASSEL_QT_INCLUDES}) - -add_executable(genversion ${CMAKE_SOURCE_DIR}/src/common/genversion.cpp) -target_link_libraries(genversion ${QUASSEL_QT_LIBRARIES}) -set_target_properties(genversion PROPERTIES COMPILE_FLAGS "${QUASSEL_QT_COMPILEFLAGS}") +# Sanitize things if we're not in a Git repo +if(NOT GIT_HEAD OR NOT GIT_DESCRIBE) + set(GIT_HEAD "") + set(GIT_DESCRIBE "") +endif() -get_target_property(GENVERSION_EXECUTABLE genversion LOCATION) -add_custom_target(genversion_run ALL ${GENVERSION_EXECUTABLE} - ${CMAKE_SOURCE_DIR} ${CMAKE_BINARY_DIR}/src/version.gen) -add_dependencies(genversion_run genversion) +configure_file(version.h.in ${CMAKE_BINARY_DIR}/version.h @ONLY) # These variables will be added to the main targets (CORE, QTCLIENT, MONO) set(COMMON_DEPS ${RC_WIN32})