-
Notifications
You must be signed in to change notification settings - Fork 2
Expand file tree
/
Copy pathCMakeLists.txt
More file actions
142 lines (127 loc) · 3.29 KB
/
CMakeLists.txt
File metadata and controls
142 lines (127 loc) · 3.29 KB
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
141
142
cmake_minimum_required(VERSION 3.25)
set(PLATFORM "win" CACHE STRING "Platform")
set(ARCH "x64" CACHE STRING "Arch")
message(STATUS "PLATFORM: ${PLATFORM}")
message(STATUS "ARCH: ${ARCH}")
file(READ src/ppuc_version.h version)
string(REGEX MATCH "PPUC_EXECUTABLE_VERSION_MAJOR[ ]+([0-9]+)" _tmp ${version})
set(VERSION_MAJOR "${CMAKE_MATCH_1}")
string(REGEX MATCH "PPUC_EXECUTABLE_VERSION_MINOR[ ]+([0-9]+)" _tmp ${version})
set(VERSION_MINOR "${CMAKE_MATCH_1}")
string(REGEX MATCH "PPUC_EXECUTABLE_VERSION_PATCH[ ]+([0-9]+)" _tmp ${version})
set(VERSION_PATCH "${CMAKE_MATCH_1}")
project(ppuc_executable VERSION "${VERSION_MAJOR}.${VERSION_MINOR}.${VERSION_PATCH}"
DESCRIPTION "Pinball Power-Up Controller (PPUC)")
if(PLATFORM STREQUAL "win")
if(ARCH STREQUAL "x86")
add_compile_definitions(WIN32)
endif()
elseif(PLATFORM STREQUAL "macos")
if (ARCH STREQUAL "arm64")
set(CMAKE_OSX_ARCHITECTURES arm64)
elseif(ARCH STREQUAL "x64")
set(CMAKE_OSX_ARCHITECTURES x86_64)
endif()
set(CMAKE_BUILD_WITH_INSTALL_RPATH TRUE)
set(CMAKE_INSTALL_RPATH "@executable_path")
elseif(PLATFORM STREQUAL "linux")
set(CMAKE_BUILD_WITH_INSTALL_RPATH TRUE)
set(CMAKE_INSTALL_RPATH "$ORIGIN")
endif()
set(CMAKE_CXX_STANDARD 20)
set(CMAKE_C_STANDARD 99)
set(CMAKE_CXX_VISIBILITY_PRESET hidden)
set(CMAKE_C_VISIBILITY_PRESET hidden)
add_executable(ppuc-pinmame
src/ppuc.cpp
src/VirtualDMD.cpp
src/xbrz/xbrz.cpp
)
target_include_directories(ppuc-pinmame PUBLIC
third-party/include
)
if(PLATFORM STREQUAL "win")
target_link_directories(ppuc-pinmame PUBLIC
third-party/build-libs/${PLATFORM}-${ARCH}
third-party/runtime-libs/${PLATFORM}-${ARCH}
)
if(ARCH STREQUAL "x64")
target_link_libraries(ppuc-pinmame LINK_PUBLIC
pinmame64
ppuc64
dmdutil64
cargs64
SDL364
SDL3_image64
yaml-cpp
ws2_32
)
else()
target_link_libraries(ppuc-pinmame LINK_PUBLIC
pinmame
ppuc
dmdutil
cargs
SDL3
SDL3_image
yaml-cpp
ws2_32
)
endif()
else()
target_link_directories(ppuc-pinmame PUBLIC
third-party/runtime-libs/${PLATFORM}-${ARCH}
)
target_link_libraries(ppuc-pinmame LINK_PUBLIC
pinmame
ppuc
dmdutil
cargs
SDL3
SDL3_image
)
endif()
add_executable(ppuc-backbox
src/backbox.cpp
src/VirtualDMD.cpp
src/xbrz/xbrz.cpp
)
target_include_directories(ppuc-backbox PUBLIC
third-party/include
)
if(PLATFORM STREQUAL "win")
target_link_directories(ppuc-backbox PUBLIC
third-party/build-libs/${PLATFORM}-${ARCH}
third-party/runtime-libs/${PLATFORM}-${ARCH}
)
if(ARCH STREQUAL "x64")
target_link_libraries(ppuc-backbox LINK_PUBLIC
dmdutil64
cargs64
SDL364
SDL3_image64
sockpp64
ws2_32
)
else()
target_link_libraries(ppuc-backbox LINK_PUBLIC
dmdutil
cargs
SDL3
SDL3_image
sockpp
ws2_32
)
endif()
else()
target_link_directories(ppuc-backbox PUBLIC
third-party/runtime-libs/${PLATFORM}-${ARCH}
)
target_link_libraries(ppuc-backbox LINK_PUBLIC
dmdutil
cargs
SDL3
SDL3_image
sockpp
)
endif()