From ca9dc25f9aa7f521199df86c98221c47ecfdcebb Mon Sep 17 00:00:00 2001 From: crazywhalecc Date: Fri, 6 Feb 2026 14:26:24 +0800 Subject: [PATCH] Add watcher --- config/pkg/lib/watcher.yml | 15 +++++++++++++++ src/Package/Library/watcher.php | 32 ++++++++++++++++++++++++++++++++ 2 files changed, 47 insertions(+) create mode 100644 config/pkg/lib/watcher.yml create mode 100644 src/Package/Library/watcher.php diff --git a/config/pkg/lib/watcher.yml b/config/pkg/lib/watcher.yml new file mode 100644 index 00000000..6cf376f6 --- /dev/null +++ b/config/pkg/lib/watcher.yml @@ -0,0 +1,15 @@ +watcher: + type: library + artifact: + source: + type: ghtar + repo: e-dant/watcher + prefer-stable: true + metadata: + license-files: [license] + license: MIT + headers: + - wtr/watcher-c.h + lang: cpp + static-libs@unix: + - libwatcher-c.a diff --git a/src/Package/Library/watcher.php b/src/Package/Library/watcher.php new file mode 100644 index 00000000..56f93d93 --- /dev/null +++ b/src/Package/Library/watcher.php @@ -0,0 +1,32 @@ +getLibExtraCXXFlags(); + if (stripos($cflags, '-fpic') === false) { + $cflags .= ' -fPIC'; + } + $ldflags = $this->getLibExtraLdFlags() ? ' ' . $this->getLibExtraLdFlags() : ''; + shell()->cd("{$this->getSourceDir()}/watcher-c") + ->exec(getenv('CXX') . " -c -o libwatcher-c.o ./src/watcher-c.cpp -I ./include -I ../include -std=c++17 -Wall -Wextra {$cflags}{$ldflags}") + ->exec(getenv('AR') . ' rcs libwatcher-c.a libwatcher-c.o'); + + copy("{$this->getSourceDir()}/watcher-c/libwatcher-c.a", "{$this->getLibDir()}/libwatcher-c.a"); + FileSystem::createDir("{$this->getIncludeDir()}/wtr"); + copy("{$this->getSourceDir()}/watcher-c/include/wtr/watcher-c.h", "{$this->getIncludeDir()}/wtr/watcher-c.h"); + } +}