Files
p 9617557bc3
Alpine 3.24 Success
Alpine 3.24 aarch64 Success
Arch Linux AUR Success
OpenBSD 7.8 Success
CMake style adjustment
2026-09-04 15:32:12 +02:00

72 lines
2.8 KiB
CMake

cmake_minimum_required(VERSION 3.13)
project(asciicast2webp VERSION 1.0 DESCRIPTION "Render asciicast as WebP"
LANGUAGES CXX)
find_package(PkgConfig REQUIRED)
pkg_check_modules(LIBRARIES REQUIRED
vterm cairo libwebp libwebpmux libjq oniguruma)
pkg_search_module(TERMINFO REQUIRED tinfo ncursesw ncurses)
add_executable(${PROJECT_NAME} ${PROJECT_NAME}.cpp)
target_compile_features(${PROJECT_NAME} PRIVATE cxx_std_20)
target_compile_options(${PROJECT_NAME} PRIVATE
-Wall -Wextra -Wpedantic -Wconversion -Wshadow
${LIBRARIES_CFLAGS_OTHER} ${TERMINFO_CFLAGS_OTHER})
target_include_directories(${PROJECT_NAME} SYSTEM PRIVATE
${LIBRARIES_INCLUDE_DIRS} ${TERMINFO_INCLUDE_DIRS})
target_link_directories(${PROJECT_NAME} PRIVATE
${LIBRARIES_STATIC_LIBRARY_DIRS} ${TERMINFO_STATIC_LIBRARY_DIRS})
target_link_options(${PROJECT_NAME} PRIVATE
${LIBRARIES_STATIC_LDFLAGS_OTHER} ${TERMINFO_STATIC_LDFLAGS_OTHER})
target_link_libraries(${PROJECT_NAME} PRIVATE
${LIBRARIES_STATIC_LIBRARIES} ${TERMINFO_STATIC_LIBRARIES})
include(CTest)
if (BUILD_TESTING)
add_test(
NAME fixture
COMMAND ${CMAKE_COMMAND}
-DPLAYER=$<TARGET_FILE:${PROJECT_NAME}>
-DCAST=${PROJECT_SOURCE_DIR}/tests/fixture.cast
-DOUTPUT=${PROJECT_BINARY_DIR}/fixture.webp
-P ${PROJECT_SOURCE_DIR}/tests/fixture.cmake
)
add_test(
NAME fixture-drop-short
COMMAND ${CMAKE_COMMAND}
-DPLAYER=$<TARGET_FILE:${PROJECT_NAME}>
-DCAST=${PROJECT_SOURCE_DIR}/tests/fixture.cast
-DOUTPUT=${PROJECT_BINARY_DIR}/fixture-drop-short.webp
-DDROP_SHORT=ON
-P ${PROJECT_SOURCE_DIR}/tests/fixture.cmake
)
add_test(
NAME fixture-v3
COMMAND ${CMAKE_COMMAND}
-DPLAYER=$<TARGET_FILE:${PROJECT_NAME}>
-DCAST=${PROJECT_SOURCE_DIR}/tests/fixture-v3.cast
-DOUTPUT=${PROJECT_BINARY_DIR}/fixture-v3.webp
-P ${PROJECT_SOURCE_DIR}/tests/fixture.cmake
)
endif()
include(GNUInstallDirs)
install(TARGETS ${PROJECT_NAME} DESTINATION ${CMAKE_INSTALL_BINDIR})
install(FILES LICENSE DESTINATION ${CMAKE_INSTALL_DOCDIR})
set(CPACK_PACKAGE_VENDOR "Premysl Eric Janouch")
set(CPACK_PACKAGE_CONTACT "Přemysl Eric Janouch <p@janouch.name>")
set(CPACK_RESOURCE_FILE_LICENSE "${PROJECT_SOURCE_DIR}/LICENSE")
set(CPACK_GENERATOR "TGZ")
set(CPACK_PACKAGE_FILE_NAME
"${PROJECT_NAME}-${PROJECT_VERSION}-${CMAKE_SYSTEM_NAME}-${CMAKE_SYSTEM_PROCESSOR}")
set(CPACK_PACKAGE_INSTALL_DIRECTORY "${PROJECT_NAME}-${PROJECT_VERSION}")
set(CPACK_SOURCE_GENERATOR "TGZ;ZIP")
set(CPACK_SOURCE_IGNORE_FILES "/\\\\.git;/build;/CMakeLists.txt.user")
set(CPACK_SOURCE_PACKAGE_FILE_NAME "${PROJECT_NAME}-${PROJECT_VERSION}")
set(CPACK_DEBIAN_PACKAGE_SECTION "utils")
set(CPACK_SET_DESTDIR TRUE)
include(CPack)