game/mario/CMakeLists.txt

63 lines
1.6 KiB
CMake
Raw Normal View History

2021-08-04 22:33:55 +00:00
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})