~ubuntu-branches/ubuntu/quantal/libdrumstick/quantal

« back to all changes in this revision

Viewing changes to .pc/multiarch.patch/CMakeLists.txt

  • Committer: Package Import Robot
  • Author(s): Alessio Treglia, Adrian Knoth, Alessio Treglia
  • Date: 2012-02-05 21:13:53 UTC
  • Revision ID: package-import@ubuntu.com-20120205211353-suxnx7mam1kwp6dn
Tags: 0.5.0-3
[ Adrian Knoth ]
* Replace old binutils patch with new one:
  - The cmake maintainer suggested a different fix, so here's the new
    approach. For details, see #615742.

[ Alessio Treglia ]
* Build for Multi-Arch.
* Remove missing_libs.patch, superseded by Adrian's new patch.
* Refresh patches.
* Bump Standards.
* Rewrite debian/copyright to comply with DEP-5.
* Add override to avoid Lintian's package-name-doesnt-match-sonames
  warning.
* Include in libdrumstick-dbg only symbols coming from libdrumstick0;
  this avoids installing drumstick-tools when one needs the -DBG just
  to debug the libraries.

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
# MIDI Sequencer C++ Library
 
2
# Copyright (C) 2005-2010 Pedro Lopez-Cabanillas <plcl@users.sourceforge.net>
 
3
#
 
4
# This program is free software; you can redistribute it and/or modify
 
5
# it under the terms of the GNU General Public License as published by
 
6
# the Free Software Foundation; either version 2 of the License, or
 
7
# (at your option) any later version.
 
8
#
 
9
# This program is distributed in the hope that it will be useful,
 
10
# but WITHOUT ANY WARRANTY; without even the implied warranty of
 
11
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 
12
# GNU General Public License for more details.
 
13
#
 
14
# You should have received a copy of the GNU General Public License
 
15
# along with this program; if not, write to the Free Software
 
16
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
 
17
# MA 02110-1301, USA
 
18
 
 
19
# The name of our project is "DRUMSTICK". CMakeLists files in this project can
 
20
# refer to the root source directory of the project as ${DRUMSTICK_SOURCE_DIR} 
 
21
# and to the root binary directory of the project as ${DRUMSTICK_BINARY_DIR}
 
22
PROJECT(DRUMSTICK)
 
23
 
 
24
# CMake minimum version
 
25
CMAKE_MINIMUM_REQUIRED(VERSION 2.6)
 
26
IF(COMMAND CMAKE_POLICY)
 
27
    CMAKE_POLICY(SET CMP0003 NEW)
 
28
ENDIF(COMMAND CMAKE_POLICY)
 
29
 
 
30
# Debian, unlike the FHS, does not use a '64' suffix like 'lib64'
 
31
SET(_INIT_LIB_SUFFIX "")
 
32
SET(LIB_SUFFIX ${_INIT_LIB_SUFFIX} CACHE STRING "optional library install directory suffix: 32, 64, none")
 
33
 
 
34
#Comment out if relative paths break the link scripts
 
35
#SET(CMAKE_USE_RELATIVE_PATHS OFF)
 
36
 
 
37
# Assorted settings
 
38
SET(CMAKE_COLOR_MAKEFILE ON)
 
39
SET(CMAKE_INCLUDE_CURRENT_DIR TRUE)
 
40
#SET(CMAKE_BUILD_WITH_INSTALL_RPATH TRUE)
 
41
SET(CMAKE_SKIP_RULE_DEPENDENCY FALSE)
 
42
SET(EXECUTABLE_OUTPUT_PATH ${PROJECT_BINARY_DIR}/bin)
 
43
SET(LIBRARY_OUTPUT_PATH ${PROJECT_BINARY_DIR}/lib)
 
44
 
 
45
# Additional CMake modules for 3rd party library checks reside here
 
46
SET(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "${CMAKE_SOURCE_DIR}/cmake_admin")
 
47
 
 
48
# DRUMSTICK version string
 
49
SET (VERSION_MAJOR "0")
 
50
SET (VERSION_MINOR "5")
 
51
SET (VERSION_PATCH "0")
 
52
SET (VERSION_SUFFIX "")
 
53
SET (VERSION ${VERSION_MAJOR}.${VERSION_MINOR}.${VERSION_PATCH}${VERSION_SUFFIX})
 
54
 
 
55
MESSAGE(STATUS "drumstick ${VERSION} prefix: ${CMAKE_INSTALL_PREFIX}")
 
56
 
 
57
# User options
 
58
OPTION(STATIC_DRUMSTICK "Build static libraries instead of dynamic" OFF)
 
