- Introduced GStreamerTexture class for handling video frames. - Updated texture loading methods to include FromGStreamer. - Modified effect handling to support GStreamer textures. - Updated launch configuration and added new sample scripts.
101 lines
3.0 KiB
CMake
101 lines
3.0 KiB
CMake
cmake_minimum_required(VERSION 3.25)
|
|
project(live-wallpaper LANGUAGES C CXX)
|
|
|
|
set(CMAKE_CXX_STANDARD 20)
|
|
set(CMAKE_CXX_STANDARD_REQUIRED ON)
|
|
set(CMAKE_CXX_EXTENSIONS OFF)
|
|
set(CMAKE_EXPORT_COMPILE_COMMANDS ON)
|
|
|
|
# ── CPM ──────────────────────────────────────────────────────────────────────
|
|
set(CPM_DOWNLOAD_LOCATION "${CMAKE_CURRENT_SOURCE_DIR}/cmake/CPM.cmake")
|
|
|
|
if(NOT EXISTS "${CPM_DOWNLOAD_LOCATION}")
|
|
message(STATUS "Downloading CPM.cmake to ${CPM_DOWNLOAD_LOCATION}")
|
|
file(DOWNLOAD
|
|
"https://github.com/cpm-cmake/CPM.cmake/releases/latest/download/CPM.cmake"
|
|
"${CPM_DOWNLOAD_LOCATION}"
|
|
)
|
|
endif()
|
|
|
|
include("${CPM_DOWNLOAD_LOCATION}")
|
|
|
|
# ── Dependencies ─────────────────────────────────────────────────────────────
|
|
CPMAddPackage(
|
|
NAME SDL3
|
|
GITHUB_REPOSITORY libsdl-org/SDL
|
|
GIT_TAG main
|
|
OPTIONS
|
|
"SDL_SHARED OFF"
|
|
"SDL_STATIC ON"
|
|
"SDL_TEST_LIBRARY OFF"
|
|
"SDL_TESTS OFF"
|
|
"SDL_EXAMPLES OFF"
|
|
"SDL_X11_XSCRNSAVER OFF"
|
|
)
|
|
CPMAddPackage(
|
|
NAME lua
|
|
GIT_TAG v5.4.7
|
|
GITHUB_REPOSITORY walterschell/Lua
|
|
OPTIONS
|
|
"LUA_BUILD_COMPILER OFF"
|
|
"LUA_BUILD_INTERPRETER OFF"
|
|
)
|
|
CPMAddPackage(
|
|
NAME sol2
|
|
GITHUB_REPOSITORY ThePhD/sol2
|
|
GIT_TAG v3.3.0
|
|
OPTIONS
|
|
"SOL2_LUA_VERSION 5.4.7"
|
|
)
|
|
CPMAddPackage(
|
|
NAME stb
|
|
GITHUB_REPOSITORY nothings/stb
|
|
GIT_TAG master
|
|
DOWNLOAD_ONLY YES
|
|
)
|
|
if(stb_ADDED)
|
|
add_library(stb INTERFACE)
|
|
target_include_directories(stb INTERFACE ${stb_SOURCE_DIR})
|
|
endif()
|
|
|
|
# ── Local dependencies ───────────────────────────────────────────────────────
|
|
add_subdirectory(external/glad)
|
|
|
|
find_package(OpenGL REQUIRED)
|
|
find_package(X11 REQUIRED)
|
|
|
|
find_package(PkgConfig REQUIRED)
|
|
pkg_check_modules(GST REQUIRED IMPORTED_TARGET
|
|
gstreamer-1.0
|
|
gstreamer-app-1.0
|
|
gstreamer-video-1.0
|
|
)
|
|
|
|
# ── Source Files ─────────────────────────────────────────────────────────────
|
|
file(GLOB_RECURSE SOURCE_FILES
|
|
src/*.cpp
|
|
src/*.hpp
|
|
src/*.h
|
|
)
|
|
|
|
# ── Executable ───────────────────────────────────────────────────────────────
|
|
add_executable(${PROJECT_NAME} ${SOURCE_FILES})
|
|
|
|
target_link_libraries(${PROJECT_NAME}
|
|
PRIVATE
|
|
SDL3::SDL3-static
|
|
OpenGL::GL
|
|
X11::X11
|
|
Xext
|
|
Lua::Library
|
|
sol2
|
|
stb
|
|
glad
|
|
PkgConfig::GST
|
|
)
|
|
|
|
target_include_directories(${PROJECT_NAME}
|
|
PRIVATE
|
|
${CMAKE_CURRENT_SOURCE_DIR}/src
|
|
)
|