You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: README.md
+29-7Lines changed: 29 additions & 7 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -78,20 +78,40 @@ Compatible means it is capable of playing discs.
78
78
79
79
## How to build
80
80
81
-
You need a compiler that supports C++20 and wxWidgets 3.1.
81
+
You need a compiler that supports C++23 and wxWidgets 3.2.
82
+
83
+
When cloning the repo, make sure you clone the submodules too (`git clone --recurse-submodules https://github.com/Stovent/CeDImu`).
82
84
83
85
### Build macros
84
86
85
-
`ENABLE_LOG`: if defined, allows the library to print some messages in the console and the use of OnLogMemoryAccess callback (default: `OFF`).
87
+
CeDImu (the frontend) and libCeDImu (the emulation core) accepts the following macros:
88
+
89
+
`LIBCEDIMU_ENABLE_LOG`: if defined, allows the library to print some messages in the console and the use of OnLogMemoryAccess callback.
86
90
87
-
The official build of CeDImu always enables it.
91
+
`LIBCEDIMU_ENABLE_RENDERERSIMD`: if on, uses the hardware-accelerated SIMD renderer. Requires the C++ header `<experimental/simd>`.
88
92
89
93
### CMake
90
94
91
95
#### CMake options
92
96
97
+
The CMake options below controls how to build CeDImu and the build macros listed upper.
98
+
99
+
`LIBCEDIMU_ENABLE_LOG`: see section `Build macros` (default: `ON`). The official build of CeDImu always enables it.
100
+
101
+
`LIBCEDIMU_ENABLE_RENDERERSIMD`: builds and uses the SIMD renderer, see section `Build macros` (default: `OFF`).
102
+
103
+
`LIBCEDIMU_PROFILE_GNU`: if true, adds profiling arguments to GCC (clang/MSVC not supported) (default: `OFF`).
104
+
105
+
`LIBCEDIMU_ENABLE_ASAN`: if true, uses address sanitizer for GCC and clang (MSVC not yet supported) (default: `OFF`).
106
+
93
107
`CEDIMU_BUILD_CDITOOL`: If ON, builds the little `cditool` program (Linux only, requires libcdio) (default: `OFF`).
94
108
109
+
`CEDIMU_BENCHMARKS`: if ON, builds the benchmarks (default: `OFF`).
110
+
111
+
`CEDIMU_TESTS`: If ON, builds the unit tests (requires Catch2 cloned) (default: `ON`).
112
+
113
+
`CEDIMU_TESTS_ASAN`: If ON, builds the unit tests with address sanitizer options (default: `OFF`).
114
+
95
115
`CEDIMU_ENABLE_LTO`: If ON, compiles the executable with link-time optimisations (default: `ON`).
96
116
97
117
#### Windows
@@ -118,7 +138,7 @@ First install cmake and wxWidgets-3.1 (or later).
118
138
119
139
With apt the command is: `sudo apt install cmake libwxgtk3.2-dev`
120
140
121
-
Install the dependency, then open a terminal in the root directory of the git and type:
141
+
Install the dependency, then open a terminal in the root directory of the repo and type:
122
142
123
143
```sh
124
144
cmake -B build -DCMAKE_BUILD_TYPE=Release
@@ -129,16 +149,18 @@ The executable will be in the `build` directory.
129
149
130
150
#### macOS
131
151
132
-
Package dependency: `wxwidgets` and `cmake` (e.g. if using brew run: `brew install wxwidgets cmake`). Also make sure to have Xcode or just it's Command Line Tools installed.
152
+
Package dependency: `wxwidgets`, `cmake` and `llvm` (e.g. if using brew run: `brew install wxwidgets cmake llvm`). Also make sure to have Xcode or just it's Command Line Tools installed.
153
+
154
+
LLVM clang is used to build because AppleClang lacks recent features.
133
155
134
156
For keyboard input to work properly, enable 'Keyboard Navigation' in macOS. See this [support article](https://support.apple.com/en-us/HT204434#fullkeyboard).
135
157
136
-
Open a terminal in the root directory of the git and type:
158
+
Open a terminal in the root directory of the repo and type:
0 commit comments