59
OPTION(USE_DBUS "Include DBus support (required for RealtimeKit)" ON)
 
60
 
 
61
MESSAGE(STATUS "Build configuration: ${CMAKE_BUILD_TYPE}")
 
62
 
 
63
# LIBRARY BUILD TYPE
 
64
IF(STATIC_DRUMSTICK)
 
65
    SET(BUILD_SHARED_LIBS OFF)
 
66
    add_definitions (-DDRUMSTICK_STATIC)
 
67
    MESSAGE(STATUS "Building static libraries")
 
68
ELSE(STATIC_DRUMSTICK)
 
69
    SET(BUILD_SHARED_LIBS ON)
 
70
    MESSAGE(STATUS "Building dynamic libraries")
 
71
ENDIF(STATIC_DRUMSTICK)
 
72
 
 
73
# Check for Qt
 
74
SET(QT_MIN_VERSION "4.4.0")
 
75
FIND_PACKAGE(Qt4 REQUIRED)
 
76
IF(QT4_FOUND)
 
77
    MESSAGE (STATUS "Found Qt4 ${QT_EDITION} version = ${QTVERSION}")
 
78
    SET (QT_USE_QTSVG TRUE)
 
79
    IF (USE_DBUS)
 
80
        SET(QT_USE_QTDBUS TRUE)
 
81
        ADD_DEFINITIONS(-DRTKIT_SUPPORT)
 
82
    ENDIF (USE_DBUS)
 
83
    INCLUDE (${QT_USE_FILE})
 
84
    INCLUDE_DIRECTORIES (${QT_INCLUDES}) 
 
85
    LINK_DIRECTORIES (${QT_LIBRARY_DIR})
 
86
    LINK_LIBRARIES (${QT_LIBRARIES})
 
87
    ADD_DEFINITIONS (-DQT_STRICT_ITERATORS)
 
88
ELSE(QT4_FOUND)
 
89
    MESSAGE(FATAL_ERROR "Qt4 not found")
 
90
ENDIF(QT4_FOUND)
 
91
 
 
92
# Check for PKG-CONFIG
 
93
FIND_PACKAGE(PkgConfig REQUIRED)
 
94
IF(PKG_CONFIG_FOUND)
 
95
    MESSAGE(STATUS "Program pkg-config found (${PKG_CONFIG_EXECUTABLE})")
 
96
ELSE(PKG_CONFIG_FOUND)
 
97
    MESSAGE(FATAL_ERROR "Program pkg-config not found")
 
98
ENDIF(PKG_CONFIG_FOUND)
 
99
 
 
100
# Initialize some variables
 
101
SET(HAVE_ALSA FALSE)
 
102
 
 
103
# Check for ALSA 1.0.0
 
104
PKG_CHECK_MODULES(ALSA alsa>=1.0.0)
 
105
IF(ALSA_FOUND)
 
106
    SET(HAVE_ALSA TRUE)
 
107
    ADD_DEFINITIONS(-DHAVE_ALSA)
 
108
    SET(ALSA_LIBS ${ALSA_LIBRARIES})
 
109
    LIST(APPEND ALSA_LIB_DIR ${ALSA_LIBRARY_DIRS} ${ALSA_LIBDIR})
 
110
    LIST(APPEND ALSA_INC_DIR ${ALSA_INCLUDE_DIRS} ${ALSA_INCLUDEDIR})
 
111
ELSE(ALSA_FOUND)
 
112
    MESSAGE(STATUS "Warning: ALSA library not found.")
 
113
ENDIF(ALSA_FOUND)
 
114
 
 
115
LINK_DIRECTORIES (
 
116
    ${DRUMSTICK_BINARY_DIR}/lib
 
117
    ${ALSA_LIB_DIR}
 
118
)
 
119
 
 
120
INCLUDE_DIRECTORIES ( BEFORE 
 
121
    ${DRUMSTICK_SOURCE_DIR}/library
 
122
    ${DRUMSTICK_SOURCE_DIR}/library/include
 
123
    ${ALSA_INC_DIR}
 
124
)
 
125
 
 
126
if (CMAKE_COMPILER_IS_GNUCXX)
 
127
# exceptions are needed by this library, please don't try to disable them!
 
128
  set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fexceptions -UQT_NO_EXCEPTIONS")
 
129
  if (NOT WIN32)
 
130
    include (CheckCXXCompilerFlag)
 
131
    check_cxx_compiler_flag (-fvisibility=hidden _HAVE_GCC_VISIBILITY)
 
132
    if (_HAVE_GCC_VISIBILITY)
 
133
      set (CMAKE_CXX_FLAGS 
 
134
           "${CMAKE_CXX_FLAGS} -fvisibility=hidden -fvisibility-inlines-hidden")
 
