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
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} |
|
)
|
|
|