blob: 9ffffedecdeb21fcdc9a325d11077bb5a888b887 [file] [log] [blame]
swissChili6c61a792020-07-28 16:29:20 -07001cmake_minimum_required(VERSION 3.0)
2
3project(6502 VERSION 0.1.0 LANGUAGES C)
4
5option(GEN_INSTRUCTIONS_HEADER ON)
swissChili97b5d8b2020-08-15 20:00:54 -07006option(BUILD_ASSEMBLER ON)
swissChili6c61a792020-07-28 16:29:20 -07007
swissChilidbbd5402020-08-07 15:07:39 -07008include_directories(nuklear)
9
swissChilidab15a62020-08-17 15:41:27 -070010include(TestBigEndian)
11test_big_endian(BIG_ENDIAN)
12
13if (${BIG_ENDIAN})
14 add_compile_definitions(BIG_ENDIAN)
15else()
16 add_compile_definitions(LITTLE_ENDIAN)
17endif()
18
swissChili97b5d8b2020-08-15 20:00:54 -070019subdirs(as)
20
swissChili6c61a792020-07-28 16:29:20 -070021if (${GEN_INSTRUCTIONS_HEADER})
22 add_custom_command(
23 OUTPUT instructions.h
24 DEPENDS csv2h.awk 6502.csv
25 COMMAND awk -f csv2h.awk 6502.csv > instructions.h
26 WORKING_DIRECTORY ${CMAKE_SOURCE_DIR})
27endif()
28
swissChili6a923012020-08-18 17:47:27 -070029find_library(readline SDL2 GL GLU GLEW m rt pthread)
30
swissChilib71e0272020-08-08 15:56:14 -070031add_executable(6502 main.c cpu.c cpu.h dbg.c dbg.h
32 instructions.h gui.h gui.c screen.h screen.c common.h common.c)
swissChilic6b4f7e2020-08-09 16:36:36 -070033target_link_libraries(6502 readline SDL2 GL GLU GLEW m rt pthread)
swissChili6a923012020-08-18 17:47:27 -070034
swissChiliabccdfc2021-01-08 21:39:12 -080035install(TARGETS 6502 RUNTIME DESTINATION bin)
swissChili6a923012020-08-18 17:47:27 -070036
37set(CPACK_GENERATOR "DEB")
38set(CPACK_DEBIAN_PACKAGE_MAINTAINER "swissChili")
39set(CPACK_DEBIAN_PACKAGE_DEPENDS "libsdl2-dev, libreadline-dev, libglew-dev")
40set(CPACK_PACKAGE_DESCRIPTION_SUMMARY "6502 emulator, debugger, and assembler")
41set(CPACK_PACKAGE_VERSION_MAJOR 0)
42set(CPACK_PACKAGE_VERSION_MINOR 1)
43set(CPACK_PACKAGE_VERSION_PATCH 0)
44set(CPACK_PACKAGE_FILE_NAME "6502")
45
46include(CPack)