[CMAKE] Search the PATH for the compilers and cache the results We are deliberately using a macro here instead of REQUIRED parameter because it is available only in CMake 3.18+, so it won't work with CMake version that is being shipped with RosBE. On my dev box the RosBE tools are only in the PATH when needed. Since my IDE inherits the PATH from the system and not from my shell, I needed to be able to run configure.sh with the tools in my PATH and then be able to successfully reconfigure when building from a "regular" command prompt.
[CMAKE] Cache compiler paths to make some utilities happy VS code being one of them
[CMAKE] Rely less on CMAKE_BUILD_TYPE variable Having conditional statements with CMAKE_BUILD_TYPE is an antipattern See https://stackoverflow.com/questions/66079007/having-conditional-statements-on-build-type-variable-a-good-design We use both single- and multi-config generators (Ninja and VS), so we can't really rely on CMAKE_BUILD_TYPE, because it's not always set. This commit alters some conditional flags to use <$CONFIG:...> generator expression, but is still not complete. Also, our default optimization level (4) now has what was always a de-facto flags
[CMAKE] Require ARCH variable to be specified explicitly Also, use CMAKE_TRY_COMPILE_PLATFORM_VARIABLES in toolchain files to solve issues with ARCH not being passed during try_compile
[CMAKE] Make cmake use static libraries for testing the compiler
[CMAKE] Honor CMAKE_EXE_LINKER_FLAGS_INIT in GCC build
|CMAKE] Use RULE_LAUNCH_COMPILE property to handle ccache
[CMAKE] Remove obsolete '_ROSBE_VERSION' checks following upgrade to RosBE (2.1 and now) 2.2.
[FORMATTING] [CMAKE] Remove space in 'if (' (#2847)
[CMAKE] Use modules instead of shared libraries There is no need to compile our DLLs as shared libraries since we are managing symbols exports and imports through spec files. On my system, this reduces the configure-time by a factor of two.
[CMAKE] Set CMAKE_OBJCOPY unconditionnally
CORE-14513 [CMAKE] Remove modules that are shipped with cmake (#575) * Remove unused cmake modules - Both are unedited versions of modules provided by cmake itself * Remove Compiler/GNU.cmake - Only chang was various _INIT flags, which are handled via CMAKE_USER_MAKE_RULES_OVERRIDE instead * Remove Platform/Windows.cmake - There's no clear explination for this file being in reactos and is simply an old version of the one in cmake * Remove Platform/Windows-MSVC.cmake - _INIT variable changes moved to overrides-msvc.cmake Remove /implib from link commands * Remove CMakeDetermineASMCompiler.cmake - Only change from 3.2 is the addition of a compiler list for the generic ASM dialect, but toolchain files explicitly set a compiler so the list is never used
Git conversion: Make reactos the root directory, move rosapps, rostests, wallpapers into modules, and delete rossubsys.