72 lines
2.8 KiB
CMake
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)
|