blob: 77227d52315d96e0d3b50df1b4adaa3d35f657c9 [file] [log] [blame]
Taylor Holberton18939502017-10-12 20:09:05 -04001cmake_minimum_required(VERSION 3.0.2)
2
3project("TinyALSA" C)
4
Bhalchandra Gajare986b8e32019-09-04 15:32:35 -07005option(TINYALSA_USES_PLUGINS "Whether or not to build with plugin support" OFF)
6
7if (TINYALSA_USES_PLUGINS)
8 set (plugin_opt -DTINYALSA_USES_PLUGINS=1)
9endif (TINYALSA_USES_PLUGINS)
10
Taylor Holberton18939502017-10-12 20:09:05 -040011set (HDRS
Taylor Holbertonbc86b6b2019-01-13 13:10:47 -050012 "include/tinyalsa/attributes.h"
Taylor Holberton18939502017-10-12 20:09:05 -040013 "include/tinyalsa/version.h"
14 "include/tinyalsa/asoundlib.h"
15 "include/tinyalsa/pcm.h"
Bhalchandra Gajare986b8e32019-09-04 15:32:35 -070016 "include/tinyalsa/plugin.h"
Taylor Holberton18939502017-10-12 20:09:05 -040017 "include/tinyalsa/mixer.h")
18
19set (SRCS
20 "src/pcm.c"
Bhalchandra Gajare986b8e32019-09-04 15:32:35 -070021 "src/pcm_hw.c"
22 "src/pcm_plugin.c"
23 "src/snd_card_plugin.c"
Taylor Holberton18939502017-10-12 20:09:05 -040024 "src/mixer.c")
25
26add_library("tinyalsa" ${HDRS} ${SRCS})
Bhalchandra Gajare986b8e32019-09-04 15:32:35 -070027target_compile_options("tinyalsa" PRIVATE -Wall -Wextra -Werror -Wfatal-errors ${plugin_opt})
Taylor Holberton18939502017-10-12 20:09:05 -040028target_include_directories("tinyalsa" PRIVATE "include")
29
30macro(ADD_EXAMPLE EXAMPLE)
31 add_executable(${EXAMPLE} ${ARGN})
32 target_link_libraries(${EXAMPLE} "tinyalsa")
Bhalchandra Gajare986b8e32019-09-04 15:32:35 -070033 target_link_libraries(${EXAMPLE} "dl")
Taylor Holberton18939502017-10-12 20:09:05 -040034 target_include_directories(${EXAMPLE} PRIVATE "include")
35endmacro(ADD_EXAMPLE EXAMPLE)
36
37add_example("pcm-readi" "examples/pcm-readi.c")
38add_example("pcm-writei" "examples/pcm-writei.c")
39
40macro(ADD_UTIL UTIL)
41 add_executable(${UTIL} ${ARGN})
42 target_link_libraries(${UTIL} "tinyalsa")
Bhalchandra Gajare986b8e32019-09-04 15:32:35 -070043 target_link_libraries(${UTIL} "dl")
Taylor Holberton18939502017-10-12 20:09:05 -040044 target_compile_options(${UTIL} PRIVATE -Wall -Wextra -Werror -Wfatal-errors)
45 target_include_directories(${UTIL} PRIVATE "include")
46endmacro(ADD_UTIL UTIL)
47
48add_util("tinyplay" "utils/tinyplay.c")
49add_util("tinycap" "utils/tinycap.c")
50add_util("tinypcminfo" "utils/tinypcminfo.c")
51add_util("tinymix" "utils/tinymix.c")
52
53install(FILES ${HDRS}
54 DESTINATION "include/tinyalsa")
55
56install(TARGETS "tinyalsa"
57 "tinyplay"
58 "tinycap"
59 "tinymix"
60 "tinypcminfo"
61 RUNTIME DESTINATION "bin"
62 ARCHIVE DESTINATION "lib"
63 LIBRARY DESTINATION "lib")
64