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) include(ExternalProject) 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 ) set(SDLPPDir ${CMAKE_CURRENT_SOURCE_DIR}/../sdlpp) add_library(sdlpp STATIC IMPORTED) set_target_properties(sdlpp PROPERTIES IMPORTED_LOCATION libsdlpp.a ) ExternalProject_Add(sdlpp_external SOURCE_DIR ${SDLPPDir} CONFIGURE_COMMAND "" BUILD_COMMAND make libsdlpp.a BUILD_IN_SOURCE 1 INSTALL_COMMAND install -m 644 "${SDLPPDir}/libsdlpp.a" ${CMAKE_CURRENT_BINARY_DIR} ) 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) target_link_libraries(editor PRIVATE sdlpp) target_link_libraries(mario PRIVATE SDL2 SDL2_image SDL2_gfx SDL2_ttf Threads::Threads) target_link_libraries(editor PRIVATE 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})