]> git.sesse.net Git - kdenlive/blob - CMakeLists.txt
Start a cleanup and detect Git revision
[kdenlive] / CMakeLists.txt
1 project(kdenlive)
2 set(catalogname kdenlive)
3
4 # An odd minor version number means development version, while an even
5 # one means stable release.
6 set(KDENLIVE_VERSION 0.8.3)
7 set(LIBMLT_REQUIRED_VERSION 0.7.6)
8
9 set(CMAKE_MODULE_PATH ${CMAKE_SOURCE_DIR}/cmake/modules)
10
11 # To be switched on when releasing.
12 option(RELEASE_BUILD "Remove Git position from program version (use for stable releases)" OFF)
13
14 # Get current version.
15 set(VERSION "\"${KDENLIVE_VERSION}\"")
16 if(NOT RELEASE_BUILD)
17   if(EXISTS ${PROJECT_SOURCE_DIR}/.git)
18     # Probably a Git workspace: determine the revision.
19     find_package(Git)
20     if(GIT_FOUND)
21       exec_program(${GIT_EXECUTABLE}
22         ${CMAKE_CURRENT_SOURCE_DIR}
23         ARGS "describe --tags"
24         OUTPUT_VARIABLE KDENLIVE_GIT_REVISION
25       )
26       message("Current Kdenlive Git revision is ${KDENLIVE_GIT_REVISION}")
27       set(VERSION "\"${KDENLIVE_VERSION} (rev. ${KDENLIVE_GIT_REVISION})\"")
28     else(GIT_FOUND)
29       message("Could not determine the Git revision")
30     endif(GIT_FOUND)
31   endif(EXISTS ${PROJECT_SOURCE_DIR}/.git)
32 endif(NOT RELEASE_BUILD)
33
34 include(CheckIncludeFiles)
35 check_include_files(malloc.h HAVE_MALLOC_H)
36 check_include_files(pthread.h HAVE_PTHREAD_H)
37
38 find_package(MSGFMT REQUIRED)
39 find_program(EXTRACTRC_EXECUTABLE extractrc)
40 find_program(MSGFMT_EXECUTABLE msgfmt)
41 find_program(MSGMERGE_EXECUTABLE msgmerge)
42 find_program(XGETTEXT_EXECUTABLE xgettext)
43
44 # Search KDE and dependent packages.
45 find_package(KDE4 REQUIRED)
46 include(KDE4Defaults)
47 include(MacroLibrary)
48 include(FindGettext)
49
50 # Search MLT package.
51 find_package(LIBMLT REQUIRED)
52 if(LIBMLT_VERSION VERSION_LESS ${LIBMLT_REQUIRED_VERSION})
53   set(LIBMLT_FOUND FALSE)
54 endif(LIBMLT_VERSION VERSION_LESS ${LIBMLT_REQUIRED_VERSION})
55 macro_log_feature(LIBMLT_FOUND "MLT" "Multimedia framework and video playout server for TV broadcasting" "http://mltframework.org" TRUE ${LIBMLT_REQUIRED_VERSION})
56
57 set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} --std=c99") # To compile kiss_fft
58 find_package(Qt4 COMPONENTS QtCore QtGui QtOpenGL QtScript REQUIRED)
59 if ( NOT QT_QTOPENGL_FOUND )
60   message(FATAL_ERROR "QtOpenGL (most likely called libqt4-opengl-dev) not found.")
61 else ( NOT QT_QTOPENGL_FOUND )
62   message(-- " Found QtOpenGL.")
63 endif ( NOT QT_QTOPENGL_FOUND )
64 find_library(Qt COMPONENTS QtOpenGL QtScript REQUIRED)
65
66 add_definitions(${QT_DEFINITIONS})
67
68 add_subdirectory(data)
69 add_subdirectory(doc)
70 add_subdirectory(effects)
71 add_subdirectory(export)
72 add_subdirectory(icons)
73 add_subdirectory(lumas)
74 add_subdirectory(man)
75 add_subdirectory(plugins)
76 add_subdirectory(po)
77 add_subdirectory(renderer renderer/cmake_bindir)
78 add_subdirectory(src src/cmake_bindir)
79 add_subdirectory(thumbnailer thumbnailer/cmake_bindir)
80 add_subdirectory(titles)
81
82 macro_display_feature_log()
83
84 configure_file(kdenlive-config.h.cmake kdenlive-config.h @ONLY)