diff options
Diffstat (limited to 'CMakeLists.txt')
-rw-r--r-- | CMakeLists.txt | 48 |
1 files changed, 48 insertions, 0 deletions
diff --git a/CMakeLists.txt b/CMakeLists.txt new file mode 100644 index 0000000..1c0713b --- /dev/null +++ b/CMakeLists.txt @@ -0,0 +1,48 @@ +cmake_minimum_required(VERSION 3.16) +project(emulator) + +set(CMAKE_CXX_STANDARD 17) +set(CMAKE_CXX_STANDARD_REQUIRED True) +set(CMAKE_C_STANDARD 11) +set(CMAKE_CXX_STANDARD_REQUIRED True) +set(CMAKE_EXPORT_COMPILE_COMMANDS True) +set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wall -Wextra -pedantic -O1") +set(CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS_DEBUG} -fsanitize=address -fno-omit-frame-pointer") +set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall -Wextra -pedantic -Wno-nested-anon-types -O1") +set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fno-exceptions -fno-rtti") # Speed up compilation +set(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} -fsanitize=address -fno-omit-frame-pointer") +set(CMAKE_LINKER_FLAGS_DEBUG "${CMAKE_LINKER_FLAGS_DEBUG} -fsanitize=address -fno-omit-frame-pointer") + +set(emulator_sources + "emulator.c" + ) +set(musashi_m68k_sources + musashi-m68k/m68kcpu.c + musashi-m68k/m68kdasm.c + musashi-m68k/softfloat/softfloat.c + ${CMAKE_CURRENT_BINARY_DIR}/m68kops.c + ) +add_executable(m68kmake musashi-m68k/m68kmake.c) +target_include_directories(m68kmake PRIVATE musashi-m68k) +add_custom_command( + OUTPUT m68kops.c m68kops.h + WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/musashi-m68k + COMMAND ${CMAKE_CURRENT_BINARY_DIR}/m68kmake + ${CMAKE_CURRENT_BINARY_DIR} + DEPENDS + musashi-m68k/m68k_in.c + ${CMAKE_CURRENT_BINARY_DIR}/m68kmake +) +add_library(musashi_m68k OBJECT ${musashi_m68k_sources}) +target_include_directories(musashi_m68k PRIVATE + musashi-m68k + ${CMAKE_CURRENT_BINARY_DIR} + ) + +add_executable(emulator ${emulator_sources}) +target_link_libraries(emulator musashi_m68k) + +include_directories( + . + ) + |