diff --git a/src/SPC/builder/unix/library/libwebp.php b/src/SPC/builder/unix/library/libwebp.php index ce7bd58e..3cdeb3ff 100644 --- a/src/SPC/builder/unix/library/libwebp.php +++ b/src/SPC/builder/unix/library/libwebp.php @@ -7,6 +7,7 @@ namespace SPC\builder\unix\library; use SPC\exception\FileSystemException; use SPC\exception\RuntimeException; use SPC\exception\WrongUsageException; +use SPC\store\FileSystem; trait libwebp { @@ -17,25 +18,20 @@ trait libwebp */ protected function build(): void { - [,,$destdir] = SEPARATED_PATH; - - shell()->cd($this->source_dir) - ->exec('./autogen.sh') + // CMake needs a clean build directory + FileSystem::resetDir($this->source_dir . '/build'); + // Start build + shell()->cd($this->source_dir . '/build') ->exec( - "{$this->builder->configure_env} ./configure " . - '--enable-static ' . - '--disable-shared ' . - '--prefix= ' . - '--enable-libwebpdecoder ' . - '--enable-libwebpextras ' . - '--disable-tiff ' . - '--disable-gl ' . - '--disable-sdl ' . - '--disable-wic' + "{$this->builder->configure_env} cmake " . + $this->builder->makeCmakeArgs() . ' ' . + '-DBUILD_SHARED_LIBS=OFF ' . + '-DWEBP_BUILD_EXTRAS=ON ' . + '..' ) - ->exec('make clean') - ->exec("make -j{$this->builder->concurrency}") - ->exec('make install DESTDIR=' . $destdir); + ->exec("cmake --build . -j {$this->builder->concurrency}") + ->exec('make install DESTDIR=' . BUILD_ROOT_PATH); + // patch pkgconfig $this->patchPkgconfPrefix(['libsharpyuv.pc', 'libwebp.pc', 'libwebpdecoder.pc', 'libwebpdemux.pc', 'libwebpmux.pc'], PKGCONF_PATCH_PREFIX); $this->cleanLaFiles(); }