Initial attempt at migration to standard TDE CMake build system

pull/1/head
Timothy Pearson 13 years ago
parent 32e75dd020
commit 0710d08800

@ -1,53 +1,37 @@
# Rosegarden #################################################
# A MIDI and audio sequencer and musical notation editor.
# #
# This program is Copyright 2000-2008 # (C) 2011 Timothy Pearson
# Guillaume Laurent <glaurent@telegraph-road.org>, # kb9vqf (AT) pearsoncomputing.net
# Chris Cannam <cannam@all-day-breakfast.com>,
# Richard Bown <richard.bown@ferventsoftware.com>
# #
# The moral rights of Guillaume Laurent, Chris Cannam, and Richard # Improvements and feedback are welcome
# Bown to claim authorship of this work have been asserted.
# #
# This file is Copyright 2006-2008 # This file is released under GPL >= 2
# Pedro Lopez-Cabanillas <plcl@users.sourceforge.net>
# #
# Other copyrights also apply to some parts of this work. Please #################################################
# see the AUTHORS file and individual file headers for details.
# cmake_minimum_required( VERSION 2.8 )
# This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License as
# published by the Free Software Foundation; either version 2 of the ##### general package setup #####################
# License, or (at your option) any later version. See the file
# COPYING included with this distribution for more information.
# The name of our project is "ROSEGARDEN". CMakeLists files in this project can # The name of our project is "ROSEGARDEN". CMakeLists files in this project can
# refer to the root source directory of the project as ${ROSEGARDEN_SOURCE_DIR} # refer to the root source directory of the project as ${ROSEGARDEN_SOURCE_DIR}
# and to the root binary directory of the project as ${ROSEGARDEN_BINARY_DIR} # and to the root binary directory of the project as ${ROSEGARDEN_BINARY_DIR}
PROJECT(ROSEGARDEN) PROJECT(ROSEGARDEN)
# CMake supports KDE checks since this version number
CMAKE_MINIMUM_REQUIRED(VERSION 2.4.2)
# Show full commands and messages. It generates a lot of console output. ##### include essential cmake modules ###########
# It is necessary for Eclipse warning/error parser,
# but it can be enabled anyway with "make VERBOSE=1"
SET(CMAKE_VERBOSE_MAKEFILE OFF)
# Seems that relative paths break some scripts. Don't set it ON include( CheckCXXSourceCompiles )
SET(CMAKE_USE_RELATIVE_PATHS OFF) include( CheckFunctionExists )
include( CheckIncludeFileCXX )
include( CheckLibraryExists )
include( CheckStructHasMember )
include( CheckSymbolExists )
include( CheckTypeSize )
include( FindPkgConfig )
# Rebuild the object files if the rules have changed, but not the actual source ##### set up versioning #########################
# files or headers (e.g. if you changed the some compiler switches)
SET(CMAKE_SKIP_RULE_DEPENDENCY OFF)
# Misc settings
SET(CMAKE_COLOR_MAKEFILE ON)
SET(CMAKE_INCLUDE_CURRENT_DIR ON)
SET(CMAKE_BUILD_WITH_INSTALL_RPATH ON)
# Additional CMake modules for 3rd party library checks reside here
SET(CMAKE_MODULE_PATH "${CMAKE_SOURCE_DIR}/cmake_admin")
# Mark as advanced # Mark as advanced
MARK_AS_ADVANCED(EXECUTABLE_OUTPUT_PATH MARK_AS_ADVANCED(EXECUTABLE_OUTPUT_PATH
@ -66,15 +50,32 @@ IF(VERSION_SUFFIX)
ENDIF(VERSION_SUFFIX) ENDIF(VERSION_SUFFIX)
ADD_DEFINITIONS(-D'VERSION="${VERSION}"') ADD_DEFINITIONS(-D'VERSION="${VERSION}"')
# User options
OPTION(WANT_DEBUG "Include debug support" OFF) ##### include our cmake modules #################
OPTION(WANT_FULLDBG "Full debug support (BIG executables!)" OFF)
OPTION(WANT_SOUND "Include Sound support" ON) set( CMAKE_MODULE_PATH "${CMAKE_SOURCE_DIR}/cmake/modules" )
OPTION(WANT_JACK "Include Jack (Jack Audio Connection Kit) support" ON) include( TDEMacros )
OPTION(WANT_DSSI "Include DSSI support" ON)
OPTION(WANT_LIRC "Include LIRC (Linux Infrared Remote Control) support" OFF)
OPTION(WANT_PCH "Use precompiled headers" OFF) ##### setup install paths #######################
OPTION(WANT_TEST "Perform unit tests" OFF)
include( TDESetupPaths )
tde_setup_paths( )
##### user requested modules ####################
option( BUILD_ALL "Build all" OFF )
option( BUILD_DOC "Build doc" ${BUILD_ALL} )
option( BUILD_TRANSLATIONS "Build translations" ${BUILD_ALL} )
option( WANT_DEBUG "Include debug support" OFF )
option( WANT_FULLDBG "Full debug support (BIG executables!)" OFF )
option( WANT_SOUND "Include Sound support" ${BUILD_ALL} )
option( WANT_JACK "Include Jack (Jack Audio Connection Kit) support" ${BUILD_ALL} )
option( WANT_DSSI "Include DSSI support" ${BUILD_ALL} )
option( WANT_LIRC "Include LIRC (Linux Infrared Remote Control) support" OFF )
option( WANT_PCH "Use precompiled headers" OFF )
option( WANT_TEST "Perform unit tests" OFF )
IF(WANT_TEST) IF(WANT_TEST)
ENABLE_TESTING() ENABLE_TESTING()
@ -86,314 +87,37 @@ IF(NOT WANT_SOUND)
ADD_DEFINITIONS(-DNO_SOUND) ADD_DEFINITIONS(-DNO_SOUND)
ENDIF(NOT WANT_SOUND) ENDIF(NOT WANT_SOUND)
# Check for KDE3 ##### configure checks ##########################
FIND_PACKAGE(KDE3 REQUIRED QUIET)
IF(QT_FOUND) include( ConfigureChecks.cmake )
ADD_DEFINITIONS(${QT_DEFINITIONS})
MESSAGE(STATUS "Found Qt3 (version ${qt_version_str})")
#MESSAGE("QT_LIBRARIES: ${QT_LIBRARIES}") ###### global compiler settings #################
ELSE(QT_FOUND)
MESSAGE(STATUS_ERROR "Qt3 package not found--assuming TQt4") add_definitions(
SET(QT_INCLUDE_DIR "/usr/include/qt4") -DHAVE_CONFIG_H
ENDIF(QT_FOUND) )
SET(QT_UIC_EXECUTABLE "/usr/bin/uic-tqt")
SET(QT_MOC_EXECUTABLE "/usr/bin/tmoc") set( CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${TQT_CXX_FLAGS}" )
IF(KDE3_FOUND) set( CMAKE_SHARED_LINKER_FLAGS "-Wl,--no-undefined" )
ADD_DEFINITIONS(${KDE3_DEFINITIONS}) set( CMAKE_MODULE_LINKER_FLAGS "-Wl,--no-undefined" )
#MESSAGE("KDE3PREFIX: ${KDE3PREFIX}")
KDE3_PRINT_RESULTS()
#MESSAGE("QT_AND_TDECORE_LIBS: ${QT_AND_TDECORE_LIBS}") ##### source directories ########################
ELSE(KDE3_FOUND)
MESSAGE(FATAL_ERROR "KDE3 Not found") add_subdirectory( src )
ENDIF(KDE3_FOUND) add_subdirectory( data )
tde_conditional_add_subdirectory( BUILD_DOC doc )
# Clear the flags set by FindKDE3 tde_conditional_add_subdirectory( BUILD_TRANSLATIONS po )
SET(CMAKE_CXX_FLAGS "-I/usr/include/tqt -include tqt.h -DTQT_THREAD_SUPPORT")
MARK_AS_ADVANCED(KDE3_BUILD_TESTS
KDE3_ENABLE_FINAL ##### write configure files #####################
KDE3_DCOPIDL_EXECUTABLE
KDE3_DCOPIDL2CPP_EXECUTABLE configure_file( config.h.cmake config.h @ONLY )
KDE3_INCLUDE_DIR
KDE3_KCFGC_EXECUTABLE
KDE3_TDECORE_LIBRARY
KDECONFIG_EXECUTABLE )
# Provide the KDE3 prefix as a default prefix (if the user has CMake 2.4.4)
IF(CMAKE_INSTALL_PREFIX_INITIALIZED_TO_DEFAULT)
SET(CMAKE_INSTALL_PREFIX ${KDE3PREFIX} CACHE PATH
"Install path prefix, prepended onto install directories." FORCE)
ENDIF(CMAKE_INSTALL_PREFIX_INITIALIZED_TO_DEFAULT)
# Check for PKG-CONFIG
FIND_PACKAGE(PkgConfig REQUIRED)
IF(PKG_CONFIG_FOUND)
MESSAGE(STATUS "Program pkg-config found (${PKG_CONFIG_EXECUTABLE})")
ELSE(PKG_CONFIG_FOUND)
MESSAGE(FATAL_ERROR "Program pkg-config not found")
ENDIF(PKG_CONFIG_FOUND)
# Initialize some variables
SET(HAVE_XFT FALSE)
SET(HAVE_ALSA FALSE)
SET(HAVE_JACK FALSE)
SET(HAVE_DSSI FALSE)
SET(HAVE_LIBLO FALSE)
SET(HAVE_LIBLRDF FALSE)
SET(HAVE_LADSPA FALSE)
SET(HAVE_LIRC FALSE)
SET(HAVE_FFTW3F FALSE)
# Check for Xft
PKG_CHECK_MODULES(XFT xft>=2.1.0)
IF(XFT_FOUND)
ADD_DEFINITIONS(-DHAVE_XFT)
SET(HAVE_XFT TRUE)
SET(XFT_LIBS ${XFT_LIBRARIES})
#MESSAGE("XFT_LIBS: ${XFT_LIBS}")
LIST(APPEND XFT_LIB_DIR ${XFT_LIBRARY_DIRS} ${XFT_LIBDIR})
#MESSAGE("XFT_LIB_DIR: ${XFT_LIB_DIR}")
LIST(APPEND XFT_INC_DIR ${XFT_INCLUDE_DIRS} ${XFT_INCLUDEDIR})
#MESSAGE("XFT_INC_DIR: ${XFT_INC_DIR}")
ENDIF(XFT_FOUND)
IF(WANT_SOUND)
# Check for ALSA 1.0
PKG_CHECK_MODULES(ALSA REQUIRED alsa>=1.0)
IF(ALSA_FOUND)
SET(HAVE_ALSA TRUE)
ADD_DEFINITIONS(-DHAVE_ALSA)
SET(ALSA_LIBS ${ALSA_LIBRARIES})
#MESSAGE("ALSA_LIBS: ${ALSA_LIBS}")
LIST(APPEND ALSA_LIB_DIR ${ALSA_LIBRARY_DIRS} ${ALSA_LIBDIR} )
#MESSAGE("ALSA_LIB_DIR: ${ALSA_LIB_DIR}")
LIST(APPEND ALSA_INC_DIR ${ALSA_INCLUDE_DIRS} ${ALSA_INCLUDEDIR})
#MESSAGE("ALSA_INC_DIR: ${ALSA_INC_DIR}")
ELSE(ALSA_FOUND)
MESSAGE(FATAL_ERROR "Please install the required package. Aborting")
ENDIF(ALSA_FOUND)
IF(WANT_JACK)
PKG_CHECK_MODULES(JACK jack>=0.77)
IF(JACK_FOUND)
ADD_DEFINITIONS(-DHAVE_LIBJACK)
SET(HAVE_JACK TRUE)
SET(JACK_LIBS ${JACK_LIBRARIES})
#MESSAGE("JACK_LIBS: ${JACK_LIBS}")
LIST(APPEND JACK_LIB_DIR ${JACK_LIBDIR} ${JACK_LIBRARY_DIRS})
#MESSAGE("JACK_LIB_DIR: ${JACK_LIB_DIR}")
LIST(APPEND JACK_INC_DIR ${JACK_INCLUDEDIR} ${JACK_INCLUDE_DIRS})
#MESSAGE("JACK_INC_DIR: ${JACK_INC_DIR}")
ENDIF(JACK_FOUND)
ENDIF(WANT_JACK)
IF(WANT_DSSI)
PKG_CHECK_MODULES(DSSI dssi>=0.4)
IF(DSSI_FOUND)
ADD_DEFINITIONS(-DHAVE_DSSI)
SET(HAVE_DSSI TRUE)
LIST(APPEND DSSI_INC_DIR ${DSSI_INCLUDE_DIRS} ${DSSI_INCLUDEDIR})
#MESSAGE("DSSI_INC_DIR: ${DSSI_INC_DIR}")
ENDIF(DSSI_FOUND)
ENDIF(WANT_DSSI)
PKG_CHECK_MODULES(LIBLO liblo>=0.7)
IF(LIBLO_FOUND)
ADD_DEFINITIONS(-DHAVE_LIBLO)
SET(HAVE_LIBLO TRUE)
SET(LIBLO_LIBS ${LIBLO_LIBRARIES})
#MESSAGE("LIBLO_LIBS: ${LIBLO_LIBS}")
LIST(APPEND LIBLO_LIB_DIR ${LIBLO_LIBDIR} ${LIBLO_LIBRARY_DIRS})
#MESSAGE("LIBLO_LIB_DIR: ${LIBLO_LIB_DIR}")
LIST(APPEND LIBLO_INC_DIR ${LIBLO_INCLUDEDIR} ${LIBLO_INCLUDE_DIRS})
#MESSAGE("LIBLO_INC_DIR: ${LIBLO_INC_DIR}")
ENDIF(LIBLO_FOUND)
PKG_CHECK_MODULES(LRDF lrdf>=0.3)
IF(LRDF_FOUND)
SET(HAVE_LIBLRDF TRUE)
ADD_DEFINITIONS(-DHAVE_LIBLRDF)
SET(LRDF_LIBS ${LRDF_LIBRARIES})
#MESSAGE("LRDF_LIBS: ${LRDF_LIBS}")
LIST(APPEND LRDF_LIB_DIR ${LRDF_LIBDIR} ${LRDF_LIBRARY_DIRS})
#MESSAGE("LRDF_LIB_DIR: ${LRDF_LIB_DIR}")
LIST(APPEND LRDF_INC_DIR ${LRDF_INCLUDEDIR} ${LRDF_INCLUDE_DIRS})
#MESSAGE("LRDF_INC_DIR: ${LRDF_INC_DIR}")
ENDIF(LRDF_FOUND)
FIND_PACKAGE(LADSPA QUIET)
IF(LADSPA_FOUND)
SET(HAVE_LADSPA TRUE)
ADD_DEFINITIONS(-DHAVE_LADSPA)
SET(LADSPA_INC_DIR ${LADSPA_INCLUDE_DIR})
MESSAGE(STATUS "Found LADSPA (${LADSPA_INC_DIR})")
ENDIF(LADSPA_FOUND)
ENDIF(WANT_SOUND)
PKG_CHECK_MODULES(FFTW3F REQUIRED fftw3f>=3.0.0)
IF(FFTW3F_FOUND)
ADD_DEFINITIONS(-DHAVE_FFTW3F)
SET(HAVE_FFTW3F TRUE)
SET(FFTW3F_LIBS ${FFTW3F_LIBRARIES})
#MESSAGE("FFTW3F_LIBS: ${FFTW3F_LIBS}")
LIST(APPEND FFTW3F_LIB_DIR ${FFTW3F_LIBDIR} ${FFTW3F_LIBRARY_DIRS})
#MESSAGE("FFTW3F_LIB_DIR: ${FFTW3F_LIB_DIR}")
LIST(APPEND FFTW3F_INC_DIR ${FFTW3F_INCLUDEDIR} ${FFTW3F_INCLUDE_DIRS})
#MESSAGE("FFTW3F_INC_DIR: ${FFTW3F_INC_DIR}")
ELSE(FFTW3F_FOUND)
MESSAGE(FATAL_ERROR "Please install the required package. Aborting")
ENDIF(FFTW3F_FOUND)
IF(WANT_LIRC)
FIND_PACKAGE(LIRC QUIET)
IF(LIRC_FOUND)
SET(HAVE_LIRC TRUE)
ADD_DEFINITIONS(-DHAVE_LIRC)
MESSAGE(STATUS "Found LIRC (${LIRC_LIBRARY})")
SET(LIRC_LIBS ${LIRC_LIBRARY})
SET(LIRC_INC_DIR ${LIRC_INCLUDE_DIR})
SET(LIRC_LIB_DIR ${LIRC_LIBRARY_DIR})
#MESSAGE("LIRC_LIBS: ${LIRC_LIBS}")
#MESSAGE("LIRC_LIB_DIR: ${LIRC_LIB_DIR}")
#MESSAGE("LIRC_INC_DIR: ${LIRC_INC_DIR}")
ENDIF(LIRC_FOUND)
ENDIF(WANT_LIRC)
FIND_PACKAGE(MSGFMT REQUIRED)
IF(MSGFMT_FOUND)
MESSAGE(STATUS "Program msgfmt found (${MSGFMT_EXECUTABLE})")
ENDIF(MSGFMT_FOUND)
FIND_PACKAGE(KDECONFIG)
IF(KDECONFIG_EXECUTABLE)
MESSAGE(STATUS "Program kde-config found (${KDECONFIG_EXECUTABLE})")
#MESSAGE("KDE3PREFIX: ${KDE3PREFIX}")
ENDIF(KDECONFIG_EXECUTABLE)
FIND_PACKAGE(MEINPROC REQUIRED)
IF(MEINPROC_FOUND)
MESSAGE(STATUS "Program meinproc found (${MEINPROC_EXECUTABLE})")
ENDIF(MEINPROC_FOUND)
# Check GCC for PCH support
SET(USE_PCH FALSE)
IF(WANT_PCH)
FIND_PACKAGE(PCHSupport)
IF(PCHSupport_FOUND)
SET(USE_PCH TRUE)
ADD_DEFINITIONS(-DUSE_PCH)
MESSAGE(STATUS "Enabling precompiled headers for GCC ${gcc_compiler_version}")
ENDIF(PCHSupport_FOUND)
ENDIF(WANT_PCH)
# Check PTHREAD_MUTEX_RECURSIVE
INCLUDE(CheckCSourceCompiles)
CHECK_C_SOURCE_COMPILES(
"#include <pthread.h>
int main(int argc, char **argv) {
pthread_mutexattr_t attr;
pthread_mutexattr_settype(&attr, PTHREAD_MUTEX_RECURSIVE);
return 0;
}" PTHREAD_HAS_MUTEX_RECURSIVE)
IF(PTHREAD_HAS_MUTEX_RECURSIVE)
ADD_DEFINITIONS(-DHAVE_PTHREAD_MUTEX_RECURSIVE)
ENDIF(PTHREAD_HAS_MUTEX_RECURSIVE)
# End of PTHREAD_MUTEX_RECURSIVE Test
SET(CMAKE_CXX_FLAGS_RELEASE "-O2 -w -fexceptions -DNDEBUG -include tqt.h")
SET(CMAKE_CXX_FLAGS_RELWITHDEBINFO "-O2 -g -Wall -fexceptions -DDEBUG -include tqt.h")
SET(CMAKE_CXX_FLAGS_DEBUG "-O0 -g3 -Wall -fexceptions -DDEBUG -include tqt.h")
MESSAGE(STATUS "Rosegarden ${VERSION} will be built for install into ${CMAKE_INSTALL_PREFIX}")
IF(WANT_DEBUG)
IF(WANT_FULLDBG)
MESSAGE(STATUS "Configured to compile including full debug information in the executables")
SET(CMAKE_BUILD_TYPE Debug CACHE STRING
"Choose the type of build, options are: Debug Release RelWithDebInfo" FORCE)
ELSE(WANT_FULLDBG)
MESSAGE(STATUS "Configured to compile including debug information in the executables")
SET(CMAKE_BUILD_TYPE RelWithDebInfo CACHE STRING
"Choose the type of build, options are: Debug Release RelWithDebInfo" FORCE)
ENDIF(WANT_FULLDBG)
ELSE(WANT_DEBUG)
MESSAGE(STATUS "Configured to compile for release without debug information")
SET(CMAKE_BUILD_TYPE Release CACHE STRING
"Choose the type of build, options are: Debug Release RelWithDebInfo" FORCE)
ENDIF(WANT_DEBUG)
MARK_AS_ADVANCED(CMAKE_BUILD_TYPE)
# Warn the user if important libraries are missing
INCLUDE(UserWarnings)
# Recurse into the "src" subdirectory. This does not actually
# cause another cmake executable to run. The same process will walk through
# the project's entire directory structure.
# Output directory will be "RGbuild/"
ADD_SUBDIRECTORY(src RGbuild)
# Build and install the translations directory
ADD_SUBDIRECTORY(po RGbuild/po)
# Build and install the documentation directory
ADD_SUBDIRECTORY(docs RGbuild/docs)
# Install data files
ADD_SUBDIRECTORY(data RGbuild/data)
# install some documents...
# INSTALL( FILES AUTHORS COPYING README TRANSLATORS INSTALL rosegarden.lsm
# DESTINATION share/doc/rosegarden-${VERSION} )
# create and install the version file # create and install the version file
FILE(WRITE version.txt "${VERSION}\n") FILE(WRITE version.txt "${VERSION}\n")
INSTALL( FILES version.txt INSTALL( FILES version.txt DESTINATION ${DATA_INSTALL_DIR}/rosegarden )
DESTINATION ${KDE3DATADIR}/rosegarden )
# uninstall custom target
CONFIGURE_FILE(
"${CMAKE_SOURCE_DIR}/cmake_admin/cmake_uninstall.cmake.in"
"${CMAKE_CURRENT_BINARY_DIR}/cmake_uninstall.cmake"
IMMEDIATE @ONLY)
ADD_CUSTOM_TARGET(uninstall
"${CMAKE_COMMAND}" -P "${CMAKE_CURRENT_BINARY_DIR}/cmake_uninstall.cmake")
# Custom target trying to clean the CMake generated files
ADD_CUSTOM_TARGET ( distclean
COMMAND rm -f {,src/,po/,docs/,data/}CMakeCache.txt
COMMAND rm -f {,src/,po/,docs/,data/}cmake_install.cmake
COMMAND rm -f {,src/,po/,docs/,data/}cmake_uninstall.cmake
COMMAND rm -f {,src/,po/,docs/,data/}CPackConfig.cmake
COMMAND rm -f {,src/,po/,docs/,data/}CPackSourceConfig.cmake
COMMAND rm -f {,src/,po/,docs/,data/}install_manifest.txt
COMMAND rm -f {,src/,po/,docs/,data/}progress.make
COMMAND rm -f {,src/,po/,docs/,data/}rosegarden.spec
COMMAND rm -f {,src/,po/,docs/,data/}Makefile
COMMAND rm -rf {,src/,po/,docs/,data/}CMakeFiles
COMMAND rm -rf {,src/,po/,docs/,data/}_CPack_Packages
COMMAND rm -rf RGbuild/*
WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}
)
ADD_DEPENDENCIES(distclean clean)
# configure the RPM spec # configure the RPM spec
CONFIGURE_FILE( CONFIGURE_FILE("${CMAKE_SOURCE_DIR}/rosegarden.spec.in" "${CMAKE_SOURCE_DIR}/rosegarden.spec" IMMEDIATE @ONLY)
"${CMAKE_SOURCE_DIR}/rosegarden.spec.in"
"${CMAKE_SOURCE_DIR}/rosegarden.spec"
IMMEDIATE @ONLY)
# tarball target
ADD_CUSTOM_TARGET ( tarball
COMMAND mkdir -p rosegarden-${VERSION}
COMMAND cp -r cmake_admin rosegarden-${VERSION}
COMMAND cp -r data rosegarden-${VERSION}
COMMAND cp -r docs rosegarden-${VERSION}
COMMAND cp -r po rosegarden-${VERSION}
COMMAND cp -r src rosegarden-${VERSION}
COMMAND cp CMakeLists.txt AUTHORS COPYING Doxyfile INSTALL README rosegarden.* TRANSLATORS rosegarden-${VERSION}
COMMAND tar -cj --exclude .svn --exclude gettext-0.10.35-kde -f rosegarden-${VERSION}.tar.bz2 rosegarden-${VERSION}
COMMAND rm -rf rosegarden-${VERSION}
WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}
)

@ -0,0 +1,399 @@
# Rosegarden
# A MIDI and audio sequencer and musical notation editor.
#
# This program is Copyright 2000-2008
# Guillaume Laurent <glaurent@telegraph-road.org>,
# Chris Cannam <cannam@all-day-breakfast.com>,
# Richard Bown <richard.bown@ferventsoftware.com>
#
# The moral rights of Guillaume Laurent, Chris Cannam, and Richard
# Bown to claim authorship of this work have been asserted.
#
# This file is Copyright 2006-2008
# Pedro Lopez-Cabanillas <plcl@users.sourceforge.net>
#
# Other copyrights also apply to some parts of this work. Please
# see the AUTHORS file and individual file headers for details.
#
# This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License as
# published by the Free Software Foundation; either version 2 of the
# License, or (at your option) any later version. See the file
# COPYING included with this distribution for more information.
# The name of our project is "ROSEGARDEN". CMakeLists files in this project can
# refer to the root source directory of the project as ${ROSEGARDEN_SOURCE_DIR}
# and to the root binary directory of the project as ${ROSEGARDEN_BINARY_DIR}
PROJECT(ROSEGARDEN)
# CMake supports KDE checks since this version number
CMAKE_MINIMUM_REQUIRED(VERSION 2.4.2)
# Show full commands and messages. It generates a lot of console output.
# It is necessary for Eclipse warning/error parser,
# but it can be enabled anyway with "make VERBOSE=1"
SET(CMAKE_VERBOSE_MAKEFILE OFF)
# Seems that relative paths break some scripts. Don't set it ON
SET(CMAKE_USE_RELATIVE_PATHS OFF)
# Rebuild the object files if the rules have changed, but not the actual source
# files or headers (e.g. if you changed the some compiler switches)
SET(CMAKE_SKIP_RULE_DEPENDENCY OFF)
# Misc settings
SET(CMAKE_COLOR_MAKEFILE ON)
SET(CMAKE_INCLUDE_CURRENT_DIR ON)
SET(CMAKE_BUILD_WITH_INSTALL_RPATH ON)
# Additional CMake modules for 3rd party library checks reside here
SET(CMAKE_MODULE_PATH "${CMAKE_SOURCE_DIR}/cmake_admin")
# Mark as advanced
MARK_AS_ADVANCED(EXECUTABLE_OUTPUT_PATH
LIBRARY_OUTPUT_PATH
CMAKE_BACKWARDS_COMPATIBILITY)
# Rosegarden version string
SET (VERSION_MAJOR "1")
SET (VERSION_MINOR "7")
SET (VERSION_PATCH "0")
# comment out the next line for a public release
#SET (VERSION_SUFFIX "svn")
SET (VERSION ${VERSION_MAJOR}.${VERSION_MINOR}.${VERSION_PATCH})
IF(VERSION_SUFFIX)
SET (VERSION "${VERSION}-${VERSION_SUFFIX}")
ENDIF(VERSION_SUFFIX)
ADD_DEFINITIONS(-D'VERSION="${VERSION}"')
# User options
OPTION(WANT_DEBUG "Include debug support" OFF)
OPTION(WANT_FULLDBG "Full debug support (BIG executables!)" OFF)
OPTION(WANT_SOUND "Include Sound support" ON)
OPTION(WANT_JACK "Include Jack (Jack Audio Connection Kit) support" ON)
OPTION(WANT_DSSI "Include DSSI support" ON)
OPTION(WANT_LIRC "Include LIRC (Linux Infrared Remote Control) support" OFF)
OPTION(WANT_PCH "Use precompiled headers" OFF)
OPTION(WANT_TEST "Perform unit tests" OFF)
IF(WANT_TEST)
ENABLE_TESTING()
ENDIF(WANT_TEST)
IF(NOT WANT_SOUND)
SET(WANT_JACK OFF)
SET(WANT_DSSI OFF)
ADD_DEFINITIONS(-DNO_SOUND)
ENDIF(NOT WANT_SOUND)
# Check for KDE3
FIND_PACKAGE(KDE3 REQUIRED QUIET)
IF(QT_FOUND)
ADD_DEFINITIONS(${QT_DEFINITIONS})
MESSAGE(STATUS "Found Qt3 (version ${qt_version_str})")
#MESSAGE("QT_LIBRARIES: ${QT_LIBRARIES}")
ELSE(QT_FOUND)
MESSAGE(STATUS_ERROR "Qt3 package not found--assuming TQt4")
SET(QT_INCLUDE_DIR "/usr/include/qt4")
ENDIF(QT_FOUND)
SET(QT_UIC_EXECUTABLE "/usr/bin/uic-tqt")
SET(QT_MOC_EXECUTABLE "/usr/bin/tmoc")
IF(KDE3_FOUND)
ADD_DEFINITIONS(${KDE3_DEFINITIONS})
#MESSAGE("KDE3PREFIX: ${KDE3PREFIX}")
KDE3_PRINT_RESULTS()
#MESSAGE("QT_AND_TDECORE_LIBS: ${QT_AND_TDECORE_LIBS}")
ELSE(KDE3_FOUND)
MESSAGE(FATAL_ERROR "KDE3 Not found")
ENDIF(KDE3_FOUND)
# Clear the flags set by FindKDE3
SET(CMAKE_CXX_FLAGS "-I/usr/include/tqt -include tqt.h -DTQT_THREAD_SUPPORT")
MARK_AS_ADVANCED(KDE3_BUILD_TESTS
KDE3_ENABLE_FINAL
KDE3_DCOPIDL_EXECUTABLE
KDE3_DCOPIDL2CPP_EXECUTABLE
KDE3_INCLUDE_DIR
KDE3_KCFGC_EXECUTABLE
KDE3_TDECORE_LIBRARY
KDECONFIG_EXECUTABLE )
# Provide the KDE3 prefix as a default prefix (if the user has CMake 2.4.4)
IF(CMAKE_INSTALL_PREFIX_INITIALIZED_TO_DEFAULT)
SET(CMAKE_INSTALL_PREFIX ${KDE3PREFIX} CACHE PATH
"Install path prefix, prepended onto install directories." FORCE)
ENDIF(CMAKE_INSTALL_PREFIX_INITIALIZED_TO_DEFAULT)
# Check for PKG-CONFIG
FIND_PACKAGE(PkgConfig REQUIRED)
IF(PKG_CONFIG_FOUND)
MESSAGE(STATUS "Program pkg-config found (${PKG_CONFIG_EXECUTABLE})")
ELSE(PKG_CONFIG_FOUND)
MESSAGE(FATAL_ERROR "Program pkg-config not found")
ENDIF(PKG_CONFIG_FOUND)
# Initialize some variables
SET(HAVE_XFT FALSE)
SET(HAVE_ALSA FALSE)
SET(HAVE_JACK FALSE)
SET(HAVE_DSSI FALSE)
SET(HAVE_LIBLO FALSE)
SET(HAVE_LIBLRDF FALSE)
SET(HAVE_LADSPA FALSE)
SET(HAVE_LIRC FALSE)
SET(HAVE_FFTW3F FALSE)
# Check for Xft
PKG_CHECK_MODULES(XFT xft>=2.1.0)
IF(XFT_FOUND)
ADD_DEFINITIONS(-DHAVE_XFT)
SET(HAVE_XFT TRUE)
SET(XFT_LIBS ${XFT_LIBRARIES})
#MESSAGE("XFT_LIBS: ${XFT_LIBS}")
LIST(APPEND XFT_LIB_DIR ${XFT_LIBRARY_DIRS} ${XFT_LIBDIR})
#MESSAGE("XFT_LIB_DIR: ${XFT_LIB_DIR}")
LIST(APPEND XFT_INC_DIR ${XFT_INCLUDE_DIRS} ${XFT_INCLUDEDIR})
#MESSAGE("XFT_INC_DIR: ${XFT_INC_DIR}")
ENDIF(XFT_FOUND)
IF(WANT_SOUND)
# Check for ALSA 1.0
PKG_CHECK_MODULES(ALSA REQUIRED alsa>=1.0)
IF(ALSA_FOUND)
SET(HAVE_ALSA TRUE)
ADD_DEFINITIONS(-DHAVE_ALSA)
SET(ALSA_LIBS ${ALSA_LIBRARIES})
#MESSAGE("ALSA_LIBS: ${ALSA_LIBS}")
LIST(APPEND ALSA_LIB_DIR ${ALSA_LIBRARY_DIRS} ${ALSA_LIBDIR} )
#MESSAGE("ALSA_LIB_DIR: ${ALSA_LIB_DIR}")
LIST(APPEND ALSA_INC_DIR ${ALSA_INCLUDE_DIRS} ${ALSA_INCLUDEDIR})
#MESSAGE("ALSA_INC_DIR: ${ALSA_INC_DIR}")
ELSE(ALSA_FOUND)
MESSAGE(FATAL_ERROR "Please install the required package. Aborting")
ENDIF(ALSA_FOUND)
IF(WANT_JACK)
PKG_CHECK_MODULES(JACK jack>=0.77)
IF(JACK_FOUND)
ADD_DEFINITIONS(-DHAVE_LIBJACK)
SET(HAVE_JACK TRUE)
SET(JACK_LIBS ${JACK_LIBRARIES})
#MESSAGE("JACK_LIBS: ${JACK_LIBS}")
LIST(APPEND JACK_LIB_DIR ${JACK_LIBDIR} ${JACK_LIBRARY_DIRS})
#MESSAGE("JACK_LIB_DIR: ${JACK_LIB_DIR}")
LIST(APPEND JACK_INC_DIR ${JACK_INCLUDEDIR} ${JACK_INCLUDE_DIRS})
#MESSAGE("JACK_INC_DIR: ${JACK_INC_DIR}")
ENDIF(JACK_FOUND)
ENDIF(WANT_JACK)
IF(WANT_DSSI)
PKG_CHECK_MODULES(DSSI dssi>=0.4)
IF(DSSI_FOUND)
ADD_DEFINITIONS(-DHAVE_DSSI)
SET(HAVE_DSSI TRUE)
LIST(APPEND DSSI_INC_DIR ${DSSI_INCLUDE_DIRS} ${DSSI_INCLUDEDIR})
#MESSAGE("DSSI_INC_DIR: ${DSSI_INC_DIR}")
ENDIF(DSSI_FOUND)
ENDIF(WANT_DSSI)
PKG_CHECK_MODULES(LIBLO liblo>=0.7)
IF(LIBLO_FOUND)
ADD_DEFINITIONS(-DHAVE_LIBLO)
SET(HAVE_LIBLO TRUE)
SET(LIBLO_LIBS ${LIBLO_LIBRARIES})
#MESSAGE("LIBLO_LIBS: ${LIBLO_LIBS}")
LIST(APPEND LIBLO_LIB_DIR ${LIBLO_LIBDIR} ${LIBLO_LIBRARY_DIRS})
#MESSAGE("LIBLO_LIB_DIR: ${LIBLO_LIB_DIR}")
LIST(APPEND LIBLO_INC_DIR ${LIBLO_INCLUDEDIR} ${LIBLO_INCLUDE_DIRS})
#MESSAGE("LIBLO_INC_DIR: ${LIBLO_INC_DIR}")
ENDIF(LIBLO_FOUND)
PKG_CHECK_MODULES(LRDF lrdf>=0.3)
IF(LRDF_FOUND)
SET(HAVE_LIBLRDF TRUE)
ADD_DEFINITIONS(-DHAVE_LIBLRDF)
SET(LRDF_LIBS ${LRDF_LIBRARIES})
#MESSAGE("LRDF_LIBS: ${LRDF_LIBS}")
LIST(APPEND LRDF_LIB_DIR ${LRDF_LIBDIR} ${LRDF_LIBRARY_DIRS})
#MESSAGE("LRDF_LIB_DIR: ${LRDF_LIB_DIR}")
LIST(APPEND LRDF_INC_DIR ${LRDF_INCLUDEDIR} ${LRDF_INCLUDE_DIRS})
#MESSAGE("LRDF_INC_DIR: ${LRDF_INC_DIR}")
ENDIF(LRDF_FOUND)
FIND_PACKAGE(LADSPA QUIET)
IF(LADSPA_FOUND)
SET(HAVE_LADSPA TRUE)
ADD_DEFINITIONS(-DHAVE_LADSPA)
SET(LADSPA_INC_DIR ${LADSPA_INCLUDE_DIR})
MESSAGE(STATUS "Found LADSPA (${LADSPA_INC_DIR})")
ENDIF(LADSPA_FOUND)
ENDIF(WANT_SOUND)
PKG_CHECK_MODULES(FFTW3F REQUIRED fftw3f>=3.0.0)
IF(FFTW3F_FOUND)
ADD_DEFINITIONS(-DHAVE_FFTW3F)
SET(HAVE_FFTW3F TRUE)
SET(FFTW3F_LIBS ${FFTW3F_LIBRARIES})
#MESSAGE("FFTW3F_LIBS: ${FFTW3F_LIBS}")
LIST(APPEND FFTW3F_LIB_DIR ${FFTW3F_LIBDIR} ${FFTW3F_LIBRARY_DIRS})
#MESSAGE("FFTW3F_LIB_DIR: ${FFTW3F_LIB_DIR}")
LIST(APPEND FFTW3F_INC_DIR ${FFTW3F_INCLUDEDIR} ${FFTW3F_INCLUDE_DIRS})
#MESSAGE("FFTW3F_INC_DIR: ${FFTW3F_INC_DIR}")
ELSE(FFTW3F_FOUND)
MESSAGE(FATAL_ERROR "Please install the required package. Aborting")
ENDIF(FFTW3F_FOUND)
IF(WANT_LIRC)
FIND_PACKAGE(LIRC QUIET)
IF(LIRC_FOUND)
SET(HAVE_LIRC TRUE)
ADD_DEFINITIONS(-DHAVE_LIRC)
MESSAGE(STATUS "Found LIRC (${LIRC_LIBRARY})")
SET(LIRC_LIBS ${LIRC_LIBRARY})
SET(LIRC_INC_DIR ${LIRC_INCLUDE_DIR})
SET(LIRC_LIB_DIR ${LIRC_LIBRARY_DIR})
#MESSAGE("LIRC_LIBS: ${LIRC_LIBS}")
#MESSAGE("LIRC_LIB_DIR: ${LIRC_LIB_DIR}")
#MESSAGE("LIRC_INC_DIR: ${LIRC_INC_DIR}")
ENDIF(LIRC_FOUND)
ENDIF(WANT_LIRC)
FIND_PACKAGE(MSGFMT REQUIRED)
IF(MSGFMT_FOUND)
MESSAGE(STATUS "Program msgfmt found (${MSGFMT_EXECUTABLE})")
ENDIF(MSGFMT_FOUND)
FIND_PACKAGE(KDECONFIG)
IF(KDECONFIG_EXECUTABLE)
MESSAGE(STATUS "Program kde-config found (${KDECONFIG_EXECUTABLE})")
#MESSAGE("KDE3PREFIX: ${KDE3PREFIX}")
ENDIF(KDECONFIG_EXECUTABLE)
FIND_PACKAGE(MEINPROC REQUIRED)
IF(MEINPROC_FOUND)
MESSAGE(STATUS "Program meinproc found (${MEINPROC_EXECUTABLE})")
ENDIF(MEINPROC_FOUND)
# Check GCC for PCH support
SET(USE_PCH FALSE)
IF(WANT_PCH)
FIND_PACKAGE(PCHSupport)
IF(PCHSupport_FOUND)
SET(USE_PCH TRUE)
ADD_DEFINITIONS(-DUSE_PCH)
MESSAGE(STATUS "Enabling precompiled headers for GCC ${gcc_compiler_version}")
ENDIF(PCHSupport_FOUND)
ENDIF(WANT_PCH)
# Check PTHREAD_MUTEX_RECURSIVE
INCLUDE(CheckCSourceCompiles)
CHECK_C_SOURCE_COMPILES(
"#include <pthread.h>
int main(int argc, char **argv) {
pthread_mutexattr_t attr;
pthread_mutexattr_settype(&attr, PTHREAD_MUTEX_RECURSIVE);
return 0;
}" PTHREAD_HAS_MUTEX_RECURSIVE)
IF(PTHREAD_HAS_MUTEX_RECURSIVE)
ADD_DEFINITIONS(-DHAVE_PTHREAD_MUTEX_RECURSIVE)
ENDIF(PTHREAD_HAS_MUTEX_RECURSIVE)
# End of PTHREAD_MUTEX_RECURSIVE Test
SET(CMAKE_CXX_FLAGS_RELEASE "-O2 -w -fexceptions -DNDEBUG -include tqt.h")
SET(CMAKE_CXX_FLAGS_RELWITHDEBINFO "-O2 -g -Wall -fexceptions -DDEBUG -include tqt.h")
SET(CMAKE_CXX_FLAGS_DEBUG "-O0 -g3 -Wall -fexceptions -DDEBUG -include tqt.h")
MESSAGE(STATUS "Rosegarden ${VERSION} will be built for install into ${CMAKE_INSTALL_PREFIX}")
IF(WANT_DEBUG)
IF(WANT_FULLDBG)
MESSAGE(STATUS "Configured to compile including full debug information in the executables")
SET(CMAKE_BUILD_TYPE Debug CACHE STRING
"Choose the type of build, options are: Debug Release RelWithDebInfo" FORCE)
ELSE(WANT_FULLDBG)
MESSAGE(STATUS "Configured to compile including debug information in the executables")
SET(CMAKE_BUILD_TYPE RelWithDebInfo CACHE STRING
"Choose the type of build, options are: Debug Release RelWithDebInfo" FORCE)
ENDIF(WANT_FULLDBG)
ELSE(WANT_DEBUG)
MESSAGE(STATUS "Configured to compile for release without debug information")
SET(CMAKE_BUILD_TYPE Release CACHE STRING
"Choose the type of build, options are: Debug Release RelWithDebInfo" FORCE)
ENDIF(WANT_DEBUG)
MARK_AS_ADVANCED(CMAKE_BUILD_TYPE)
# Warn the user if important libraries are missing
INCLUDE(UserWarnings)
# Recurse into the "src" subdirectory. This does not actually
# cause another cmake executable to run. The same process will walk through
# the project's entire directory structure.
# Output directory will be "RGbuild/"
ADD_SUBDIRECTORY(src RGbuild)
# Build and install the translations directory
ADD_SUBDIRECTORY(po RGbuild/po)
# Build and install the documentation directory
ADD_SUBDIRECTORY(docs RGbuild/docs)
# Install data files
ADD_SUBDIRECTORY(data RGbuild/data)
# install some documents...
# INSTALL( FILES AUTHORS COPYING README TRANSLATORS INSTALL rosegarden.lsm
# DESTINATION share/doc/rosegarden-${VERSION} )
# create and install the version file
FILE(WRITE version.txt "${VERSION}\n")
INSTALL( FILES version.txt
DESTINATION ${KDE3DATADIR}/rosegarden )
# uninstall custom target
CONFIGURE_FILE(
"${CMAKE_SOURCE_DIR}/cmake_admin/cmake_uninstall.cmake.in"
"${CMAKE_CURRENT_BINARY_DIR}/cmake_uninstall.cmake"
IMMEDIATE @ONLY)
ADD_CUSTOM_TARGET(uninstall
"${CMAKE_COMMAND}" -P "${CMAKE_CURRENT_BINARY_DIR}/cmake_uninstall.cmake")
# Custom target trying to clean the CMake generated files
ADD_CUSTOM_TARGET ( distclean
COMMAND rm -f {,src/,po/,docs/,data/}CMakeCache.txt
COMMAND rm -f {,src/,po/,docs/,data/}cmake_install.cmake
COMMAND rm -f {,src/,po/,docs/,data/}cmake_uninstall.cmake
COMMAND rm -f {,src/,po/,docs/,data/}CPackConfig.cmake
COMMAND rm -f {,src/,po/,docs/,data/}CPackSourceConfig.cmake
COMMAND rm -f {,src/,po/,docs/,data/}install_manifest.txt
COMMAND rm -f {,src/,po/,docs/,data/}progress.make
COMMAND rm -f {,src/,po/,docs/,data/}rosegarden.spec
COMMAND rm -f {,src/,po/,docs/,data/}Makefile
COMMAND rm -rf {,src/,po/,docs/,data/}CMakeFiles
COMMAND rm -rf {,src/,po/,docs/,data/}_CPack_Packages
COMMAND rm -rf RGbuild/*
WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}
)
ADD_DEPENDENCIES(distclean clean)
# configure the RPM spec
CONFIGURE_FILE(
"${CMAKE_SOURCE_DIR}/rosegarden.spec.in"
"${CMAKE_SOURCE_DIR}/rosegarden.spec"
IMMEDIATE @ONLY)
# tarball target
ADD_CUSTOM_TARGET ( tarball
COMMAND mkdir -p rosegarden-${VERSION}
COMMAND cp -r cmake_admin rosegarden-${VERSION}
COMMAND cp -r data rosegarden-${VERSION}
COMMAND cp -r docs rosegarden-${VERSION}
COMMAND cp -r po rosegarden-${VERSION}
COMMAND cp -r src rosegarden-${VERSION}
COMMAND cp CMakeLists.txt AUTHORS COPYING Doxyfile INSTALL README rosegarden.* TRANSLATORS rosegarden-${VERSION}
COMMAND tar -cj --exclude .svn --exclude gettext-0.10.35-kde -f rosegarden-${VERSION}.tar.bz2 rosegarden-${VERSION}
COMMAND rm -rf rosegarden-${VERSION}
WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}
)

@ -0,0 +1,217 @@
#################################################
#
# (C) 2011 Timothy Pearson
# kb9vqf (AT) pearsoncomputing.net
#
# Improvements and feedback are welcome
#
# This file is released under GPL >= 2
#
#################################################
if( BUILD_TRANSLATIONS AND NOT DEFINED MSGFMT_EXECUTABLE )
find_program( MSGFMT_EXECUTABLE msgfmt )
if( NOT MSGFMT_EXECUTABLE )
tde_message_fatal( "msgfmt program is required, but was not found on your system" )
endif( )
endif( )
# Initialize some variables
SET(HAVE_XFT FALSE)
SET(HAVE_ALSA FALSE)
SET(HAVE_JACK FALSE)
SET(HAVE_DSSI FALSE)
SET(HAVE_LIBLO FALSE)
SET(HAVE_LIBLRDF FALSE)
SET(HAVE_LADSPA FALSE)
SET(HAVE_LIRC FALSE)
SET(HAVE_FFTW3F FALSE)
# Check for Xft
PKG_CHECK_MODULES(XFT xft>=2.1.0)
IF(XFT_FOUND)
ADD_DEFINITIONS(-DHAVE_XFT)
SET(HAVE_XFT TRUE)
SET(XFT_LIBS ${XFT_LIBRARIES})
#MESSAGE("XFT_LIBS: ${XFT_LIBS}")
LIST(APPEND XFT_LIB_DIR ${XFT_LIBRARY_DIRS} ${XFT_LIBDIR})
#MESSAGE("XFT_LIB_DIR: ${XFT_LIB_DIR}")
LIST(APPEND XFT_INC_DIR ${XFT_INCLUDE_DIRS} ${XFT_INCLUDEDIR})
#MESSAGE("XFT_INC_DIR: ${XFT_INC_DIR}")
ENDIF(XFT_FOUND)
IF(WANT_SOUND)
# Check for ALSA 1.0
PKG_CHECK_MODULES(ALSA REQUIRED alsa>=1.0)
IF(ALSA_FOUND)
SET(HAVE_ALSA TRUE)
ADD_DEFINITIONS(-DHAVE_ALSA)
SET(ALSA_LIBS ${ALSA_LIBRARIES})
#MESSAGE("ALSA_LIBS: ${ALSA_LIBS}")
LIST(APPEND ALSA_LIB_DIR ${ALSA_LIBRARY_DIRS} ${ALSA_LIBDIR} )
#MESSAGE("ALSA_LIB_DIR: ${ALSA_LIB_DIR}")
LIST(APPEND ALSA_INC_DIR ${ALSA_INCLUDE_DIRS} ${ALSA_INCLUDEDIR})
#MESSAGE("ALSA_INC_DIR: ${ALSA_INC_DIR}")
ELSE(ALSA_FOUND)
MESSAGE(FATAL_ERROR "Please install the required package. Aborting")
ENDIF(ALSA_FOUND)
IF(WANT_JACK)
PKG_CHECK_MODULES(JACK jack>=0.77)
IF(JACK_FOUND)
ADD_DEFINITIONS(-DHAVE_LIBJACK)
SET(HAVE_JACK TRUE)
SET(JACK_LIBS ${JACK_LIBRARIES})
#MESSAGE("JACK_LIBS: ${JACK_LIBS}")
LIST(APPEND JACK_LIB_DIR ${JACK_LIBDIR} ${JACK_LIBRARY_DIRS})
#MESSAGE("JACK_LIB_DIR: ${JACK_LIB_DIR}")
LIST(APPEND JACK_INC_DIR ${JACK_INCLUDEDIR} ${JACK_INCLUDE_DIRS})
#MESSAGE("JACK_INC_DIR: ${JACK_INC_DIR}")
ENDIF(JACK_FOUND)
ENDIF(WANT_JACK)
IF(WANT_DSSI)
PKG_CHECK_MODULES(DSSI dssi>=0.4)
IF(DSSI_FOUND)
ADD_DEFINITIONS(-DHAVE_DSSI)
SET(HAVE_DSSI TRUE)
LIST(APPEND DSSI_INC_DIR ${DSSI_INCLUDE_DIRS} ${DSSI_INCLUDEDIR})
#MESSAGE("DSSI_INC_DIR: ${DSSI_INC_DIR}")
ENDIF(DSSI_FOUND)
ENDIF(WANT_DSSI)
PKG_CHECK_MODULES(LIBLO liblo>=0.7)
IF(LIBLO_FOUND)
ADD_DEFINITIONS(-DHAVE_LIBLO)
SET(HAVE_LIBLO TRUE)
SET(LIBLO_LIBS ${LIBLO_LIBRARIES})
#MESSAGE("LIBLO_LIBS: ${LIBLO_LIBS}")
LIST(APPEND LIBLO_LIB_DIR ${LIBLO_LIBDIR} ${LIBLO_LIBRARY_DIRS})
#MESSAGE("LIBLO_LIB_DIR: ${LIBLO_LIB_DIR}")
LIST(APPEND LIBLO_INC_DIR ${LIBLO_INCLUDEDIR} ${LIBLO_INCLUDE_DIRS})
#MESSAGE("LIBLO_INC_DIR: ${LIBLO_INC_DIR}")
ENDIF(LIBLO_FOUND)
PKG_CHECK_MODULES(LRDF lrdf>=0.3)
IF(LRDF_FOUND)
SET(HAVE_LIBLRDF TRUE)
ADD_DEFINITIONS(-DHAVE_LIBLRDF)
SET(LRDF_LIBS ${LRDF_LIBRARIES})
#MESSAGE("LRDF_LIBS: ${LRDF_LIBS}")
LIST(APPEND LRDF_LIB_DIR ${LRDF_LIBDIR} ${LRDF_LIBRARY_DIRS})
#MESSAGE("LRDF_LIB_DIR: ${LRDF_LIB_DIR}")
LIST(APPEND LRDF_INC_DIR ${LRDF_INCLUDEDIR} ${LRDF_INCLUDE_DIRS})
#MESSAGE("LRDF_INC_DIR: ${LRDF_INC_DIR}")
ENDIF(LRDF_FOUND)
FIND_PACKAGE(LADSPA QUIET)
IF(LADSPA_FOUND)
SET(HAVE_LADSPA TRUE)
ADD_DEFINITIONS(-DHAVE_LADSPA)
SET(LADSPA_INC_DIR ${LADSPA_INCLUDE_DIR})
MESSAGE(STATUS "Found LADSPA (${LADSPA_INC_DIR})")
ENDIF(LADSPA_FOUND)
ENDIF(WANT_SOUND)
PKG_CHECK_MODULES(FFTW3F REQUIRED fftw3f>=3.0.0)
IF(FFTW3F_FOUND)
ADD_DEFINITIONS(-DHAVE_FFTW3F)
SET(HAVE_FFTW3F TRUE)
SET(FFTW3F_LIBS ${FFTW3F_LIBRARIES})
#MESSAGE("FFTW3F_LIBS: ${FFTW3F_LIBS}")
LIST(APPEND FFTW3F_LIB_DIR ${FFTW3F_LIBDIR} ${FFTW3F_LIBRARY_DIRS})
#MESSAGE("FFTW3F_LIB_DIR: ${FFTW3F_LIB_DIR}")
LIST(APPEND FFTW3F_INC_DIR ${FFTW3F_INCLUDEDIR} ${FFTW3F_INCLUDE_DIRS})
#MESSAGE("FFTW3F_INC_DIR: ${FFTW3F_INC_DIR}")
ELSE(FFTW3F_FOUND)
MESSAGE(FATAL_ERROR "Please install the required package. Aborting")
ENDIF(FFTW3F_FOUND)
IF(WANT_LIRC)
FIND_PACKAGE(LIRC QUIET)
IF(LIRC_FOUND)
SET(HAVE_LIRC TRUE)
ADD_DEFINITIONS(-DHAVE_LIRC)
MESSAGE(STATUS "Found LIRC (${LIRC_LIBRARY})")
SET(LIRC_LIBS ${LIRC_LIBRARY})
SET(LIRC_INC_DIR ${LIRC_INCLUDE_DIR})
SET(LIRC_LIB_DIR ${LIRC_LIBRARY_DIR})
#MESSAGE("LIRC_LIBS: ${LIRC_LIBS}")
#MESSAGE("LIRC_LIB_DIR: ${LIRC_LIB_DIR}")
#MESSAGE("LIRC_INC_DIR: ${LIRC_INC_DIR}")
ENDIF(LIRC_FOUND)
ENDIF(WANT_LIRC)
FIND_PACKAGE(KDECONFIG)
IF(KDECONFIG_EXECUTABLE)
MESSAGE(STATUS "Program kde-config found (${KDECONFIG_EXECUTABLE})")
#MESSAGE("KDE3PREFIX: ${KDE3PREFIX}")
ENDIF(KDECONFIG_EXECUTABLE)
FIND_PACKAGE(MEINPROC REQUIRED)
IF(MEINPROC_FOUND)
MESSAGE(STATUS "Program meinproc found (${MEINPROC_EXECUTABLE})")
ENDIF(MEINPROC_FOUND)
# Check GCC for PCH support
SET(USE_PCH FALSE)
IF(WANT_PCH)
FIND_PACKAGE(PCHSupport)
IF(PCHSupport_FOUND)
SET(USE_PCH TRUE)
ADD_DEFINITIONS(-DUSE_PCH)
MESSAGE(STATUS "Enabling precompiled headers for GCC ${gcc_compiler_version}")
ENDIF(PCHSupport_FOUND)
ENDIF(WANT_PCH)
# Check PTHREAD_MUTEX_RECURSIVE
INCLUDE(CheckCSourceCompiles)
CHECK_C_SOURCE_COMPILES(
"#include <pthread.h>
int main(int argc, char **argv) {
pthread_mutexattr_t attr;
pthread_mutexattr_settype(&attr, PTHREAD_MUTEX_RECURSIVE);
return 0;
}" PTHREAD_HAS_MUTEX_RECURSIVE)
IF(PTHREAD_HAS_MUTEX_RECURSIVE)
ADD_DEFINITIONS(-DHAVE_PTHREAD_MUTEX_RECURSIVE)
ENDIF(PTHREAD_HAS_MUTEX_RECURSIVE)
# End of PTHREAD_MUTEX_RECURSIVE Test
SET(CMAKE_CXX_FLAGS_RELEASE "-O2 -w -fexceptions -DNDEBUG -include tqt.h")
SET(CMAKE_CXX_FLAGS_RELWITHDEBINFO "-O2 -g -Wall -fexceptions -DDEBUG -include tqt.h")
SET(CMAKE_CXX_FLAGS_DEBUG "-O0 -g3 -Wall -fexceptions -DDEBUG -include tqt.h")
MESSAGE(STATUS "Rosegarden ${VERSION} will be built for install into ${CMAKE_INSTALL_PREFIX}")
IF(WANT_DEBUG)
IF(WANT_FULLDBG)
MESSAGE(STATUS "Configured to compile including full debug information in the executables")
SET(CMAKE_BUILD_TYPE Debug CACHE STRING
"Choose the type of build, options are: Debug Release RelWithDebInfo" FORCE)
ELSE(WANT_FULLDBG)
MESSAGE(STATUS "Configured to compile including debug information in the executables")
SET(CMAKE_BUILD_TYPE RelWithDebInfo CACHE STRING
"Choose the type of build, options are: Debug Release RelWithDebInfo" FORCE)
ENDIF(WANT_FULLDBG)
ELSE(WANT_DEBUG)
MESSAGE(STATUS "Configured to compile for release without debug information")
SET(CMAKE_BUILD_TYPE Release CACHE STRING
"Choose the type of build, options are: Debug Release RelWithDebInfo" FORCE)
ENDIF(WANT_DEBUG)
MARK_AS_ADVANCED(CMAKE_BUILD_TYPE)
check_type_size( "int" SIZEOF_INT BUILTIN_TYPES_ONLY )
check_type_size( "long" SIZEOF_LONG BUILTIN_TYPES_ONLY )
check_include_file( stdint.h HAVE_STDINT_H )
check_include_file( systems.h HAVE_SYSTEMS_H )
check_include_file( linux/inotify.h HAVE_INOTIFY )
check_function_exists( statvfs HAVE_STATVFS )
# common required stuff
find_package( TQt )
find_package( TDE )

@ -0,0 +1,5 @@
#cmakedefine SIZEOF_INT @SIZEOF_INT@
#cmakedefine SIZEOF_LONG @SIZEOF_LONG@
#cmakedefine HAVE_STDINT_H 1
#cmakedefine HAVE_SYSTEMS_H 1
#cmakedefine HAVE_STATVFS 1

@ -1,9 +1,9 @@
# Data directory # Data directory
SET(DATADIR ${KDE3DATADIR}/rosegarden) SET(DATADIR ${DATA_INSTALL_DIR}/rosegarden)
SET(ICONDIR ${KDE3ICONDIR}) SET(ICONDIR ${ICON_INSTALL_DIR})
SET(MIMEDIR ${KDE3MIMEDIR}/audio) SET(MIMEDIR ${MIME_INSTALL_DIR}/audio)
SET(MENUDIR ${KDE3MENUDIR}) SET(MENUDIR ${XDG_MENU_INSTALL_DIR})
# Guitar chord files # Guitar chord files
FILE(GLOB CHORD_FILES chords/*.xml) FILE(GLOB CHORD_FILES chords/*.xml)
@ -122,4 +122,4 @@ FILE(GLOB RGD_FILES library/*.rgd)
INSTALL(FILES ${RGD_FILES} DESTINATION ${DATADIR}/library) INSTALL(FILES ${RGD_FILES} DESTINATION ${DATADIR}/library)
# KDE LIRC Profile # KDE LIRC Profile
INSTALL(FILES profile/rosegarden.profile.xml DESTINATION ${KDE3DATADIR}/profiles) INSTALL(FILES profile/rosegarden.profile.xml DESTINATION ${DATA_INSTALL_DIR}/profiles)

@ -0,0 +1,12 @@
#################################################
#
# (C) 2010-2011 Serghei Amelian
# serghei (DOT) amelian (AT) gmail.com
#
# Improvements and feedback are welcome
#
# This file is released under GPL >= 2
#
#################################################
tde_auto_add_subdirectories()

@ -0,0 +1,12 @@
#################################################
#
# (C) 2011 Timothy Pearson
# kb9vqf (AT) pearsoncomputing.net
#
# Improvements and feedback are welcome
#
# This file is released under GPL >= 2
#
#################################################
tde_create_handbook( DESTINATION rosegarden )

Before

Width:  |  Height:  |  Size: 17 KiB

After

Width:  |  Height:  |  Size: 17 KiB

Before

Width:  |  Height:  |  Size: 24 KiB

After

Width:  |  Height:  |  Size: 24 KiB

Before

Width:  |  Height:  |  Size: 19 KiB

After

Width:  |  Height:  |  Size: 19 KiB

Before

Width:  |  Height:  |  Size: 45 KiB

After

Width:  |  Height:  |  Size: 45 KiB

Before

Width:  |  Height:  |  Size: 141 B

After

Width:  |  Height:  |  Size: 141 B

Before

Width:  |  Height:  |  Size: 209 B

After

Width:  |  Height:  |  Size: 209 B

Before

Width:  |  Height:  |  Size: 8.3 KiB

After

Width:  |  Height:  |  Size: 8.3 KiB

Before

Width:  |  Height:  |  Size: 495 B

After

Width:  |  Height:  |  Size: 495 B

Before

Width:  |  Height:  |  Size: 18 KiB

After

Width:  |  Height:  |  Size: 18 KiB

Before

Width:  |  Height:  |  Size: 63 KiB

After

Width:  |  Height:  |  Size: 63 KiB

Before

Width:  |  Height:  |  Size: 21 KiB

After

Width:  |  Height:  |  Size: 21 KiB

Before

Width:  |  Height:  |  Size: 339 B

After

Width:  |  Height:  |  Size: 339 B

Before

Width:  |  Height:  |  Size: 18 KiB

After

Width:  |  Height:  |  Size: 18 KiB

Before

Width:  |  Height:  |  Size: 27 KiB

After

Width:  |  Height:  |  Size: 27 KiB

Before

Width:  |  Height:  |  Size: 21 KiB

After

Width:  |  Height:  |  Size: 21 KiB

Before

Width:  |  Height:  |  Size: 24 KiB

After

Width:  |  Height:  |  Size: 24 KiB

Before

Width:  |  Height:  |  Size: 12 KiB

After

Width:  |  Height:  |  Size: 12 KiB

Before

Width:  |  Height:  |  Size: 7.1 KiB

After

Width:  |  Height:  |  Size: 7.1 KiB

Before

Width:  |  Height:  |  Size: 16 KiB

After

Width:  |  Height:  |  Size: 16 KiB

Before

Width:  |  Height:  |  Size: 7.1 KiB

After

Width:  |  Height:  |  Size: 7.1 KiB

Before

Width:  |  Height:  |  Size: 45 KiB

After

Width:  |  Height:  |  Size: 45 KiB

Before

Width:  |  Height:  |  Size: 31 KiB

After

Width:  |  Height:  |  Size: 31 KiB

Before

Width:  |  Height:  |  Size: 69 KiB

After

Width:  |  Height:  |  Size: 69 KiB

Before

Width:  |  Height:  |  Size: 1.3 KiB

After

Width:  |  Height:  |  Size: 1.3 KiB

Before

Width:  |  Height:  |  Size: 113 KiB

After

Width:  |  Height:  |  Size: 113 KiB

Before

Width:  |  Height:  |  Size: 12 KiB

After

Width:  |  Height:  |  Size: 12 KiB

Before

Width:  |  Height:  |  Size: 15 KiB

After

Width:  |  Height:  |  Size: 15 KiB

Before

Width:  |  Height:  |  Size: 37 KiB

After

Width:  |  Height:  |  Size: 37 KiB

Before

Width:  |  Height:  |  Size: 235 B

After

Width:  |  Height:  |  Size: 235 B

Before

Width:  |  Height:  |  Size: 5.3 KiB

After

Width:  |  Height:  |  Size: 5.3 KiB

Before

Width:  |  Height:  |  Size: 27 KiB

After

Width:  |  Height:  |  Size: 27 KiB

Before

Width:  |  Height:  |  Size: 2.3 KiB

After

Width:  |  Height:  |  Size: 2.3 KiB

Before

Width:  |  Height:  |  Size: 107 KiB

After

Width:  |  Height:  |  Size: 107 KiB

Before

Width:  |  Height:  |  Size: 58 KiB

After

Width:  |  Height:  |  Size: 58 KiB

Before

Width:  |  Height:  |  Size: 10 KiB

After

Width:  |  Height:  |  Size: 10 KiB

Before

Width:  |  Height:  |  Size: 361 B

After

Width:  |  Height:  |  Size: 361 B

Before

Width:  |  Height:  |  Size: 155 KiB

After

Width:  |  Height:  |  Size: 155 KiB

Before

Width:  |  Height:  |  Size: 14 KiB

After

Width:  |  Height:  |  Size: 14 KiB

Before

Width:  |  Height:  |  Size: 5.3 KiB

After

Width:  |  Height:  |  Size: 5.3 KiB

Before

Width:  |  Height:  |  Size: 7.5 KiB

After

Width:  |  Height:  |  Size: 7.5 KiB

Before

Width:  |  Height:  |  Size: 643 B

After

Width:  |  Height:  |  Size: 643 B

Before

Width:  |  Height:  |  Size: 16 KiB

After

Width:  |  Height:  |  Size: 16 KiB

Before

Width:  |  Height:  |  Size: 198 B

After

Width:  |  Height:  |  Size: 198 B

Before

Width:  |  Height:  |  Size: 7.2 KiB

After

Width:  |  Height:  |  Size: 7.2 KiB

Before

Width:  |  Height:  |  Size: 543 B

After

Width:  |  Height:  |  Size: 543 B

Before

Width:  |  Height:  |  Size: 258 B

After

Width:  |  Height:  |  Size: 258 B

Before

Width:  |  Height:  |  Size: 213 B

After

Width:  |  Height:  |  Size: 213 B

Before

Width:  |  Height:  |  Size: 5.2 KiB

After

Width:  |  Height:  |  Size: 5.2 KiB

Before

Width:  |  Height:  |  Size: 35 KiB

After

Width:  |  Height:  |  Size: 35 KiB

Before

Width:  |  Height:  |  Size: 1.7 KiB

After

Width:  |  Height:  |  Size: 1.7 KiB

Before

Width:  |  Height:  |  Size: 515 B

After

Width:  |  Height:  |  Size: 515 B

Before

Width:  |  Height:  |  Size: 13 KiB

After

Width:  |  Height:  |  Size: 13 KiB

Before

Width:  |  Height:  |  Size: 16 KiB

After

Width:  |  Height:  |  Size: 16 KiB

Before

Width:  |  Height:  |  Size: 19 KiB

After

Width:  |  Height:  |  Size: 19 KiB

Before

Width:  |  Height:  |  Size: 13 KiB

After

Width:  |  Height:  |  Size: 13 KiB

Before

Width:  |  Height:  |  Size: 11 KiB

After

Width:  |  Height:  |  Size: 11 KiB

Before

Width:  |  Height:  |  Size: 3.9 KiB

After

Width:  |  Height:  |  Size: 3.9 KiB

Before

Width:  |  Height:  |  Size: 26 KiB

After

Width:  |  Height:  |  Size: 26 KiB

Before

Width:  |  Height:  |  Size: 43 KiB

After

Width:  |  Height:  |  Size: 43 KiB

Before

Width:  |  Height:  |  Size: 16 KiB

After

Width:  |  Height:  |  Size: 16 KiB

Before

Width:  |  Height:  |  Size: 8.6 KiB

After

Width:  |  Height:  |  Size: 8.6 KiB

Before

Width:  |  Height:  |  Size: 11 KiB

After

Width:  |  Height:  |  Size: 11 KiB

Before

Width:  |  Height:  |  Size: 13 KiB

After

Width:  |  Height:  |  Size: 13 KiB

Before

Width:  |  Height:  |  Size: 14 KiB

After

Width:  |  Height:  |  Size: 14 KiB

@ -0,0 +1,12 @@
#################################################
#
# (C) 2011 Timothy Pearson
# kb9vqf (AT) pearsoncomputing.net
#
# Improvements and feedback are welcome
#
# This file is released under GPL >= 2
#
#################################################
tde_create_handbook( DESTINATION rosegarden )

@ -0,0 +1,12 @@
#################################################
#
# (C) 2011 Timothy Pearson
# kb9vqf (AT) pearsoncomputing.net
#
# Improvements and feedback are welcome
#
# This file is released under GPL >= 2
#
#################################################
tde_create_handbook( DESTINATION rosegarden )

@ -0,0 +1,12 @@
#################################################
#
# (C) 2011 Timothy Pearson
# kb9vqf (AT) pearsoncomputing.net
#
# Improvements and feedback are welcome
#
# This file is released under GPL >= 2
#
#################################################
tde_create_handbook( DESTINATION rosegarden )

Before

Width:  |  Height:  |  Size: 21 KiB

After

Width:  |  Height:  |  Size: 21 KiB

Before

Width:  |  Height:  |  Size: 34 KiB

After

Width:  |  Height:  |  Size: 34 KiB

Before

Width:  |  Height:  |  Size: 23 KiB

After

Width:  |  Height:  |  Size: 23 KiB

Before

Width:  |  Height:  |  Size: 6.5 KiB

After

Width:  |  Height:  |  Size: 6.5 KiB

Before

Width:  |  Height:  |  Size: 24 KiB

After

Width:  |  Height:  |  Size: 24 KiB

Before

Width:  |  Height:  |  Size: 57 KiB

After

Width:  |  Height:  |  Size: 57 KiB

Before

Width:  |  Height:  |  Size: 20 KiB

After

Width:  |  Height:  |  Size: 20 KiB

Before

Width:  |  Height:  |  Size: 15 KiB

After

Width:  |  Height:  |  Size: 15 KiB

Before

Width:  |  Height:  |  Size: 2.9 KiB

After

Width:  |  Height:  |  Size: 2.9 KiB

Before

Width:  |  Height:  |  Size: 22 KiB

After

Width:  |  Height:  |  Size: 22 KiB

Before

Width:  |  Height:  |  Size: 2.7 KiB

After

Width:  |  Height:  |  Size: 2.7 KiB

Before

Width:  |  Height:  |  Size: 13 KiB

After

Width:  |  Height:  |  Size: 13 KiB

Before

Width:  |  Height:  |  Size: 44 KiB

After

Width:  |  Height:  |  Size: 44 KiB

Before

Width:  |  Height:  |  Size: 70 KiB

After

Width:  |  Height:  |  Size: 70 KiB

Before

Width:  |  Height:  |  Size: 6.8 KiB

After

Width:  |  Height:  |  Size: 6.8 KiB

Before

Width:  |  Height:  |  Size: 12 KiB

After

Width:  |  Height:  |  Size: 12 KiB

Before

Width:  |  Height:  |  Size: 24 KiB

After

Width:  |  Height:  |  Size: 24 KiB

Before

Width:  |  Height:  |  Size: 23 KiB

After

Width:  |  Height:  |  Size: 23 KiB

Before

Width:  |  Height:  |  Size: 40 KiB

After

Width:  |  Height:  |  Size: 40 KiB

Before

Width:  |  Height:  |  Size: 35 KiB

After

Width:  |  Height:  |  Size: 35 KiB

Before

Width:  |  Height:  |  Size: 4.7 KiB

After

Width:  |  Height:  |  Size: 4.7 KiB

Before

Width:  |  Height:  |  Size: 7.1 KiB

After

Width:  |  Height:  |  Size: 7.1 KiB

Before

Width:  |  Height:  |  Size: 2.3 KiB

After

Width:  |  Height:  |  Size: 2.3 KiB

Before

Width:  |  Height:  |  Size: 13 KiB

After

Width:  |  Height:  |  Size: 13 KiB

Before

Width:  |  Height:  |  Size: 4.0 KiB

After

Width:  |  Height:  |  Size: 4.0 KiB

Before

Width:  |  Height:  |  Size: 2.1 KiB

After

Width:  |  Height:  |  Size: 2.1 KiB

Before

Width:  |  Height:  |  Size: 17 KiB

After

Width:  |  Height:  |  Size: 17 KiB

Before

Width:  |  Height:  |  Size: 9.9 KiB

After

Width:  |  Height:  |  Size: 9.9 KiB

Before

Width:  |  Height:  |  Size: 2.4 KiB

After

Width:  |  Height:  |  Size: 2.4 KiB

Before

Width:  |  Height:  |  Size: 2.4 KiB

After

Width:  |  Height:  |  Size: 2.4 KiB

Before

Width:  |  Height:  |  Size: 45 KiB

After

Width:  |  Height:  |  Size: 45 KiB

Before

Width:  |  Height:  |  Size: 15 KiB

After

Width:  |  Height:  |  Size: 15 KiB

Before

Width:  |  Height:  |  Size: 8.9 KiB

After

Width:  |  Height:  |  Size: 8.9 KiB

@ -1,4 +0,0 @@
ADD_DOCS(rosegarden en es ja sv)
INSTALL(FILES en/tips DESTINATION ${KDE3DATADIR}/rosegarden)

@ -1,25 +1,17 @@
#################################################
#
# (C) 2011 Timothy Pearson
# kb9vqf (AT) pearsoncomputing.net
#
# Improvements and feedback are welcome
#
# This file is released under GPL >= 2
#
#################################################
# Automatic discovery of sources file( GLOB_RECURSE po_files RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} rosegarden.po )
FILE(GLOB PO_FILES *.po)
# DISABLED: explicit set of source files foreach( _po ${po_files} )
# SET(PO_FILES get_filename_component( _lang ${_po} PATH )
# ca.po tde_create_translation( FILES ${_po} LANG ${_lang} )
# cs.po endforeach( )
# cy.po
# de.po
# en_GB.po
# en.po
# es.po
# et.po
# fi.po
# fr.po
# it.po
# ja.po
# nl.po
# ru.po
# sv.po
# zh_CN.po
# )
ADD_TRANSLATIONS(rosegarden ${PO_FILES})

@ -1,101 +0,0 @@
#!/bin/bash
# Based on KDE messages.sh by Thomas Nagy
# Inspired by Makefile.common from coolo
# This script is used to update the .po files.
# To update the translations, you will need a specific gettext
# patched for kde and a lot of patience, tenacity, luck, time ..
# I guess one should only update the .po files when all .cpp files
# are generated (after a make or scons)
if [ -z "$KDE_GETTEXT_BIN" ]; then
if [ -f ./xgettext ] && ./xgettext --help 2>&1 | grep -q extract; then
KDE_GETTEXT_BIN=.
elif [ -d /opt/gettext-kde/bin ]; then
KDE_GETTEXT_BIN=/opt/gettext-kde/bin
fi
fi
if [ ! -d "$KDE_GETTEXT_BIN" ]; then
echo 1>&2
echo "WARNING: Environment variable KDE_GETTEXT_BIN must be set" 1>&2
echo "such that the KDE patched version of gettext is found in " 1>&2
echo "KDE_GETTEXT_BIN/." 1>&2
echo 1>&2
echo "Falling back to default gettext, but plural translations " 1>&2
echo "will probably be wrong." 1>&2
echo 1>&2
echo "See ftp://ftp.kde.org/devel/gettext-kde/ for the patched gettext." 1>&2
echo 1>&2
else
KDE_GETTEXT_PATH=${KDE_GETTEXT_BIN}/
fi
SRCDIR=../src # srcdir is the directory containing the source code
TIPSDIR=../docs/en # tipsdir is the directory containing the tips
DATADIR=../data # datadir is the directory containing fonts/mappings & styles
KDEDIR=`kde-config --prefix`
EXTRACTRC=extractrc # from tdesdk-scripts (on Debian Sarge)
KDEPOT=$KDEDIR/include/kde.pot
if [ ! -f "$KDEPOT" ] && [ -f /usr/include/kde/kde.pot ]; then
KDEPOT=/usr/include/kde/kde.pot
fi
XGETTEXT="${KDE_GETTEXT_PATH}xgettext -C -ki18n -ktr2i18n -kI18N_NOOP -ktranslate -kaliasLocale -x $KDEPOT "
## check that kde.pot is available
if ! test -e $KDEPOT; then
echo "$KDEPOT does not exist, there is something wrong with your installation!"
XGETTEXT="${KDE_GETTEXT_PATH}xgettext -C -ki18n -ktr2i18n -kI18N_NOOP -ktranslate -kaliasLocale "
fi
> rc.cpp
## extract the strings
echo "extracting the strings"
# process the .ui and .rc files
$EXTRACTRC `find $SRCDIR -iname *.rc` >> rc.cpp
$EXTRACTRC `find $SRCDIR -iname *.ui` >> rc.cpp
echo -e 'i18n("_: NAME OF TRANSLATORS\\n"\n"Your names")\ni18n("_: EMAIL OF TRANSLATORS\\n"\n"Your emails")' > $SRCDIR/_translatorinfo.cpp
# process the tips - $SRCDIR is supposed to be where the tips are living
pushd $TIPSDIR; preparetips >tips.cpp; popd
# process the fonts mapping attributes
FONTSDIR=$DATADIR/fonts/mappings
pushd $FONTSDIR
cat *.xml | perl -e 'while (<STDIN>) { if(/(encoding name|origin|copyright|mapped-by|type)\s*=\s*\"(.*)\"/) { print "i18n(\"$2\")\;\n";} }' > fonts.cpp
popd
# process the note head style names
STYLEDIR=$DATADIR/styles
pushd $STYLEDIR
ls *.xml | perl -e 'while (<STDIN>) { if(/(.*)\.xml/) { print "i18n(\"$1\")\;\n";} }' > styles.cpp
popd
# extract the strings
$XGETTEXT `find $SRCDIR \( -name "*.cpp" -o -name "*.h" \)` rc.cpp $TIPSDIR/tips.cpp $FONTSDIR/fonts.cpp $STYLEDIR/styles.cpp -o tmp.pot
# remove the intermediate files
rm -f $TIPSDIR/tips.cpp
rm -f $FONTSDIR/fonts.cpp
rm -f $STYLEDIR/styles.cpp
rm -f rc.cpp
rm -f $SRCDIR/_translatorinfo.cpp
## now merge the .po files ..
echo "merging the .po files"
for i in `ls *.po`; do
echo $i
msgmerge $i tmp.pot -o $i || exit 1
done
# replacing the old template by the new one
rm -f rosegarden.pot
mv tmp.pot rosegarden.pot
## finished
echo "Done"

Binary file not shown.

@ -1,25 +1,20 @@
IF(NOT ROSEGARDEN_SOURCE_DIR) #################################################
MESSAGE(FATAL_ERROR "You need to run cmake or ccmake at the root directory") #
ENDIF(NOT ROSEGARDEN_SOURCE_DIR) # (C) 2011 Timothy Pearson
# kb9vqf (AT) pearsoncomputing.net
IF(USE_PCH) #
ADD_PRECOMPILED_HEADER(precompiled_headers misc/stableheaders.h) # Improvements and feedback are welcome
ENDIF(USE_PCH) #
# This file is released under GPL >= 2
LINK_DIRECTORIES( #
${KDE3_LIB_DIR} #################################################
${ALSA_LIB_DIR}
${JACK_LIB_DIR} include_directories(
${XFT_LIB_DIR} ${TQT_INCLUDE_DIRS}
${LIBLO_LIB_DIR} ${TDE_INCLUDE_DIR}
${LRDF_LIB_DIR} ${CMAKE_BINARY_DIR}
${LIRC_LIB_DIR} ${CMAKE_BINARY_DIR}/src
${FFTW3F_LIB_DIR} ${CMAKE_SOURCE_DIR}/src
)
INCLUDE_DIRECTORIES(AFTER
${QT_INCLUDE_DIR}
${KDE3_INCLUDE_DIR}
${ALSA_INC_DIR} ${ALSA_INC_DIR}
${JACK_INC_DIR} ${JACK_INC_DIR}
${XFT_INC_DIR} ${XFT_INC_DIR}
@ -29,160 +24,112 @@ INCLUDE_DIRECTORIES(AFTER
${LRDF_INC_DIR} ${LRDF_INC_DIR}
${LIRC_INC_DIR} ${LIRC_INC_DIR}
${FFTW3F_INC_DIR} ${FFTW3F_INC_DIR}
base
) )
SET(CMAKE_INCLUDE_PATH ".") link_directories(
${TQT_LIBRARY_DIRS}
${TDE_LIBRARY_DIR}
${ALSA_LIB_DIR}
${JACK_LIB_DIR}
${XFT_LIB_DIR}
${LIBLO_LIB_DIR}
${LRDF_LIB_DIR}
${LIRC_LIB_DIR}
${FFTW3F_LIB_DIR}
)
##### include cmake file lists ##################
set( CMAKE_INCLUDE_PATH "." )
# Common sources # Common sources
INCLUDE(BaseFileList.txt) include( BaseFileList.txt )
INCLUDE(MiscFileList.txt) include( MiscFileList.txt )
# Sound sources # Sound sources
INCLUDE(SoundFileList.txt) include( SoundFileList.txt )
KDE3_AUTOMOC(${common_sound_SRCS}) # sequencer executable
include( SequencerFileList.txt )
ADD_LIBRARY(RosegardenCommon STATIC # gui executable
${misc_SRCS} include( GUIFileList.txt )
${base_SRCS}
${common_sound_SRCS}
)
TARGET_LINK_LIBRARIES(RosegardenCommon ##### other data ################################
dl
)
IF(USE_PCH) # Install helper scripts
ADD_DEPENDENCIES(RosegardenCommon precompiled_headers) install( PROGRAMS
ENDIF(USE_PCH) helpers/rosegarden-lilypondview
helpers/rosegarden-project-package
helpers/rosegarden-audiofile-importer
DESTINATION ${BIN_INSTALL_DIR} )
# sequencer executable # Install GUI resource files
INCLUDE(SequencerFileList.txt) file( GLOB RC_FILES gui/ui/*.rc )
install( FILES ${RC_FILES} DESTINATION ${DATA_INSTALL_DIR}/rosegarden )
IF(WANT_SOUND)
SET(snd_SRCS ${sound_SRCS})
ELSE(WANT_SOUND)
SET(snd_SRCS ${nosnd_SRCS})
ENDIF(WANT_SOUND)
KDE3_ADD_DCOP_SKELS(sequencer_SRCS ${seq_dcop_SRCS}) ##### RosegardenCommon ##############################
KDE3_ADD_DCOP_STUBS(sequencer_SRCS ${seq_dcop_SRCS})
KDE3_AUTOMOC(${sequencer_SRCS})
KDE3_ADD_EXECUTABLE(rosegardensequencer tde_add_library( RosegardenCommon STATIC AUTOMOC
${snd_SRCS} SOURCES ${${misc_SRCS} ${base_SRCS} ${common_sound_SRCS}}
${sequencer_SRCS} LINK dl
DESTINATION ${LIB_INSTALL_DIR}
) )
IF(USE_PCH)
ADD_DEPENDENCIES(rosegardensequencer precompiled_headers)
ENDIF(USE_PCH)
TARGET_LINK_LIBRARIES(rosegardensequencer
dl
${QT_AND_TDECORE_LIBS}
${ALSA_LIBS}
${JACK_LIBS}
${LIBLO_LIBS}
${LRDF_LIBS}
${FFTW3F_LIBS}
tdeui
RosegardenCommon
)
# gui executable ##### rosegardensequencer ###########################
INCLUDE(GUIFileList.txt)
KDE3_ADD_DCOP_SKELS(gui_SRCS ${gui_dcop_SRCS})
KDE3_ADD_DCOP_STUBS(gui_SRCS ${gui_dcop_SRCS})
KDE3_ADD_UI_FILES(gui_SRCS ${ui_SRCS})
KDE3_AUTOMOC(${gui_SRCS})
KDE3_AUTOMOC(${segmentcanvas_SRCS})
KDE3_AUTOMOC(${commands_SRCS})
KDE3_AUTOMOC(${document_SRCS})
ADD_LIBRARY(RosegardenExtended STATIC
${document_SRCS}
${gui_SRCS}
)
TARGET_LINK_LIBRARIES(RosegardenExtended if( WANT_SOUND )
dl set( snd_SRCS ${sound_SRCS} )
lo else( WANT_SOUND )
) set( snd_SRCS ${nosnd_SRCS} )
endif( WANT_SOUND )
ADD_LIBRARY(RosegardenCommands STATIC tde_add_executable( rosegardensequencer AUTOMOC
${commands_SRCS} SOURCES ${${seq_dcop_SRCS} ${snd_SRCS} ${sequencer_SRCS}}
LINK dl tdecore-shared ${ALSA_LIBS} ${JACK_LIBS} ${LIBLO_LIBS} ${LRDF_LIBS} ${FFTW3F_LIBS} tdeui-shared RosegardenCommon
DESTINATION ${BIN_INSTALL_DIR}
) )
IF(USE_PCH)
ADD_DEPENDENCIES(RosegardenExtended precompiled_headers)
ENDIF(USE_PCH)
IF(USE_PCH) ##### RosegardenExtended ############################
ADD_DEPENDENCIES(RosegardenCommands precompiled_headers)
ENDIF(USE_PCH)
ADD_LIBRARY(RosegardenSegmentCanvas STATIC tde_add_library( RosegardenExtended STATIC AUTOMOC
${segmentcanvas_SRCS} SOURCES ${${document_SRCS} ${gui_SRCS} ${gui_dcop_SRCS} ${ui_SRCS}}
LINK dl lo
DESTINATION ${LIB_INSTALL_DIR}
) )
IF(USE_PCH)
ADD_DEPENDENCIES(RosegardenSegmentCanvas precompiled_headers)
ENDIF(USE_PCH)
##### RosegardenCommands ############################
KDE3_ADD_EXECUTABLE(rosegarden tde_add_library( RosegardenCommands STATIC AUTOMOC
#${commands_SRCS} SOURCES ${${commands_SRCS}}
#${document_SRCS} # LINK dl
#${gui_SRCS} DESTINATION ${LIB_INSTALL_DIR}
#${segmentcanvas_SRCS}
gui/application/main.cpp
) )
IF(USE_PCH)
ADD_DEPENDENCIES(rosegarden precompiled_headers) ##### RosegardenSegmentCanvas #######################
ENDIF(USE_PCH)
tde_add_library( RosegardenSegmentCanvas STATIC AUTOMOC
TARGET_LINK_LIBRARIES(rosegarden SOURCES ${${segmentcanvas_SRCS}}
dl # LINK dl
lo DESTINATION ${LIB_INSTALL_DIR}
${QT_AND_TDECORE_LIBS}
${LIBLO_LIBS}
${LRDF_LIBS}
${FFTW3F_LIBS}
${XFT_LIBS}
${LIRC_LIBS}
${JACK_LIBS}
kio
tdeui
tdeprint
RosegardenExtended
RosegardenSegmentCanvas
RosegardenCommands
RosegardenCommon
) )
# Install targets
INSTALL(TARGETS rosegarden rosegardensequencer
RUNTIME DESTINATION ${KDE3EXECDIR} )
# Install helper scripts ##### rosegarden ####################################
INSTALL(PROGRAMS
helpers/rosegarden-lilypondview
helpers/rosegarden-project-package
helpers/rosegarden-audiofile-importer
DESTINATION ${KDE3EXECDIR} )
# Install GUI resource files tde_add_executable( rosegarden AUTOMOC
FILE(GLOB RC_FILES gui/ui/*.rc) SOURCES ${gui/application/main.cpp}
INSTALL(FILES ${RC_FILES} LINK dl lo tdecore-shared ${LIBLO_LIBS} ${LRDF_LIBS} ${FFTW3F_LIBS} ${XFT_LIBS} ${LIRC_LIBS} ${JACK_LIBS} kio-shared tdeui-shared tdeprint-shared RosegardenExtended RosegardenSegmentCanvas RosegardenCommands RosegardenCommon
DESTINATION ${KDE3DATADIR}/rosegarden ) DESTINATION ${BIN_INSTALL_DIR}
)
IF(WANT_TEST) if( WANT_TEST )
INCLUDE(TestFileList.txt) include( TestFileList.txt )
CREATE_TEST_SOURCELIST(RosegardenTest CREATE_TEST_SOURCELIST(RosegardenTest
RosegardenTestDriver.cpp RosegardenTestDriver.cpp
@ -191,31 +138,15 @@ IF(WANT_TEST)
# base/test/segmenttransposecommand.cpp # base/test/segmenttransposecommand.cpp
) )
KDE3_ADD_EXECUTABLE(RosegardenTestDriver tde_add_executable( RosegardenTestDriver AUTOMOC
RosegardenTestDriver.cpp SOURCES ${RosegardenTestDriver.cpp ${tests_SRCS}}
${tests_SRCS} LINK dl lo tdecore-shared ${LIBLO_LIBS} ${LRDF_LIBS} ${FFTW3F_LIBS} ${XFT_LIBS} ${LIRC_LIBS} ${JACK_LIBS} kio-shared tdeui-shared tdeprint-shared RosegardenExtended RosegardenSegmentCanvas RosegardenCommands RosegardenCommon
DESTINATION ${BIN_INSTALL_DIR}
) )
TARGET_LINK_LIBRARIES(RosegardenTestDriver
dl
${QT_AND_TDECORE_LIBS}
${LIBLO_LIBS}
${LRDF_LIBS}
${FFTW3F_LIBS}
${XFT_LIBS}
${LIRC_LIBS}
${JACK_LIBS}
kio
tdeui
tdeprint
RosegardenExtended
RosegardenSegmentCanvas
RosegardenCommands
RosegardenCommon
)
FOREACH(currenttest ${tests_SRCS}) FOREACH(currenttest ${tests_SRCS})
GET_FILENAME_COMPONENT(TestName ${currenttest} NAME_WE) GET_FILENAME_COMPONENT(TestName ${currenttest} NAME_WE)
ADD_TEST(test/${TestName} RosegardenTestDriver test/${TestName}) ADD_TEST(test/${TestName} RosegardenTestDriver test/${TestName})
ENDFOREACH(currenttest ${tests_SRCS}) ENDFOREACH(currenttest ${tests_SRCS})
ENDIF(WANT_TEST) endif( WANT_TEST )

Loading…
Cancel
Save