33 lines
935 B
CMake
33 lines
935 B
CMake
cmake_minimum_required(VERSION 3.25)
|
|
project(GameBoy++)
|
|
set(CMAKE_CXX_STANDARD 23)
|
|
set(CMAKE_EXPORT_COMPILE_COMMANDS ON)
|
|
|
|
find_package(SDL2 REQUIRED)
|
|
include_directories(${SDL2_INCLUDE_DIRS})
|
|
|
|
add_executable(GameBoy++ src/main.cpp
|
|
src/gameboy.cpp
|
|
src/opcodeResolver.cpp
|
|
src/interupts.cpp
|
|
src/ppu.cpp
|
|
src/timing.cpp
|
|
src/extendedOpcodeResolver.cpp
|
|
src/mbc.cpp
|
|
src/addressSpace.cpp
|
|
src/addressSpace.hpp
|
|
src/testing.hpp
|
|
src/joypad.cpp
|
|
)
|
|
target_link_libraries(GameBoy++ ${SDL2_LIBRARIES})
|
|
|
|
if(CMAKE_EXPORT_COMPILE_COMMANDS)
|
|
add_custom_target(copy_compile_commands ALL
|
|
COMMAND ${CMAKE_COMMAND} -E copy_if_different
|
|
${CMAKE_BINARY_DIR}/compile_commands.json
|
|
${CMAKE_SOURCE_DIR}/compile_commands.json
|
|
DEPENDS ${CMAKE_BINARY_DIR}/compile_commands.json
|
|
COMMENT "Copying compile_commands.json to project root")
|
|
endif()
|
|
|