Files
FEX-Emu--FEX/FEXHeaderUtils/CMakeLists.txt
T
crueter 872aec20b8 [cmake] more parenthesis cleanups, linker gc module, more same-line stuff
I may have gotten carried away.

- I missed some stuff for end parenthesis because I accidentally
  searched within project files instead of the entire directory (so some
  thunk/test/windows stuff was missed), cleaned those up.
- `INTERFACE`, `PUBLIC`, `PRIVATE`, `RUNTIME`, `LIBRARY` should be on
  the same line as the target name. (I should really invest in making a
  style guide...)
- Some short statements were unnecessarily split across multiple
  lines--cleaned those up
- Made a common `LinkerGC` module that applies gc-sections etc. to a
  target in Release mode
- Usually for functions you want to have something on the first line,
  e.g. `FILES`/`DIRECTORY` for install, or the target/a positional
  argument, etc etc. Not always though, notably for some custom_command
  calls

TODO:
- What's with the `list(APPEND LIBS...)` stuff? It's used really
  inconsistently, sometimes not at all, sometimes it looks like there're
  duplicates? A more thorough cleanup is in order there.

Signed-off-by: crueter <crueter@eden-emu.dev>
2025-12-29 15:44:18 -05:00

60 lines
1.5 KiB
CMake

add_library(FEXHeaderUtils INTERFACE)
# Check for syscall support here
check_cxx_source_compiles("
#include <sched.h>
int main() {
return ::getcpu(nullptr, nullptr);
}"
HAS_SYSCALL_GETCPU)
if (HAS_SYSCALL_GETCPU)
message(STATUS "Has getcpu helper")
target_compile_definitions(FEXHeaderUtils INTERFACE HAS_SYSCALL_GETCPU=1)
endif()
check_cxx_source_compiles("
#include <unistd.h>
int main() {
return ::gettid();
}"
HAS_SYSCALL_GETTID)
if (HAS_SYSCALL_GETTID)
message(STATUS "Has gettid helper")
target_compile_definitions(FEXHeaderUtils INTERFACE HAS_SYSCALL_GETTID=1)
endif()
check_cxx_source_compiles("
#include <signal.h>
int main() {
return ::tgkill(0, 0, 0);
}"
HAS_SYSCALL_TGKILL)
if (HAS_SYSCALL_TGKILL)
message(STATUS "Has tgkill helper")
target_compile_definitions(FEXHeaderUtils INTERFACE HAS_SYSCALL_TGKILL=1)
endif()
check_cxx_source_compiles("
#include <sys/stat.h>
int main() {
return ::statx(0, nullptr, 0, 0, nullptr);
}"
HAS_SYSCALL_STATX)
if (HAS_SYSCALL_STATX)
message(STATUS "Has statx helper")
target_compile_definitions(FEXHeaderUtils INTERFACE HAS_SYSCALL_STATX=1)
endif()
check_cxx_source_compiles("
#include <stdio.h>
int main() {
return ::renameat2(0, nullptr, 0, nullptr, 0);
}"
HAS_SYSCALL_RENAMEAT2)
if (HAS_SYSCALL_RENAMEAT2)
message(STATUS "Has renameat2 helper")
target_compile_definitions(FEXHeaderUtils INTERFACE HAS_SYSCALL_RENAMEAT2=1)
endif()
target_include_directories(FEXHeaderUtils INTERFACE .)