Emu?
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 

92 lines
2.0 KiB

cmake_minimum_required(VERSION 3.16)
set(product_name "Plip")
set(gui_name "plip-sdl")
set(lib_name "plip")
project(${gui_name})
set(CMAKE_CXX_STANDARD 17)
find_package(SDL2 REQUIRED)
if(UNIX)
add_compile_definitions(UNIX)
elseif(WIN32)
add_compile_definitions(WIN32)
endif()
###########
# libplip #
###########
include(TestBigEndian)
TEST_BIG_ENDIAN(BIG_ENDIAN)
add_custom_target(
GENERATE_LIB_VERSION_HEADER
COMMAND ${CMAKE_COMMAND}
-Dcmake_root="${CMAKE_CURRENT_SOURCE_DIR}"
-Dsrc_root="${CMAKE_CURRENT_SOURCE_DIR}/libplip"
-DPRODUCT_NAME="${product_name}"
-DBIN_NAME="${lib_name}"
-DVERSION_FILE="PlipVersion.h"
-P "${CMAKE_CURRENT_SOURCE_DIR}/version.cmake"
)
add_library(${lib_name}
libplip/PlipInstance.cpp
libplip/PlipIo.cpp
libplip/PlipUtility.cpp
libplip/Core/PlipCore.cpp
libplip/Core/Chip8/Chip8Instance.cpp
libplip/Cpu/PlipCpu.cpp
libplip/Cpu/Chip8/Chip8.cpp
libplip/Cpu/Chip8/Chip8.Ops.cpp
libplip/Input/PlipInput.cpp
libplip/Input/PlipInputDefinition.cpp
libplip/Memory/PlipMemoryMap.cpp
libplip/Memory/PlipMemoryRam.cpp
libplip/Memory/PlipMemoryRom.cpp
libplip/Video/PlipVideo.cpp
)
if(BIG_ENDIAN)
target_compile_definitions(${lib_name} PRIVATE CORE_BIG_ENDIAN)
endif()
add_dependencies(${lib_name} GENERATE_LIB_VERSION_HEADER)
########
# plip #
########
add_executable(${gui_name}
plip-sdl/main.cpp
plip-sdl/Config.cpp
plip-sdl/SDL/SdlAudio.cpp
plip-sdl/SDL/SdlEvent.cpp
plip-sdl/SDL/SdlWindow.cpp
)
if(UNIX)
target_sources(${gui_name} PRIVATE
plip-sdl/Timer/TimerPosix.cpp
)
else()
target_sources(${gui_name} PRIVATE
plip-sdl/Timer/TimerSdl.cpp
)
endif()
target_include_directories(${gui_name}
PRIVATE ${CMAKE_SOURCE_DIR}/libplip
PUBLIC ${SDL2_INCLUDE_DIRS}
)
target_link_libraries(${gui_name}
plip
${SDL2_LIBRARIES}
)