You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
123 lines
3.5 KiB
123 lines
3.5 KiB
#################################################
|
|
#
|
|
# (C) 2011 Timothy Pearson
|
|
# kb9vqf (AT) pearsoncomputing.net
|
|
#
|
|
# Improvements and feedback are welcome
|
|
#
|
|
# This file is released under GPL >= 2
|
|
#
|
|
#################################################
|
|
|
|
cmake_minimum_required( VERSION 2.8 )
|
|
|
|
|
|
##### general package setup #####################
|
|
|
|
# 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)
|
|
|
|
|
|
##### include essential cmake modules ###########
|
|
|
|
include( CheckCXXSourceCompiles )
|
|
include( CheckFunctionExists )
|
|
include( CheckIncludeFileCXX )
|
|
include( CheckLibraryExists )
|
|
include( CheckStructHasMember )
|
|
include( CheckSymbolExists )
|
|
include( CheckTypeSize )
|
|
include( FindPkgConfig )
|
|
|
|
##### set up versioning #########################
|
|
|
|
# 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}"')
|
|
|
|
|
|
##### include our cmake modules #################
|
|
|
|
set( CMAKE_MODULE_PATH "${CMAKE_SOURCE_DIR}/cmake/modules" )
|
|
include( TDEMacros )
|
|
|
|
|
|
##### setup install paths #######################
|
|
|
|
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)
|
|
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)
|
|
|
|
##### configure checks ##########################
|
|
|
|
include( ConfigureChecks.cmake )
|
|
|
|
|
|
###### global compiler settings #################
|
|
|
|
add_definitions(
|
|
-DHAVE_CONFIG_H
|
|
)
|
|
|
|
set( CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${TQT_CXX_FLAGS}" )
|
|
set( CMAKE_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS} -Wl,--no-undefined" )
|
|
set( CMAKE_MODULE_LINKER_FLAGS "${CMAKE_MODULE_LINKER_FLAGS} -Wl,--no-undefined" )
|
|
|
|
|
|
##### source directories ########################
|
|
|
|
add_subdirectory( src )
|
|
add_subdirectory( data )
|
|
tde_conditional_add_subdirectory( BUILD_DOC doc )
|
|
tde_conditional_add_subdirectory( BUILD_TRANSLATIONS po )
|
|
|
|
|
|
##### write configure files #####################
|
|
|
|
configure_file( config.h.cmake config.h @ONLY )
|
|
|
|
# create and install the version file
|
|
FILE(WRITE version.txt "${VERSION}\n")
|
|
INSTALL( FILES version.txt DESTINATION ${DATA_INSTALL_DIR}/rosegarden )
|
|
|
|
# configure the RPM spec
|
|
CONFIGURE_FILE("${CMAKE_SOURCE_DIR}/rosegarden.spec.in" "${CMAKE_SOURCE_DIR}/rosegarden.spec" IMMEDIATE @ONLY) |