cmake_minimum_required(VERSION 3.16) project(emulator LANGUAGES CXX) set(CMAKE_CXX_STANDARD 17) set(CMAKE_CXX_STANDARD_REQUIRED ON) set(CMAKE_CXX_EXTENSIONS OFF) if(NOT CMAKE_BUILD_TYPE) set(CMAKE_BUILD_TYPE Release CACHE STRING "Build type" FORCE) endif() option(EMULATOR_BUILD_TESTS "Build unit tests" OFF) find_package(SDL2 REQUIRED) find_package(SDL2_image REQUIRED) add_executable(emulator src/main.cpp src/emulator.cpp ) target_include_directories(emulator PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}/src ) target_link_libraries(emulator PRIVATE SDL2::SDL2 SDL2_image::SDL2_image ) if(MSVC) target_compile_options(emulator PRIVATE /W4 /permissive-) else() target_compile_options(emulator PRIVATE -Wall -Wextra -Wpedantic) endif() if(EMULATOR_BUILD_TESTS) enable_testing() add_subdirectory(tests) endif()