diff options
author | Timothy Pearson <[email protected]> | 2011-11-26 13:19:22 -0600 |
---|---|---|
committer | Timothy Pearson <[email protected]> | 2011-11-26 13:19:22 -0600 |
commit | 0710d08800aa69ca9579416a3d4bb6220593f229 (patch) | |
tree | 29a1cf8936b04f9cc4be5a8618648ce99cec2cc8 /CMakeLists.txt.orig | |
parent | 32e75dd020843a7a3dbb7d2df4ba6f0f234a69c5 (diff) | |
download | rosegarden-0710d08800aa69ca9579416a3d4bb6220593f229.tar.gz rosegarden-0710d08800aa69ca9579416a3d4bb6220593f229.zip |
Initial attempt at migration to standard TDE CMake build system
Diffstat (limited to 'CMakeLists.txt.orig')
-rw-r--r-- | CMakeLists.txt.orig | 399 |
1 files changed, 399 insertions, 0 deletions
diff --git a/CMakeLists.txt.orig b/CMakeLists.txt.orig new file mode 100644 index 0000000..719ca20 --- /dev/null +++ b/CMakeLists.txt.orig @@ -0,0 +1,399 @@ +# Rosegarden +# A MIDI and audio sequencer and musical notation editor. +# +# This program is Copyright 2000-2008 +# Guillaume Laurent <[email protected]>, +# Chris Cannam <[email protected]>, +# Richard Bown <[email protected]> +# +# 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 <[email protected]> +# +# 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} +) |