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/
# )
|