cmake_minimum_required(VERSION 3.11)

set(CMAKE_C_STANDARD 11)
set(CMAKE_C_STANDARD_REQUIRED ON)
set(CMAKE_PROJECT_NAME 6502PC)

project(${CMAKE_PROJECT_NAME})

enable_language(C)

add_executable(${CMAKE_PROJECT_NAME})

target_compile_definitions(${CMAKE_PROJECT_NAME} PRIVATE _POSIX_C_SOURCE=200809L)

if(MSVC)
 target_compile_options(${CMAKE_PROJECT_NAME} PRIVATE /W4) 
else()
  target_compile_options(${CMAKE_PROJECT_NAME} PRIVATE -Wall -Wextra -Wpedantic)
endif()

target_compile_options(${CMAKE_PROJECT_NAME} PRIVATE
    -include ${CMAKE_CURRENT_SOURCE_DIR}/inc/diag.h
)

target_sources(${CMAKE_PROJECT_NAME} PRIVATE
  src/main.c
  src/ram.c
  src/cpu.c
  src/rom.c
  src/mem.c
  src/file.c
  src/screen.c
)

target_include_directories(${CMAKE_PROJECT_NAME} PRIVATE
  "inc"
)