project(kdenlive)
-SET(BASE_VERSION 0.7.8)
+set(BASE_VERSION 0.7.8)
+set(LIBMLT_REQUIRED_VERSION 0.4.0)
-OPTION(RELEASE_BUILD "Remove compilation date to version, use for stable releases (default off)" OFF)
-set(CMAKE_MODULE_PATH ${CMAKE_SOURCE_DIR}/cmake/modules )
+option(RELEASE_BUILD "Remove compilation date from program version (use for stable releases)" OFF)
+set(CMAKE_MODULE_PATH ${CMAKE_SOURCE_DIR}/cmake/modules)
-# search packages used by KDE
+# Search packages used by KDE.
find_package(KDE4 REQUIRED)
-include (KDE4Defaults)
-include (MacroLibrary)
-INCLUDE(FindGettext)
+include(KDE4Defaults)
+include(MacroLibrary)
+include(FindGettext)
include(MacroOptionalAddSubdirectory)
set(catalogname kdenlive)
+add_definitions(${QT_DEFINITIONS})
-add_definitions (${QT_DEFINITIONS})
+# Search MLT package.
+find_package(LIBMLT REQUIRED)
+if(LIBMLT_VERSION VERSION_LESS ${LIBMLT_REQUIRED_VERSION})
+ message(FATAL_ERROR "MLT must be at least version ${LIBMLT_REQUIRED_VERSION}")
+endif(LIBMLT_VERSION VERSION_LESS ${LIBMLT_REQUIRED_VERSION})
-FIND_PACKAGE(LIBMLT REQUIRED)
find_package(MSGFMT REQUIRED)
-
find_program(EXTRACTRC_EXECUTABLE extractrc)
find_program(MSGFMT_EXECUTABLE msgfmt)
find_program(MSGMERGE_EXECUTABLE msgmerge)
find_program(XGETTEXT_EXECUTABLE xgettext)
-# current version
-IF (RELEASE_BUILD)
- SET(VERSION "\"${BASE_VERSION}\"")
-ELSE(RELEASE_BUILD)
- IF (EXISTS ${PROJECT_SOURCE_DIR}/.svn)
- # Probably a SVN workspace, determine revision level
- FIND_PACKAGE(Subversion)
- IF(Subversion_FOUND)
- Subversion_WC_INFO(${PROJECT_SOURCE_DIR} KDENLIVE)
- MESSAGE("Current revision is ${KDENLIVE_WC_REVISION}")
- SET(VERSION "\"${BASE_VERSION} (rev. ${KDENLIVE_WC_REVISION})\"")
- ELSE(Subversion_FOUND)
- MESSAGE("Could not determine SVN revision")
- SET(VERSION "\"${BASE_VERSION}\"")
- ENDIF(Subversion_FOUND)
- ELSE(EXISTS ${PROJECT_SOURCE_DIR}/.svn)
- SET(VERSION "\"${BASE_VERSION}\"")
- ENDIF(EXISTS ${PROJECT_SOURCE_DIR}/.svn)
-ENDIF(RELEASE_BUILD)
+# Get current version.
+if(RELEASE_BUILD)
+ set(VERSION "\"${BASE_VERSION}\"")
+else(RELEASE_BUILD)
+ if(EXISTS ${PROJECT_SOURCE_DIR}/.svn)
+ # Probably a SVN workspace: determine the revision.
+ find_package(Subversion)
+ if(Subversion_FOUND)
+ Subversion_WC_INFO(${PROJECT_SOURCE_DIR} KDENLIVE)
+ message("Current revision is ${KDENLIVE_WC_REVISION}")
+ set(VERSION "\"${BASE_VERSION} (rev. ${KDENLIVE_WC_REVISION})\"")
+ else(Subversion_FOUND)
+ message("Could not determine the SVN revision")
+ set(VERSION "\"${BASE_VERSION}\"")
+ endif(Subversion_FOUND)
+ else(EXISTS ${PROJECT_SOURCE_DIR}/.svn)
+ set(VERSION "\"${BASE_VERSION}\"")
+ endif(EXISTS ${PROJECT_SOURCE_DIR}/.svn)
+endif(RELEASE_BUILD)
add_subdirectory(src src/cmake_bindir)
add_subdirectory(renderer renderer/cmake_bindir)
add_subdirectory(po)
add_subdirectory(man)
-CONFIGURE_FILE(${CMAKE_SOURCE_DIR}/kdenlive-config.h.cmake kdenlive-config.h @ONLY)
-
+configure_file(${CMAKE_SOURCE_DIR}/kdenlive-config.h.cmake kdenlive-config.h @ONLY)
\ No newline at end of file
#
-# Find the MLT includes and library
+# Find the MLT includes and libraries.
#
-FIND_PROGRAM(MLT_CONFIG_EXECUTABLE pkg-config)
-EXEC_PROGRAM(${MLT_CONFIG_EXECUTABLE} ARGS --variable=prefix mlt++ OUTPUT_VARIABLE MLT_PATH )
-MESSAGE(STATUS "Found MLT INSTALL PATH: ${MLT_PATH}")
-ADD_DEFINITIONS(-DMLT_PREFIX=\\\"\"${MLT_PATH}\"\\\")
+include(FindPkgConfig)
+pkg_check_modules(MLT REQUIRED mlt++)
+add_definitions(-DMLT_PREFIX=\\\"\"${MLT_PREFIX}\"\\\")
-FIND_PATH(LIBMLT_INCLUDE_DIR
+find_path(LIBMLT_INCLUDE_DIR
NAMES framework/mlt.h
- PATHS ${MLT_PATH}/include/mlt /usr/local/include/mlt /usr/include/mlt
+ PATHS ${MLT_INCLUDEDIR}/mlt ${MLT_PREFIX}/include/mlt /usr/local/include/mlt /usr/include/mlt
NO_DEFAULT_PATH
)
-MESSAGE(STATUS "Found MLT INCLUDES: ${LIBMLT_INCLUDE_DIR}")
-
-FIND_LIBRARY(LIBMLT_LIBRARY
+find_library(LIBMLT_LIBRARY
NAMES mlt
- PATHS ${MLT_PATH}/lib /usr/lib /usr/local/lib
+ PATHS ${MLT_LIBDIR} ${MLT_PREFIX}/lib /usr/lib /usr/local/lib
NO_DEFAULT_PATH
)
-MESSAGE(STATUS "Found MLT LIBR: ${LIBMLT_LIBRARY}")
-
-FIND_PATH(LIBMLTPLUS_INCLUDE_DIR
+find_path(LIBMLTPLUS_INCLUDE_DIR
NAMES mlt++/Mlt.h
- PATHS ${MLT_PATH}/include /usr/local/include /usr/include
+ PATHS ${MLT_INCLUDEDIR} ${MLT_PREFIX}/include /usr/local/include /usr/include
NO_DEFAULT_PATH
)
-MESSAGE(STATUS "Found MLT++ INCLUDES: ${LIBMLTPLUS_INCLUDE_DIR}")
-
-FIND_LIBRARY(LIBMLTPLUS_LIBRARY
+find_library(LIBMLTPLUS_LIBRARY
NAMES mlt++
- PATHS ${MLT_PATH}/lib /usr/lib /usr/local/lib
+ PATHS ${MLT_LIBDIR} ${MLT_PREFIX}/lib /usr/lib /usr/local/lib
NO_DEFAULT_PATH
)
-MESSAGE(STATUS "Found MLT++ LIBR: ${LIBMLTPLUS_LIBRARY}")
-
-IF (LIBMLT_LIBRARY AND LIBMLT_INCLUDE_DIR)
- SET( LIBMLT_FOUND 1 )
- SET( LIBMLT_LIBRARIES ${LIBMLT_LIBRARY} )
-ELSE (LIBMLT_LIBRARY AND LIBMLT_INCLUDE_DIR)
- SET( LIBMLT_FOUND 0 )
-ENDIF (LIBMLT_LIBRARY AND LIBMLT_INCLUDE_DIR)
-
-
-IF (LIBMLTPLUS_LIBRARY AND LIBMLTPLUS_INCLUDE_DIR)
- SET( LIBMLT_FOUND 1 )
- SET( LIBMLTPLUS_LIBRARIES ${LIBMLTPLUS_LIBRARY} )
-ELSE (LIBMLTPLUS_LIBRARY AND LIBMLTPLUS_INCLUDE_DIR)
- SET( LIBMLT_FOUND 0 )
-ENDIF (LIBMLTPLUS_LIBRARY AND LIBMLTPLUS_INCLUDE_DIR)
-
-IF (LIBMLT_FOUND)
- IF (NOT LIBMLT_FIND_QUIETLY)
- MESSAGE(STATUS "Found MLT library: ${LIBMLT_LIBRARY}")
- ENDIF (NOT LIBMLT_FIND_QUIETLY)
-ELSE (LIBMLT_FOUND)
- IF (LIBMLT_FIND_REQUIRED)
- MESSAGE(FATAL_ERROR "Could not find MLT library")
- ENDIF (LIBMLT_FIND_REQUIRED)
-ENDIF (LIBMLT_FOUND)
-
+if(LIBMLT_LIBRARY AND LIBMLT_INCLUDE_DIR)
+ set(LIBMLT_FOUND 1)
+ set(LIBMLT_LIBRARIES ${LIBMLT_LIBRARY})
+else(LIBMLT_LIBRARY AND LIBMLT_INCLUDE_DIR)
+ set(LIBMLT_FOUND 0)
+endif(LIBMLT_LIBRARY AND LIBMLT_INCLUDE_DIR)
+
+if(LIBMLTPLUS_LIBRARY AND LIBMLTPLUS_INCLUDE_DIR)
+ set(LIBMLT_FOUND 1)
+ set(LIBMLTPLUS_LIBRARIES ${LIBMLTPLUS_LIBRARY})
+else(LIBMLTPLUS_LIBRARY AND LIBMLTPLUS_INCLUDE_DIR)
+ set(LIBMLT_FOUND 0)
+endif(LIBMLTPLUS_LIBRARY AND LIBMLTPLUS_INCLUDE_DIR)
+
+if(LIBMLT_FOUND)
+ set(LIBMLT_VERSION ${MLT_VERSION})
+ if(NOT LIBMLT_FIND_QUIETLY)
+ message(STATUS "MLT install path: ${MLT_PREFIX}")
+ message(STATUS "MLT includes: ${LIBMLT_INCLUDE_DIR}")
+ message(STATUS "MLT library: ${LIBMLT_LIBRARY}")
+ message(STATUS "MLT++ includes: ${LIBMLTPLUS_INCLUDE_DIR}")
+ message(STATUS "MLT++ library: ${LIBMLTPLUS_LIBRARY}")
+ endif(NOT LIBMLT_FIND_QUIETLY)
+else(LIBMLT_FOUND)
+ if(LIBMLT_FIND_REQUIRED)
+ message(FATAL_ERROR "Could not find MLT library")
+ endif(LIBMLT_FIND_REQUIRED)
+endif(LIBMLT_FOUND)
\ No newline at end of file