cmake_minimum_required(VERSION 3.16) project(redis_playground LANGUAGES CXX) set(CMAKE_CXX_EXTENSIONS OFF) set(CMAKE_CXX_STANDARD 20) set(CMAKE_CXX_STANDARD_REQUIRED ON) set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -O2") find_package(hiredis CONFIG REQUIRED) add_library(proj_warnings INTERFACE) target_compile_options(proj_warnings INTERFACE -Wall -Werror -Wextra -Wpedantic) add_library(expected INTERFACE src/expected.h) target_link_libraries(expected INTERFACE proj_warnings) add_library(redis INTERFACE src/redis.h) target_link_libraries(redis INTERFACE proj_warnings expected hiredis::hiredis) add_executable(main ./src/main.cc) target_link_libraries(main PRIVATE proj_warnings redis)