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=$ -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=$ -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=$ -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 ") 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)