mirror of
https://github.com/syncthing/syncthing.git
synced 2026-05-11 00:26:31 -04:00
### Purpose On iOS, the FSEvents API for watching files (also used on macOS) is not available, but `kqueue` is. This PR ensures `kqueue` support is built on iOS instead of the FSEvents based watcher implementation. Before this PR, you could already use the `kqueue` build option to force its usage. Unfortunately `gomobile`, the tool that I use to build Syncthing for iOS and macOS for Synctrain, does not support setting different build flags for iOS and macOS (unless I build separately for each, which is a bit of a hassle because XCode nonsense). I am assuming there are good reasons to support FSEvents even though `kqueue` is also available on macOS (but I'm not sure why?). I do know FSEvents has been working fine for me on macOS so it seems best to use FSEvents on macOS and kqueue on iOS. Note that this also requires https://github.com/syncthing/notify/pull/4 to be merged in `synchting/notify` (until that is done, this PR will fail to build on iOS due to `notify` still trying to link to `fsevents` stuff when the `kqueue` build flag is not set). ### Testing I compiled both `syncthing/notify` and syncthing with this PR applied, and used that to successfully build the Synctrain iOS app, which after this PR works fine and should follow up file changes a bit quicker. ### Screenshots n/a ### Documentation n/a ## Authorship Your name and email will be added automatically to the AUTHORS file based on the commit metadata. --------- Co-authored-by: Jakob Borg <jakob@kastelo.net>
17 lines
617 B
Go
17 lines
617 B
Go
// Copyright (C) 2016 The Syncthing Authors.
|
|
//
|
|
// This Source Code Form is subject to the terms of the Mozilla Public
|
|
// License, v. 2.0. If a copy of the MPL was not distributed with this file,
|
|
// You can obtain one at http://mozilla.org/MPL/2.0/.
|
|
|
|
//go:build (solaris && !cgo) || (darwin && !cgo) || (android && amd64) || (darwin && kqueue)
|
|
// +build solaris,!cgo darwin,!cgo android,amd64 darwin,kqueue
|
|
|
|
package fs
|
|
|
|
import "context"
|
|
|
|
func (f *BasicFilesystem) Watch(name string, ignore Matcher, ctx context.Context, ignorePerms bool) (<-chan Event, <-chan error, error) {
|
|
return nil, nil, ErrWatchNotSupported
|
|
}
|