]> git.sesse.net Git - kdenlive/commitdiff
Build system
authorJean-Baptiste Mardelle <jb@kdenlive.org>
Mon, 31 Dec 2007 14:09:43 +0000 (14:09 +0000)
committerJean-Baptiste Mardelle <jb@kdenlive.org>
Mon, 31 Dec 2007 14:09:43 +0000 (14:09 +0000)
svn path=/branches/KDE4/; revision=1784

cmake/modules/FindGettext.cmake [new file with mode: 0644]
cmake/modules/FindKdeLibs.cmake [new file with mode: 0644]
cmake/modules/FindLIBFFMPEG.cmake [new file with mode: 0644]
cmake/modules/FindLIBMLT.cmake [new file with mode: 0644]
cmake/modules/FindLIBMLTPLUS.cmake [new file with mode: 0644]
cmake/modules/KdenlivePackageMessages.cmake [new file with mode: 0644]

diff --git a/cmake/modules/FindGettext.cmake b/cmake/modules/FindGettext.cmake
new file mode 100644 (file)
index 0000000..549a7e9
--- /dev/null
@@ -0,0 +1,66 @@
+# - Find GNU gettext tools
+# This module looks for the GNU gettext tools. This module defines the
+# following values:
+#  GETTEXT_MSGMERGE_EXECUTABLE: the full path to the msgmerge tool.
+#  GETTEXT_MSGFMT_EXECUTABLE: the full path to the msgfmt tool.
+#  GETTEXT_FOUND: True if gettext has been found.
+#
+# Additionally it provides the following macros:
+# GETTEXT_CREATE_TRANSLATIONS ( outputFile [ALL] file1 ... fileN )
+#    This will create a target "translations" which will convert the
+#    given input po files into the binary output mo file. If the
+#    ALL option is used, the translations will also be created when
+#    building the default target.
+
+
+
+FIND_PROGRAM(GETTEXT_MSGMERGE_EXECUTABLE msgmerge)
+
+FIND_PROGRAM(GETTEXT_MSGFMT_EXECUTABLE msgfmt)
+
+MACRO(GETTEXT_CREATE_TRANSLATIONS _potFile _firstPoFile)
+
+   SET(_gmoFiles)
+   GET_FILENAME_COMPONENT(_potBasename ${_potFile} NAME_WE)
+   GET_FILENAME_COMPONENT(_absPotFile ${_potFile} ABSOLUTE)
+
+   SET(_addToAll)
+   IF(${_firstPoFile} STREQUAL "ALL")
+      SET(_addToAll "ALL")
+      SET(_firstPoFile)
+   ENDIF(${_firstPoFile} STREQUAL "ALL")
+
+   FOREACH (_currentPoFile ${ARGN})
+      GET_FILENAME_COMPONENT(_absFile ${_currentPoFile} ABSOLUTE)
+      GET_FILENAME_COMPONENT(_abs_PATH ${_absFile} PATH)
+      GET_FILENAME_COMPONENT(_lang ${_absFile} NAME_WE)
+      SET(_gmoFile ${CMAKE_CURRENT_BINARY_DIR}/${_lang}.gmo)
+
+      ADD_CUSTOM_COMMAND(
+         OUTPUT ${_gmoFile}
+         COMMAND ${GETTEXT_MSGMERGE_EXECUTABLE} --no-location --quiet --update --backup=none -s ${_absFile} ${_absPotFile}
+         COMMAND ${GETTEXT_MSGFMT_EXECUTABLE} -o ${_gmoFile} ${_absFile}
+         DEPENDS ${_absPotFile} ${_absFile}
+      )
+
+      # (THE, 2007-05-22, install into KDE3_LOCALEDIR instead of usr/share)
+      INSTALL(FILES ${_gmoFile} DESTINATION ${KDE3_LOCALEDIR}/${_lang}/LC_MESSAGES RENAME ${_potBasename}.mo)
+      SET(_gmoFiles ${_gmoFiles} ${_gmoFile})
+
+   ENDFOREACH (_currentPoFile )
+
+   ADD_CUSTOM_TARGET(translations ${_addToAll} DEPENDS ${_gmoFiles})
+
+ENDMACRO(GETTEXT_CREATE_TRANSLATIONS )
+
+IF (GETTEXT_MSGMERGE_EXECUTABLE AND GETTEXT_MSGFMT_EXECUTABLE )
+   SET(GETTEXT_FOUND TRUE)
+ELSE (GETTEXT_MSGMERGE_EXECUTABLE AND GETTEXT_MSGFMT_EXECUTABLE )
+   SET(GETTEXT_FOUND FALSE)
+   IF (GetText_REQUIRED)
+      MESSAGE(FATAL_ERROR "GetText not found")
+   ENDIF (GetText_REQUIRED)
+ENDIF (GETTEXT_MSGMERGE_EXECUTABLE AND GETTEXT_MSGFMT_EXECUTABLE )
+
+
+
diff --git a/cmake/modules/FindKdeLibs.cmake b/cmake/modules/FindKdeLibs.cmake
new file mode 100644 (file)
index 0000000..436cbdb
--- /dev/null
@@ -0,0 +1,151 @@
+include(FindQt3)
+include(FindKDE3)
+
+
+set(LIB_SUFFIX "" CACHE STRING "Define suffix of directory name (32/64)" FORCE)
+
+SET(LIB_SEARCH_PATHES   ${KDE3_LIB_DIR}
+  $ENV{KDEDIR}/lib
+  /opt/kde/lib
+  /opt/kde3/lib
+  /usr/lib
+  /usr/local/lib
+)
+
+IF (LIB_SUFFIX)
+    SET(LIB_SEARCH_PATHES
+        $ENV{KDEDIR}/lib${LIB_SUFFIX}
+        /opt/kde/lib${LIB_SUFFIX}
+        /opt/kde3/lib${LIB_SUFFIX}
+        /usr/lib${LIB_SUFFIX}
+        /usr/local/lib${LIB_SUFFIX}
+        ${LIB_SEARCH_PATHES})
+ENDIF (LIB_SUFFIX)
+
+FIND_LIBRARY(KDE3_UI_LIBRARY NAMES kdeui
+  PATHS
+  ${LIB_SEARCH_PATHES}
+)
+
+FIND_LIBRARY(KDE3_PART_LIBRARY NAMES kparts
+  PATHS
+  ${LIB_SEARCH_PATHES}
+)
+
+FIND_LIBRARY(KDE3_KIO_LIBRARY NAMES kio
+  PATHS
+  ${LIB_SEARCH_PATHES}
+)
+
+FIND_LIBRARY(KDE3_DCOP_LIBRARY NAMES DCOP
+  PATHS
+  ${LIB_SEARCH_PATHES}
+)
+
+FIND_LIBRARY(KDE3_WALLET_LIBRARY NAMES kwalletclient
+  PATHS
+  ${LIB_SEARCH_PATHES}
+)
+
+FIND_LIBRARY(KDE3_KINIT_KDED_LIBRARY NAMES kdeinit_kded
+  PATHS
+  ${LIB_SEARCH_PATHES}
+)
+
+FIND_PROGRAM(KDE3_KDECONFIG_EXECUTABLE NAME kde-config PATHS
+    $ENV{KDEDIR}/bin
+    /opt/kde/bin
+    /opt/kde3/bin
+)
+
+FIND_PROGRAM(MSGFMT
+    NAMES gmsgfmt msgfmt)
+
+FIND_PROGRAM(STRIP
+    NAMES strip)
+
+FIND_PROGRAM(KDE3_MEINPROC_EXECUTABLE NAME meinproc PATHS
+     ${KDE3_BIN_INSTALL_DIR}
+     $ENV{KDEDIR}/bin
+     /opt/kde/bin
+     /opt/kde3/bin
+)
+
+IF(KDE3_MEINPROC_EXECUTABLE)
+    MESSAGE(STATUS "Found meinproc: ${KDE3_MEINPROC_EXECUTABLE}")
+ELSE(KDE3_MEINPROC_EXECUTABLE)
+    MESSAGE(STATUS "Didn't find meinproc!")
+ENDIF(KDE3_MEINPROC_EXECUTABLE)
+
+IF(MSGFMT)
+    EXECUTE_PROCESS(COMMAND ${MSGFMT} "--version" "2>&1"
+    OUTPUT_VARIABLE _msgout)
+    STRING(REGEX MATCH "GNU[\t ]gettext" _isgnu "${_msgout}")
+    IF (NOT _isgnu)
+        MESSAGE(STATUS "No gnu msgfmt found!")
+        SET(MSGFMT ":" CACHE STRING "Msgfmt program")
+    ELSE(NOT _isgnu)
+        MESSAGE(STATUS "Found gnu msgfmt: ${MSGFMT}")
+    ENDIF (NOT _isgnu)
+ELSE(MSGFMT)
+    SET(MSGFMT ":" CACHE STRING "Msgfmt program")
+ENDIF(MSGFMT)
+
+# 'cause my own defines were not good I take them from kde4 trunk
+#add some KDE specific stuff
+set(SHARE_INSTALL_PREFIX ${CMAKE_INSTALL_PREFIX}/share CACHE PATH "Base directory for files which go to share/" FORCE)
+set(EXEC_INSTALL_PREFIX  ${CMAKE_INSTALL_PREFIX}       CACHE PATH  "Base directory for executables and libraries" FORCE)
+#
+## the following are directories where stuff will be installed to
+set(BIN_INSTALL_DIR          "${EXEC_INSTALL_PREFIX}/bin"                  CACHE PATH "The kde bin install dir (default prefix/bin)" FORCE)
+set(SBIN_INSTALL_DIR         "${EXEC_INSTALL_PREFIX}/sbin"                 CACHE PATH "The kde sbin install dir (default prefix/sbin)" FORCE)
+set(LIB_INSTALL_DIR          "${EXEC_INSTALL_PREFIX}/lib${LIB_SUFFIX}"     CACHE PATH "The subdirectory relative to the install prefix where libraries will be installed (default is /lib${LIB_SUFFIX})" FORCE)
+set(LIBEXEC_INSTALL_DIR      "${LIB_INSTALL_DIR}/kde3/libexec"             CACHE PATH "The subdirectory relative to the install prefix where libraries will be installed (default is /lib/kde3/libexec)" FORCE)
+set(PLUGIN_INSTALL_DIR       "${LIB_INSTALL_DIR}/kde3"                     CACHE PATH "The subdirectory relative to the install prefix where plugins will be installed (default is ${LIB_INSTALL_DIR}/kde3)" FORCE)
+set(INCLUDE_INSTALL_DIR      "${CMAKE_INSTALL_PREFIX}/include"             CACHE PATH "The subdirectory to the header prefix" FORCE)
+set(CONFIG_INSTALL_DIR       "${SHARE_INSTALL_PREFIX}/config"              CACHE PATH "The config file install dir" FORCE)
+set(DATA_INSTALL_DIR         "${SHARE_INSTALL_PREFIX}/apps"                CACHE PATH "The parent directory where applications can install their data" FORCE)
+set(HTML_INSTALL_DIR         "${SHARE_INSTALL_PREFIX}/doc/HTML"            CACHE PATH "The HTML install dir for documentation"  FORCE)
+set(ICON_INSTALL_DIR         "${SHARE_INSTALL_PREFIX}/icons"               CACHE PATH "The icon install dir (default prefix/share/icons/)" FORCE)
+set(KCFG_INSTALL_DIR         "${SHARE_INSTALL_PREFIX}/config.kcfg"         CACHE PATH "The install dir for kconfig files" FORCE)
+set(LOCALE_INSTALL_DIR       "${SHARE_INSTALL_PREFIX}/locale"              CACHE PATH "The install dir for translations" FORCE)
+set(MIME_INSTALL_DIR         "${SHARE_INSTALL_PREFIX}/mimelnk"             CACHE PATH "The install dir for the mimetype desktop files" FORCE)
+set(SERVICES_INSTALL_DIR     "${SHARE_INSTALL_PREFIX}/services"            CACHE PATH "The install dir for service (desktop, protocol, ...) files" FORCE)
+set(SERVICETYPES_INSTALL_DIR "${SHARE_INSTALL_PREFIX}/servicetypes"        CACHE PATH "The install dir for servicestypes desktop files" FORCE)
+set(SOUND_INSTALL_DIR        "${SHARE_INSTALL_PREFIX}/sounds"              CACHE PATH "The install dir for sound files" FORCE)
+set(TEMPLATES_INSTALL_DIR    "${SHARE_INSTALL_PREFIX}/templates"           CACHE PATH "The install dir for templates (Create new file...)" FORCE)
+set(WALLPAPER_INSTALL_DIR    "${SHARE_INSTALL_PREFIX}/wallpapers"          CACHE PATH "The install dir for wallpapers" FORCE)
+set(KCONF_UPDATE_INSTALL_DIR "${DATA_INSTALL_DIR}/kconf_update"            CACHE PATH "The kconf_update install dir" FORCE)
+# this one shouldn't be used anymore
+set(APPLNK_INSTALL_DIR       "${SHARE_INSTALL_PREFIX}/applnk"              CACHE PATH "Is this still used ?" FORCE)
+set(AUTOSTART_INSTALL_DIR    "${SHARE_INSTALL_PREFIX}/autostart"           CACHE PATH "The install dir for autostart files" FORCE)
+set(XDG_APPS_DIR             "${SHARE_INSTALL_PREFIX}/applications/kde"    CACHE PATH "The XDG apps dir" FORCE)
+set(XDG_DIRECTORY_DIR        "${SHARE_INSTALL_PREFIX}/desktop-directories" CACHE PATH "The XDG directory" FORCE)
+set(SYSCONF_INSTALL_DIR      "${CMAKE_INSTALL_PREFIX}/etc"                 CACHE PATH "The kde sysconfig install dir (default/etc)" FORCE)
+set(MAN_INSTALL_DIR          "${SHARE_INSTALL_PREFIX}/man"                 CACHE PATH "The kde man install dir (default prefix/share/man/)" FORCE)
+set(INFO_INSTALL_DIR         "${CMAKE_INSTALL_PREFIX}/info"                CACHE PATH "The kde info install dir (default prefix/info)" FORCE)
+
+
+MACRO(ADD_POFILES packagename)
+    SET(_gmofiles)
+    FILE(GLOB _pofiles *.po)
+
+    FOREACH(_current_po ${_pofiles})
+        GET_FILENAME_COMPONENT(_name ${_current_po} NAME_WE)
+        STRING(REGEX REPLACE "^.*/([a-zA-Z]+)(\\.po)" "\\1" _lang "${_current_po}")
+        SET(_gmofile "${CMAKE_CURRENT_BINARY_DIR}/${_name}.gmo")
+        ADD_CUSTOM_COMMAND(OUTPUT ${_gmofile}
+            COMMAND ${MSGFMT}
+            ARGS "-o" "${_gmofile}" "${_current_po}"
+            DEPENDS ${_current_po}
+            )
+        SET(_gmofiles ${_gmofiles} ${_gmofile})
+        INSTALL(FILES ${_gmofile}
+            DESTINATION ${LOCALE_INSTALL_DIR}/${_lang}/LC_MESSAGES
+            RENAME ${packagename}.mo)
+    ENDFOREACH(_current_po ${_pofiles})
+
+    ADD_CUSTOM_TARGET(translations ALL
+        DEPENDS ${_gmofiles})
+
+ENDMACRO(ADD_POFILES)
diff --git a/cmake/modules/FindLIBFFMPEG.cmake b/cmake/modules/FindLIBFFMPEG.cmake
new file mode 100644 (file)
index 0000000..36bef70
--- /dev/null
@@ -0,0 +1,37 @@
+#
+# Find the FFMPEG includes and library
+#
+
+FIND_PATH(LIBFFMPEG_INCLUDE_DIR 
+  NAMES ffmpeg/avformat.h
+  PATHS ${MLT_PATH}/include /usr/local/include /usr/include
+  NO_DEFAULT_PATH
+)
+
+MESSAGE(STATUS "Found FFMPEG INCLUDES: ${LIBFFMPEG_INCLUDE_DIR}")
+
+FIND_LIBRARY(LIBFFMPEG_LIBRARY
+  NAMES avformat
+  PATHS ${MLT_PATH}/lib /usr/lib /usr/local/lib
+  NO_DEFAULT_PATH
+)
+
+MESSAGE(STATUS "Found FFMPEG LIBR: ${LIBFFMPEG_LIBRARY}")
+
+IF (LIBFFMPEG_LIBRARY AND LIBFFMPEG_INCLUDE_DIR)
+  SET( LIBFFMPEG_FOUND 1 )
+  SET( LIBFFMPEG_LIBRARIES ${LIBFFMPEG_LIBRARY} )
+ELSE (LIBFFMPEG_LIBRARY AND LIBFFMPEG_INCLUDE_DIR)
+  SET( LIBFFMPEG_FOUND 0 )
+ENDIF (LIBFFMPEG_LIBRARY AND LIBFFMPEG_INCLUDE_DIR)
+
+IF (LIBFFMPEG_FOUND)
+  IF (NOT LIBFFMPEG_FIND_QUIETLY)
+    MESSAGE(STATUS "Found FFMPEG library: ${LIBFFMPEG_LIBRARY}")
+  ENDIF (NOT LIBFFMPEG_FIND_QUIETLY)
+ELSE (LIBFFMPEG_FOUND)
+  IF (LIBFFMPEG_FIND_REQUIRED)
+    MESSAGE(FATAL_ERROR "Could not find FFMPEG library")
+  ENDIF (LIBFFMPEG_FIND_REQUIRED)
+ENDIF (LIBFFMPEG_FOUND)
+
diff --git a/cmake/modules/FindLIBMLT.cmake b/cmake/modules/FindLIBMLT.cmake
new file mode 100644 (file)
index 0000000..dc344bc
--- /dev/null
@@ -0,0 +1,42 @@
+#
+# Find the MLT includes and library
+#
+
+FIND_PROGRAM(MLT_CONFIG_EXECUTABLE mlt-config)
+EXEC_PROGRAM(${MLT_CONFIG_EXECUTABLE} ARGS --prefix OUTPUT_VARIABLE MLT_PATH )
+MESSAGE(STATUS "Found MLT INSTALL PATH: ${MLT_CONFIG_EXECUTABLE} , ${MLT_PATH}")
+SET(CMAKE_CXX_FLAGS -DMLT_PREFIX=\\\"\"${MLT_PATH}\"\\\")
+
+FIND_PATH(LIBMLT_INCLUDE_DIR 
+  NAMES framework/mlt.h
+  PATHS ${MLT_PATH}/include/mlt /usr/local/include/mlt /usr/include/mlt
+  NO_DEFAULT_PATH
+)
+
+MESSAGE(STATUS "Found MLT INCLUDES: ${LIBMLT_INCLUDE_DIR}")
+
+FIND_LIBRARY(LIBMLT_LIBRARY
+  NAMES mlt
+  PATHS ${MLT_PATH}/lib /usr/lib /usr/local/lib
+  NO_DEFAULT_PATH
+)
+
+MESSAGE(STATUS "Found MLT LIBR: ${LIBMLT_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 (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)
+
diff --git a/cmake/modules/FindLIBMLTPLUS.cmake b/cmake/modules/FindLIBMLTPLUS.cmake
new file mode 100644 (file)
index 0000000..e02ea0b
--- /dev/null
@@ -0,0 +1,38 @@
+#
+# Find the MLT++ includes and library
+#
+
+
+FIND_PATH(LIBMLTPLUS_INCLUDE_DIR 
+  NAMES mlt++/Mlt.h
+  PATHS ${MLT_PATH}/include /usr/local/include /usr/include
+  NO_DEFAULT_PATH
+)
+
+MESSAGE(STATUS "Found MLT++ INCLUDES: ${LIBMLTPLUS_INCLUDE_DIR}")
+
+FIND_LIBRARY(LIBMLTPLUS_LIBRARY
+  NAMES mlt++
+  PATHS ${MLT_PATH}/lib /usr/lib /usr/local/lib
+  NO_DEFAULT_PATH
+)
+
+MESSAGE(STATUS "Found MLT++ LIBR: ${LIBMLTPLUS_LIBRARY}")
+
+IF (LIBMLTPLUS_LIBRARY AND LIBMLTPLUS_INCLUDE_DIR)
+  SET( LIBMLTPLUS_FOUND 1 )
+  SET( LIBMLTPLUS_LIBRARIES ${LIBMLTPLUS_LIBRARY} )
+ELSE (LIBMLTPLUS_LIBRARY AND LIBMLTPLUS_INCLUDE_DIR)
+  SET( LIBMLTPLUS_FOUND 0 )
+ENDIF (LIBMLTPLUS_LIBRARY AND LIBMLTPLUS_INCLUDE_DIR)
+
+IF (LIBMLTPLUS_FOUND)
+  IF (NOT LIBMLTPLUS_FIND_QUIETLY)
+    MESSAGE(STATUS "Found MLT++ library: ${LIBMLTPLUS_LIBRARY}")
+  ENDIF (NOT LIBMLTPLUS_FIND_QUIETLY)
+ELSE (LIBMLTPLUS_FOUND)
+  IF (LIBMLTPLUS_FIND_REQUIRED)
+    MESSAGE(FATAL_ERROR "Could not find MLT++ library")
+  ENDIF (LIBMLTPLUS_FIND_REQUIRED)
+ENDIF (LIBMLTPLUS_FOUND)
+
diff --git a/cmake/modules/KdenlivePackageMessages.cmake b/cmake/modules/KdenlivePackageMessages.cmake
new file mode 100644 (file)
index 0000000..2bf7280
--- /dev/null
@@ -0,0 +1,22 @@
+ FIND_PROGRAM(XGETTEXT_EXECUTABLE xgettext)
+ FIND_PROGRAM(FIND_EXECUTABLE find)
+ FIND_PROGRAM(RM_EXECUTABLE rm)
+ FIND_PROGRAM(XTRACTRC_EXECUTABLE extractrc)
+
+ SET(KDE_POT_FILE ${KDE3_INCLUDE_DIR}/kde.pot)
+ ADD_CUSTOM_TARGET(package-messages
+     COMMAND $(MAKE) all # first make sure all generated source exists
+        COMMAND ${RM_EXECUTABLE} -f po/*.gmo
+        #COMMAND ${XTRACTRC_EXECUTABLE} ${CMAKE_SOURCE_DIR}/kdenlive/*.rc >> ${CMAKE_SOURCE_DIR}/rc.cpp
+        COMMAND ${XTRACTRC_EXECUTABLE} --tag=name --tag=description --tag=label --context=effectNames ${CMAKE_SOURCE_DIR}/effects/*.xml >> ${CMAKE_SOURCE_DIR}/rc.cpp
+        COMMAND ${XGETTEXT_EXECUTABLE} -C
+            -ki18n -ktr2i18n -kI18N_NOOP
+            -x ${KDE_POT_FILE}
+            `${FIND_EXECUTABLE} ${CMAKE_CURRENT_SOURCE_DIR} -name \\*.ui -o -name \\*.cpp`
+            `${FIND_EXECUTABLE} ${CMAKE_CURRENT_BINARY_DIR} -name \\*.ui -o -name \\*.cpp`
+            -o ${CMAKE_SOURCE_DIR}/po/kdenlive.pot
+        COMMAND $(MAKE) translations
+        # DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/kwave/menus.config
+    )