135
    endif (_HAVE_GCC_VISIBILITY)
 
136
    set (CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -Wl,--as-needed")
 
137
  endif (NOT WIN32)
 
138
endif (CMAKE_COMPILER_IS_GNUCXX)
 
139
 
 
140
ADD_SUBDIRECTORY(library)
 
141
ADD_SUBDIRECTORY(utils)
 
142
ADD_SUBDIRECTORY(icons)
 
143
IF(${CMAKE_SYSTEM} MATCHES "Linux")
 
144
    FIND_PACKAGE(Doxygen)
 
145
    IF(DOXYGEN_FOUND)
 
146
        CONFIGURE_FILE(
 
147
            "${CMAKE_SOURCE_DIR}/Doxyfile.in"
 
148
            "${CMAKE_CURRENT_BINARY_DIR}/Doxyfile"
 
149
            IMMEDIATE @ONLY)
 
150
        ADD_CUSTOM_TARGET ( doxygen
 
151
            ${DOXYGEN} Doxyfile
 
152
            WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}
 
153
        )
 
154
    ENDIF(DOXYGEN_FOUND)
 
155
    ADD_SUBDIRECTORY(doc)
 
156
ENDIF(${CMAKE_SYSTEM} MATCHES "Linux")
 
157
 
 
158
CONFIGURE_FILE(drumstick-alsa.pc.in drumstick-alsa.pc IMMEDIATE @ONLY)
 
159
CONFIGURE_FILE(drumstick-file.pc.in drumstick-file.pc IMMEDIATE @ONLY)
 
160
CONFIGURE_FILE(drumstick.spec.in drumstick.spec IMMEDIATE @ONLY)
 
161
INSTALL( FILES 
 
162
    ${CMAKE_CURRENT_BINARY_DIR}/drumstick-file.pc
 
163
    ${CMAKE_CURRENT_BINARY_DIR}/drumstick-alsa.pc
 
164
    DESTINATION lib${LIB_SUFFIX}/pkgconfig )
 
165
 
 
166
# XML mime types
 
167
set( SHARED_MIME_INFO_MINIMUM_VERSION "0.30" )
 
168
set( XDG_MIME_INSTALL_DIR "share/mime/packages" ) 
 
169
find_package( SharedMimeInfo )
 
170
if( SHARED_MIME_INFO_FOUND )
 
171
    install( FILES drumstick.xml DESTINATION ${XDG_MIME_INSTALL_DIR} ) 
 
172
    update_xdg_mimetypes( ${XDG_MIME_INSTALL_DIR} )     
 
173
endif( SHARED_MIME_INFO_FOUND )
 
174
 
 
175
# uninstall custom target
 
176
CONFIGURE_FILE(
 
177
    "${CMAKE_SOURCE_DIR}/cmake_admin/cmake_uninstall.cmake.in"
 
178
    "${CMAKE_CURRENT_BINARY_DIR}/cmake_uninstall.cmake"
 
179
    IMMEDIATE @ONLY)
 
180
 
 
181
ADD_CUSTOM_TARGET ( uninstall
 
182
    "${CMAKE_COMMAND}" -P "${CMAKE_CURRENT_BINARY_DIR}/cmake_uninstall.cmake")
 
183
 
 
184
IF(${CMAKE_SYSTEM} MATCHES "Linux")
 
185
    # tarball target
 
186
    ADD_CUSTOM_TARGET ( tarball
 
187
        COMMAND mkdir -p drumstick-${VERSION}
 
188
        COMMAND cp -r cmake_admin drumstick-${VERSION}
 
189
        COMMAND cp -r library drumstick-${VERSION}
 
190
        COMMAND cp -r utils drumstick-${VERSION}
 
191
        COMMAND cp -r doc drumstick-${VERSION}
 
192
        COMMAND cp -r icons drumstick-${VERSION}
 
193
        COMMAND cp CMakeLists.txt AUTHORS COPYING ChangeLog INSTALL NEWS README TODO drumstick*.in drumstick.pro drumstick.xml configure* Doxyfile.in link-drumstick chkcoverage drumstick-${VERSION}
 
194
        COMMAND tar -cj --exclude=.[a-z]* -f drumstick-${VERSION}.tar.bz2 drumstick-${VERSION}
 
195
        COMMAND tar -cz --exclude=.[a-z]* -f drumstick-${VERSION}.tar.gz  drumstick-${VERSION}
 
196
        COMMAND rm -rf drumstick-${VERSION}
 
197
        WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}
 
198
    )
 
199
ENDIF(${CMAKE_SYSTEM} MATCHES "Linux")