build: fix dirmonitor backend selection (#1790)

When a backend was specified using meson, the relative source files weren't being added.
This commit is contained in:
Guldoman
2024-06-21 08:05:35 +08:00
committed by takase1121
parent f4311df1d6
commit 8989dd6dc9
+17 -8
View File
@@ -11,6 +11,7 @@ lite_sources = [
'main.c',
]
lite_sources += 'api/dirmonitor.c'
# dirmonitor backend
if get_option('dirmonitor_backend') == ''
if cc.has_function('inotify_init', prefix : '#include<sys/inotify.h>')
@@ -19,6 +20,8 @@ if get_option('dirmonitor_backend') == ''
dirmonitor_backend = 'fsevents'
elif cc.has_function('kqueue', prefix : '#include<sys/event.h>')
dirmonitor_backend = 'kqueue'
elif cc.has_function('create_inode_watcher', prefix : '#include<fcntl.h>')
dirmonitor_backend = 'inodewatcher'
elif dependency('libkqueue', required : false).found()
dirmonitor_backend = 'kqueue'
elif host_machine.system() == 'windows'
@@ -31,20 +34,26 @@ else
dirmonitor_backend = get_option('dirmonitor_backend')
endif
message('dirmonitor_backend: @0@'.format(dirmonitor_backend))
if dirmonitor_backend == 'kqueue'
if dirmonitor_backend == 'inotify'
lite_sources += 'api/dirmonitor/inotify.c'
elif dirmonitor_backend == 'fsevents'
lite_sources += 'api/dirmonitor/fsevents.c'
elif dirmonitor_backend == 'kqueue'
lite_sources += 'api/dirmonitor/kqueue.c'
libkqueue_dep = dependency('libkqueue', required : false)
if libkqueue_dep.found()
lite_deps += libkqueue_dep
endif
elif dirmonitor_backend == 'inodewatcher'
add_languages('cpp')
lite_sources += 'api/dirmonitor/inodewatcher.cpp'
elif dirmonitor_backend == 'win32'
lite_sources += 'api/dirmonitor/win32.c'
else
lite_sources += 'api/dirmonitor/dummy.c'
endif
lite_sources += [
'api/dirmonitor.c',
'api/dirmonitor/' + dirmonitor_backend + '.c',
]
message('dirmonitor_backend: @0@'.format(dirmonitor_backend))
lite_rc = []
if host_machine.system() == 'windows'