aboutsummaryrefslogtreecommitdiff
path: root/src/CMakeLists.txt
blob: dc32b2aa0dba9015df33685a1e4b55a26f6c5d58 (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
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
	Config.cpp
	CP15.cpp
	CRC32.cpp
	DMA.cpp
	DSi.cpp
	DSi_AES.cpp
	DSi_Camera.cpp
	DSi_I2C.cpp
	DSi_NDMA.cpp
	DSi_NWifi.cpp
	DSi_SD.cpp
	DSi_SPI_TSC.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
	RTC.cpp
	Savestate.cpp
	SPI.cpp
	SPU.cpp
	types.h
	version.h
	Wifi.cpp
	WifiAP.cpp

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

if (APPLE)
        target_include_directories(core PUBLIC /usr/local/include /opt/homebrew/include)
        target_link_directories(core PUBLIC /usr/local/lib /opt/homebrew/lib)
endif()

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