forked from Green-Sky/tomato
add cmake options to perfer system libs to libwebp
This commit is contained in:
parent
ace5ea9bf0
commit
2b992ade88
4
.github/workflows/ci.yml
vendored
4
.github/workflows/ci.yml
vendored
@ -153,7 +153,7 @@ jobs:
|
|||||||
- name: Install Dependencies
|
- name: Install Dependencies
|
||||||
env:
|
env:
|
||||||
VCPKG_BINARY_SOURCES: "clear;x-gha,readwrite"
|
VCPKG_BINARY_SOURCES: "clear;x-gha,readwrite"
|
||||||
run: vcpkg install pkgconf:x64-windows libsodium:x64-windows-static pthreads:x64-windows-static opus:x64-windows-static libvpx:x64-windows-static libpng:x64-windows-static libjpeg-turbo:x64-windows-static freetype:x64-windows-static
|
run: vcpkg install pkgconf:x64-windows libsodium:x64-windows-static pthreads:x64-windows-static opus:x64-windows-static libvpx:x64-windows-static libwebp:x64-windows-static libpng:x64-windows-static libjpeg-turbo:x64-windows-static freetype:x64-windows-static
|
||||||
|
|
||||||
# setup vs env
|
# setup vs env
|
||||||
- uses: ilammy/msvc-dev-cmd@v1
|
- uses: ilammy/msvc-dev-cmd@v1
|
||||||
@ -170,7 +170,7 @@ jobs:
|
|||||||
# key: ${{github.event.repository.name}}-${{github.job}}
|
# key: ${{github.event.repository.name}}-${{github.job}}
|
||||||
|
|
||||||
- name: Configure CMake
|
- name: Configure CMake
|
||||||
run: cmake -G Ninja -B ${{github.workspace}}/build -DCMAKE_BUILD_TYPE=${{env.BUILD_TYPE}} -DCMAKE_TOOLCHAIN_FILE=C:/vcpkg/scripts/buildsystems/vcpkg.cmake -DVCPKG_TARGET_TRIPLET=x64-windows-static -DSDLIMAGE_VENDORED=OFF -DSDLIMAGE_DEPS_SHARED=OFF -DSDLIMAGE_JXL=OFF -DSDLIMAGE_AVIF=OFF -DPKG_CONFIG_EXECUTABLE=C:/vcpkg/installed/x64-windows/tools/pkgconf/pkgconf.exe
|
run: cmake -G Ninja -B ${{github.workspace}}/build -DCMAKE_BUILD_TYPE=${{env.BUILD_TYPE}} -DCMAKE_TOOLCHAIN_FILE=C:/vcpkg/scripts/buildsystems/vcpkg.cmake -DVCPKG_TARGET_TRIPLET=x64-windows-static -DTOMATO_DEP_LIBWEBP_USE_SYSTEM=ON -DSDLIMAGE_VENDORED=OFF -DSDLIMAGE_DEPS_SHARED=OFF -DSDLIMAGE_JXL=OFF -DSDLIMAGE_AVIF=OFF -DPKG_CONFIG_EXECUTABLE=C:/vcpkg/installed/x64-windows/tools/pkgconf/pkgconf.exe
|
||||||
|
|
||||||
- name: Build
|
- name: Build
|
||||||
run: cmake --build ${{github.workspace}}/build --config ${{env.BUILD_TYPE}} -j 4 -t tomato
|
run: cmake --build ${{github.workspace}}/build --config ${{env.BUILD_TYPE}} -j 4 -t tomato
|
||||||
|
40
external/libwebp/CMakeLists.txt
vendored
40
external/libwebp/CMakeLists.txt
vendored
@ -1,8 +1,36 @@
|
|||||||
cmake_minimum_required(VERSION 3.14...3.24 FATAL_ERROR)
|
cmake_minimum_required(VERSION 3.16...3.24 FATAL_ERROR)
|
||||||
|
|
||||||
include(FetchContent)
|
include(FetchContent)
|
||||||
|
|
||||||
if (NOT TARGET libwebp)
|
option(TOMATO_DEP_LIBWEBP_USE_SYSTEM "Prefer system provided libwebp" OFF)
|
||||||
|
|
||||||
|
if (TOMATO_DEP_LIBWEBP_USE_SYSTEM)
|
||||||
|
if (NOT TARGET WebP::libwebpmux)
|
||||||
|
find_package(WebP CONFIG GLOBAL QUIET COMPONENTS webp webpdemux libwebpmux)
|
||||||
|
endif()
|
||||||
|
|
||||||
|
#if (NOT TARGET libwebp)
|
||||||
|
# find_package(WebP GLOBAL)
|
||||||
|
#endif()
|
||||||
|
|
||||||
|
if (TARGET WebP::webp)
|
||||||
|
message(STATUS "found WebP::webp")
|
||||||
|
endif()
|
||||||
|
if (TARGET WebP::webpdemux)
|
||||||
|
message(STATUS "found WebP::webpdemux")
|
||||||
|
endif()
|
||||||
|
if (TARGET WebP::libwebpmux)
|
||||||
|
message(STATUS "found WebP::libwebpmux")
|
||||||
|
endif()
|
||||||
|
|
||||||
|
if (TARGET WebP::libwebpmux)
|
||||||
|
message(STATUS "found system libwebp")
|
||||||
|
else()
|
||||||
|
message(STATUS "system libwebp not found")
|
||||||
|
endif()
|
||||||
|
endif()
|
||||||
|
|
||||||
|
if (NOT TARGET WebP::libwebpmux)
|
||||||
set(WEBP_LINK_STATIC ON CACHE BOOL "" FORCE)
|
set(WEBP_LINK_STATIC ON CACHE BOOL "" FORCE)
|
||||||
set(WEBP_BUILD_ANIM_UTILS OFF CACHE BOOL "" FORCE)
|
set(WEBP_BUILD_ANIM_UTILS OFF CACHE BOOL "" FORCE)
|
||||||
set(WEBP_BUILD_CWEBP OFF CACHE BOOL "" FORCE)
|
set(WEBP_BUILD_CWEBP OFF CACHE BOOL "" FORCE)
|
||||||
@ -19,11 +47,13 @@ if (NOT TARGET libwebp)
|
|||||||
|
|
||||||
FetchContent_Declare(libwebp
|
FetchContent_Declare(libwebp
|
||||||
GIT_REPOSITORY https://github.com/webmproject/libwebp
|
GIT_REPOSITORY https://github.com/webmproject/libwebp
|
||||||
GIT_TAG v1.4.0
|
GIT_TAG v1.5.0
|
||||||
FIND_PACKAGE_ARGS
|
FIND_PACKAGE_ARGS
|
||||||
)
|
)
|
||||||
FetchContent_MakeAvailable(libwebp)
|
FetchContent_MakeAvailable(libwebp)
|
||||||
|
|
||||||
|
add_library(WebP::webp ALIAS webp)
|
||||||
|
add_library(WebP::webpdemux ALIAS webpdemux)
|
||||||
|
add_library(WebP::libwebpmux ALIAS libwebpmux)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
#add_subdirectory(./libwebp EXCLUDE_FROM_ALL)
|
|
||||||
|
|
||||||
|
2
external/sdl/CMakeLists.txt
vendored
2
external/sdl/CMakeLists.txt
vendored
@ -7,7 +7,7 @@ option(TOMATO_DEP_SDL_USE_SYSTEM "Prefer system provided SDL" OFF)
|
|||||||
if (TOMATO_DEP_SDL_USE_SYSTEM)
|
if (TOMATO_DEP_SDL_USE_SYSTEM)
|
||||||
if (NOT TARGET SDL3::SDL3)
|
if (NOT TARGET SDL3::SDL3)
|
||||||
#find_package(SDL3 REQUIRED CONFIG REQUIRED COMPONENTS SDL3-shared)
|
#find_package(SDL3 REQUIRED CONFIG REQUIRED COMPONENTS SDL3-shared)
|
||||||
find_package(SDL3 REQUIRED CONFIG GLOBAL QUIET)
|
find_package(SDL3 CONFIG GLOBAL QUIET)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
if (TARGET SDL3::SDL3)
|
if (TARGET SDL3::SDL3)
|
||||||
|
2
external/sdl_image/CMakeLists.txt
vendored
2
external/sdl_image/CMakeLists.txt
vendored
@ -6,7 +6,7 @@ option(TOMATO_DEP_SDL_IMAGE_USE_SYSTEM "Prefer system provided SDL_image" OFF)
|
|||||||
|
|
||||||
if (TOMATO_DEP_SDL_IMAGE_USE_SYSTEM)
|
if (TOMATO_DEP_SDL_IMAGE_USE_SYSTEM)
|
||||||
if (NOT TARGET SDL3_image::SDL3_image)
|
if (NOT TARGET SDL3_image::SDL3_image)
|
||||||
find_package(SDL3_image REQUIRED CONFIG GLOBAL QUIET)
|
find_package(SDL3_image CONFIG GLOBAL QUIET)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
if (TARGET SDL3_image::SDL3_image)
|
if (TARGET SDL3_image::SDL3_image)
|
||||||
|
@ -90,6 +90,8 @@
|
|||||||
libopus
|
libopus
|
||||||
libvpx
|
libvpx
|
||||||
|
|
||||||
|
libwebp
|
||||||
|
|
||||||
freetype
|
freetype
|
||||||
] ++ self.packages.${system}.default.dlopenBuildInputs;
|
] ++ self.packages.${system}.default.dlopenBuildInputs;
|
||||||
|
|
||||||
@ -104,8 +106,9 @@
|
|||||||
# TODO: use package instead
|
# TODO: use package instead
|
||||||
"-DFETCHCONTENT_SOURCE_DIR_JSON=${nlohmann-json}" # we care about the version
|
"-DFETCHCONTENT_SOURCE_DIR_JSON=${nlohmann-json}" # we care about the version
|
||||||
"-DFETCHCONTENT_SOURCE_DIR_ZSTD=${pkgs.zstd.src}" # we dont care about the version (we use 1.4.x features)
|
"-DFETCHCONTENT_SOURCE_DIR_ZSTD=${pkgs.zstd.src}" # we dont care about the version (we use 1.4.x features)
|
||||||
"-DFETCHCONTENT_SOURCE_DIR_LIBWEBP=${pkgs.libwebp.src}"
|
|
||||||
"-DFETCHCONTENT_SOURCE_DIR_SDL3=${sdl3}"
|
"-DFETCHCONTENT_SOURCE_DIR_SDL3=${sdl3}"
|
||||||
|
#"-DFETCHCONTENT_SOURCE_DIR_LIBWEBP=${pkgs.libwebp.src}"
|
||||||
|
"-DTOMATO_DEP_LIBWEBP_USE_SYSTEM=ON"
|
||||||
"-DFETCHCONTENT_SOURCE_DIR_SDL3_IMAGE=${sdl3_image}"
|
"-DFETCHCONTENT_SOURCE_DIR_SDL3_IMAGE=${sdl3_image}"
|
||||||
"-DSDLIMAGE_JXL=ON"
|
"-DSDLIMAGE_JXL=ON"
|
||||||
"-DFETCHCONTENT_SOURCE_DIR_PLUTOSVG=${plutosvg}" # not in pkgs
|
"-DFETCHCONTENT_SOURCE_DIR_PLUTOSVG=${plutosvg}" # not in pkgs
|
||||||
|
@ -194,8 +194,8 @@ target_link_libraries(tomato PUBLIC
|
|||||||
|
|
||||||
stb_image
|
stb_image
|
||||||
stb_image_write
|
stb_image_write
|
||||||
webpdemux
|
WebP::webpdemux
|
||||||
libwebpmux # the f why (needed for anim encode)
|
WebP::libwebpmux # the f why (needed for anim encode)
|
||||||
qoi
|
qoi
|
||||||
SDL3_image::SDL3_image
|
SDL3_image::SDL3_image
|
||||||
)
|
)
|
||||||
|
Loading…
x
Reference in New Issue
Block a user