aboutsummaryrefslogtreecommitdiff
path: root/src/CMakeLists.txt
blob: 16c68e1b7adb360a1181a422da6156364a8d34f3 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
project(core)

set (CMAKE_CXX_STANDARD 17)

add_library(core STATIC
	ARCodeFile.cpp
	AREngine.cpp
	ARM.cpp
	ARM_InstrTable.h
	ARMInterpreter.cpp
	ARMInterpreter_ALU.cpp
	ARMInterpreter_Branch.cpp
	ARMInterpreter_LoadStore.cpp
	CP15.cpp
	CRC32.cpp
	DMA.cpp
	DMA_Timings.h
	DSi.cpp
	DSi_AES.cpp
	DSi_Camera.cpp
	DSi_DSP.cpp
	DSi_I2C.cpp
	DSi_NAND.cpp
	DSi_NDMA.cpp
	DSi_NWifi.cpp
	DSi_SD.cpp
	DSi_SPI_TSC.cpp
	FATStorage.cpp
	FIFO.h
	GBACart.cpp
	GPU.cpp
	GPU2D.cpp
	GPU2D_Soft.cpp
	GPU3D.cpp
	GPU3D_Soft.cpp
	melonDLDI.h
	NDS.cpp
	NDSCart.cpp
	NDSCart_SRAMManager.cpp
	Platform.h
	ROMList.h
	FreeBIOS.h
	RTC.cpp
	Savestate.cpp
	SPI.cpp
	SPU.cpp
	types.h
	version.h
	Wifi.cpp
	WifiAP.cpp

	fatfs/diskio.c
	fatfs/ff.c
	fatfs/ffsystem.c
	fatfs/ffunicode.c
	fatfs/ffconf.h
	
	sha1/sha1.c
	tiny-AES-c/aes.c
	xxhash/xxhash.c
)

if (ENABLE_OGLRENDERER)
	target_sources(core PRIVATE
		GPU_OpenGL.cpp
		GPU_OpenGL_shaders.h
		GPU3D_OpenGL.cpp
		GPU3D_OpenGL_shaders.h
		OpenGLSupport.cpp
	)
endif()

if (ENABLE_JIT)
	enable_language(ASM)

	target_sources(core PRIVATE
		ARM_InstrInfo.cpp

		ARMJIT.cpp
		ARMJIT_Memory.cpp

		dolphin/CommonFuncs.cpp
	)

	if (ARCHITECTURE STREQUAL x86_64)
		target_sources(core PRIVATE
			dolphin/x64ABI.cpp
			dolphin/x64CPUDetect.cpp
			dolphin/x64Emitter.cpp

			ARMJIT_x64/ARMJIT_Compiler.cpp
			ARMJIT_x64/ARMJIT_ALU.cpp
			ARMJIT_x64/ARMJIT_LoadStore.cpp
			ARMJIT_x64/ARMJIT_Branch.cpp

			ARMJIT_x64/ARMJIT_Linkage.S
		)
	endif()
	if (ARCHITECTURE STREQUAL ARM64)
		target_sources(core PRIVATE
			dolphin/Arm64Emitter.cpp
			dolphin/MathUtil.cpp

			ARMJIT_A64/ARMJIT_Compiler.cpp
			ARMJIT_A64/ARMJIT_ALU.cpp
			ARMJIT_A64/ARMJIT_LoadStore.cpp
			ARMJIT_A64/ARMJIT_Branch.cpp

			ARMJIT_A64/ARMJIT_Linkage.S
		)
	endif()
endif()

add_subdirectory(teakra EXCLUDE_FROM_ALL)
target_link_libraries(core teakra)


if (ENABLE_OGLRENDERER)
    find_package(PkgConfig REQUIRED)
    pkg_check_modules(EPOXY REQUIRED epoxy)

    target_include_directories(core PRIVATE ${EPOXY_INCLUDE_DIRS})
    if (WIN32)
        target_link_libraries(core ole32 comctl32 ws2_32 ${EPOXY_LIBRARIES})
    elseif (APPLE)
        target_link_libraries(core ${EPOXY_LIBRARIES})
    else()
        target_link_libraries(core rt ${EPOXY_LIBRARIES})
    endif()
else()
	if (WIN32)
		target_link_libraries(core ole32 comctl32 ws2_32)
	else()
		target_link_libraries(core rt)
	endif()
endif()

if (ENABLE_JIT_PROFILING)
	target_link_libraries(core jitprofiling)
endif()