- CPUInstructionSetFlags.cmake: Add more CPU architectures.
- DirInstallPaths.cmake: Set ${TARGET_CPU_ARCH} and add more
CPU architectures.
- FindNETTLE.cmake: Use ${TARGET_CPU_ARCH}.
- SplitDebugInformation.cmake: Add the `mold` workaround.
- options.cmake: Disable split debug by default on macOS.
- platform.cmake: Minor cleanups.
- gcc.cmake: Code coverage cleanup, check for "--no-undefined" and
"--no-allow-shlib-undefined" (but only allow them on Linux),
and check for "-ftree-vectorize".
- msvc.cmake:
- Add: /we4477 /MP /guard:cf /guard:ehcont /permissive-
- On i386 only: /SAFESEH
- Disable /Zc:externC /Zc:noexceptTypes on Clang.
- Disable thread-safe statics only on i386 and amd64.
- win32-gcc.cmake, win32-msvc.cmake:
- Various flag changes.
CMake 3.1 added CMAKE_<LANG>_STANDARD, which allows CMake to determine
what flags are needed to select a particular language version.
Set it to C17 and C++17. Previously, we were using C11 and C++11,
though gcc11 switched the default C++ version to C++17. The custom
macro handled this by not adding flags for C++, but it still added
the C11 flag, which prevented use of C17.
Ported over from rom-properties.
- Changed several macros to functions, e.g. C/C++ language version checks.
- Improved CPU architecture detection.
- Improved LFS detection on some *BSD platforms.
- Preliminary support for Windows on ARM.
- Added toolchain files for i686 and x86_64 MinGW-w64.
We need to check CMAKE_CL_64, not just ${CMAKE_SYSTEM_PROCESSOR}, since
that variable indicates the host system, which is always 64-bit
regardless of the target architecture.
Copied from rom-properties commit 7a6793922a5da7a404ecd9ddc128eeb7c7d69b46.
Otherwise, it assumes a default return value of 'int' for
reader_plain_open(), which crashes on 64-bit.
[cmake] platform/gcc.cmake: Added -Werror=implicit-function-declaration
to prevent this from happening again.
Currently only supports AES-128-CBC, which is used by Wii discs for the
encrypted title key and encrypted sectors. Backends are the same as for
RSA: GNU Nettle and Microsoft CryptoAPI. (Actually, the RSA signature
decryption uses GMP, but Nettle uses GMP also.)
[cmake] win32-gcc.cmake: Minimum version is now XP due to the use of
CryptoAPI's AES functionality.
c_std_99 was added in CMake 3.8, which is a fairly recent version.
Ubuntu 17.04 has CMake 3.9, but 16.10 has 3.7.2. Hence, we shouldn't
use it in order to remain compatible with at least Ubuntu 16.04 LTS.
- win32-msvc.cmake: Fix copy/paste errors from GCN MemCard Recover.
- stdbool.h was added in MSVC 2013, so define the boolean types manually
if it isn't available.
- MSVC 2010 doesn't support C99, so we have to declare variables at the
beginning of blocks.
- main() needs to be __cdecl. (Or, I could remove the /Gz option I added
to rom-properties in order to reduce the binary size a bit, but I'd
rather keep that in.)
This program will allow for managing Nintendo RVT-H Reader devkits,
including dumping existing images and installing new images.
The current version doesn't actually do anything. It's mostly a copy
of the infrastructure from rom-properties, with some changes. In
particular, we're using CMake's TARGET_COMPILE_FEATURES() instead of
manually detecting C99 support.