File: CMakeLists.txt

package info (click to toggle)
mudita24 1.0.3%2Bsvn13-6
  • links: PTS, VCS
  • area: main
  • in suites: buster, stretch
  • size: 604 kB
  • ctags: 626
  • sloc: ansic: 8,577; makefile: 5
file content (126 lines) | stat: -rwxr-xr-x 3,573 bytes parent folder | download | duplicates (3)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
include(FindPkgConfig)

project(mudita24)
CMAKE_MINIMUM_REQUIRED(VERSION 2.6.2)
#if (COMMAND cmake_policy)
      #cmake_policy(SET CMP0003 NEW)
      #cmake_policy(SET CMP0011 NEW)
#endif(COMMAND cmake_policy)

IF(NOT DEFINED SHARE_INSTALL_PREFIX)
        SET(SHARE_INSTALL_PREFIX "${CMAKE_INSTALL_PREFIX}/share")
ENDIF(NOT DEFINED SHARE_INSTALL_PREFIX)

set(CMAKE_INCLUDE_CURRENT_DIR TRUE)
set(CMAKE_SKIP_RULE_DEPENDENCY TRUE)

SET(mudita24_INSTALL_NAME  "mudita24-1.0.4")
SET(mudita24_EXEC_NAME     "mudita24")
SET(mudita24_VERSION       "1.0.4")
FIND_PROGRAM(SVNVER svnversion)
if (${SVNVER} STREQUAL "SVNVER-NOTFOUND")
      SET (mudita24_SVNVER 0)
else (${SVNVER} STREQUAL "SVNVER-NOTFOUND")
      EXECUTE_PROCESS( COMMAND svnversion ${PROJECT_SOURCE_DIR}
                       OUTPUT_VARIABLE mudita24_SVNVER 
                       OUTPUT_STRIP_TRAILING_WHITESPACE )
endif (${SVNVER} STREQUAL "SVNVER-NOTFOUND")

## Top documentation dir
IF(NOT DEFINED mudita24_DOC_DIR)
      SET(mudita24_DOC_DIR ${SHARE_INSTALL_PREFIX}/doc/${mudita24_INSTALL_NAME}/)
ENDIF(NOT DEFINED mudita24_DOC_DIR)

#find_package(ALSA 0.9.0 REQUIRED alsa)
# This didn't work. GTK2_INCLUDE_DIRS was blank.
#find_package(GTK2 2.0 REQUIRED gtk)

PKG_CHECK_MODULES(GTK2 REQUIRED gtk+-2.0>=2.20)
# TODO What's the minimum required?
PKG_CHECK_MODULES(ALSA REQUIRED alsa>=1.0.0)

# TODO check for log10
## NPM: version > 1.0.1's logarithmic display requires log10() and therefore
## "-lm". 
#PKG_CHECK_MODULES(M REQUIRED m) 

include_directories(${ALSA_INCLUDE_DIRS})
include_directories(${GTK2_INCLUDE_DIRS})

FIND_PROGRAM(mudita24_ALSACTL alsactl)
# message(" alsactl location: " ${mudita24_ALSACTL} )  
if (${mudita24_ALSACTL} STREQUAL "mudita24_ALSACTL-NOTFOUND")
      SET (mudita24_ALSACTL 0)
endif (${mudita24_ALSACTL} STREQUAL "mudita24_ALSACTL-NOTFOUND")

#
# produce globaldefs.h file
#
configure_file (
      ${PROJECT_SOURCE_DIR}/globaldefs.h.in
      ${PROJECT_BINARY_DIR}/globaldefs.h
      )

include_directories(
      ${CMAKE_CURRENT_BINARY_DIR}
      )

set (mudita24_source_files
      envy24control.c # envy24control.h 
      levelmeters.c 
      midi.c
      mixer.c 
      patchbay.c 
      hardware.c 
      driverevents.c 
      volume.c 
      profiles.c # profiles.h 
      midi.h 
      config.c # config.h
)

add_executable( mudita24 ${mudita24_source_files} )

##
## Compilation flags 
## Oct 18, 2011: Suggested by James Morris along with supplied patch:                                               
##   -DGTK_DISABLE_DEPRECATED -DGDK_DISABLE_DEPRECATED -DGSEAL_ENABLE 
## Incomplete changes to source for now, causes errors.
#
# set_target_properties( mudita24
#      PROPERTIES COMPILE_FLAGS "-DGTK_DISABLE_DEPRECATED -DGDK_DISABLE_DEPRECATED -DGSEAL_ENABLE"
#      )

target_link_libraries(mudita24
      ${ALSA_LIBRARIES}
      ${GTK2_LIBRARIES}
      #${M_LIBRARIES}
      m
      )

install( TARGETS mudita24 
      RUNTIME DESTINATION ${CMAKE_INSTALL_PREFIX}/bin/
      )

## Top documentation dir
IF(NOT DEFINED mudita24_DOC_DIR)
      SET(mudita24_DOC_DIR ${SHARE_INSTALL_PREFIX}/doc/${mudita24_INSTALL_NAME}/)
ENDIF(NOT DEFINED mudita24_DOC_DIR)

## Install doc files
file (GLOB doc_files
      README.profiles
      )
INSTALL( FILES ${doc_files} DESTINATION ${mudita24_DOC_DIR})

# produce the manpages
# TODO:
# configure_file (
#      mudita24.1.in
#      ${PROJECT_BINARY_DIR}/man/${mudita24_EXEC_NAME}.1
#      )
#install( FILES 
#      ${PROJECT_BINARY_DIR}/man/${mudita24_EXEC_NAME}.1
#      DESTINATION ${SHARE_INSTALL_PREFIX}/man/man1/
#      )