Files
Xenia-Canary/src/xenia/base
Herman S. 57c4051eca [macOS] Build infrastructure and portability fixes
Build system:
- Enable ObjC++, macOS deployment target, framework linking
- Fix AppleClang detection
- macOS platform name for output directories
- Skip Vulkan on macOS, null graphics without Vulkan dependency
- macOS SDL2 framework detection and discord-rpc macOS sources

Portability fixes:
- mach_absolute_time for macOS tick counting
- _NSGetExecutablePath for macOS
- guard MAP_FIXED_NOREPLACE, ftruncate64->ftruncate
- guard Vulkan include/usage, fix data root for all POSIX
2026-03-27 02:44:00 +09:00
..
2025-07-19 14:42:21 -07:00
2025-07-19 14:42:21 -07:00
2020-04-07 16:09:41 -05:00
2022-04-26 13:56:11 -05:00
2025-12-22 10:00:52 +01:00
2025-07-19 14:42:21 -07:00
2025-07-19 14:42:21 -07:00
2015-08-07 21:29:03 -07:00
2025-07-19 14:42:21 -07:00
2025-07-19 14:42:21 -07:00
2025-07-19 14:42:21 -07:00
2025-07-19 14:42:21 -07:00
2020-04-07 16:09:41 -05:00
2025-07-19 14:42:21 -07:00
2020-04-07 16:09:41 -05:00
2025-05-29 09:00:14 +02:00
2025-05-29 09:00:14 +02:00
2025-07-19 14:42:21 -07:00
2025-07-19 14:42:21 -07:00
2025-07-19 14:42:21 -07:00
2025-07-19 14:42:21 -07:00
2020-04-07 16:09:41 -05:00
2025-07-19 14:42:21 -07:00
2025-07-19 14:42:21 -07:00
2024-12-26 23:42:31 +01:00
2025-07-19 14:42:21 -07:00
2022-04-26 13:56:11 -05:00
2025-07-19 14:42:21 -07:00
2020-12-08 22:31:09 +03:00

A lightweight cross-platform/compiler compatibility library.

This library presupposes C++11/14 support. As more compilers get C++14 it will assume that.

Other parts of the project use this to avoid creating spaghetti linkage. Code specific to the emulator should be kept out, as not all of the projects that depend on this need it.

Where possible, C++11/14 STL should be used instead of adding any code in here, and the code should be kept as small as possible (by reusing STL/etc). Third party dependencies should be kept to a minimum.

Target compilers:

  • MSVC++ 2013+
  • Clang 3.4+
  • GCC 4.8+.

Target platforms:

  • Windows 8+ (_win.cc suffix)
  • Mac OSX 10.9+ (_mac.cc suffix, falling back to _posix.cc)
  • Linux ? (_posix.cc suffix)

Avoid the use of platform-specific #ifdefs and instead try to put all platform-specific code in the appropriately suffixed cc files.