cmake_minimum_required(VERSION 3.10)
set(CMAKE_CXX_STANDARD 14)
set(CMAKE_CXX_STANDARD_REQUIRED True)
set(CMAKE_EXPORT_COMPILE_COMMANDS ON)
enable_language(CXX)

set(THREADS_PREFER_PTHREAD_FLAG ON)
find_package(Threads REQUIRED)

project(Mario)

list(APPEND CommonFiles
    global_vars.cpp
    sprites.cpp
    maploader.cpp
    mapobject.cpp
    blocks/simpleblocks.cpp
    mario.cpp
    blocks.cpp
    )

add_subdirectory(../sdlpp sdlpp)

add_executable(mario
    ${CommonFiles}
    main.cpp
    visitors/mario_visitor.cpp
    visitors/bounce_visitor.cpp
    visitors/visitor_generator.cpp
    blocks/coinblock.cpp
    )

add_executable(editor
    ${CommonFiles}
    blocks/coineditorblock.cpp
    editor.cpp
    edit_box.cpp
    tool_box.cpp
    editor_visitor.cpp
    )

target_compile_definitions(editor PUBLIC EDITOR)

target_link_libraries(mario PRIVATE sdlpp SDL2 SDL2_image SDL2_gfx SDL2_ttf Threads::Threads)
target_link_libraries(editor PRIVATE sdlpp SDL2 SDL2_image SDL2_gfx SDL2_ttf Threads::Threads)

file(COPY ${CMAKE_CURRENT_SOURCE_DIR}/testfont.ttf ${CMAKE_CURRENT_SOURCE_DIR}/sprites DESTINATION ${CMAKE_CURRENT_BINARY_DIR})
