Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
* Fix builds on native Windows Previously, builds would fail with a message stating that there's no such command "true". CMAKE_C[XX]_ARCHIVE_FINISH is not a boolean option, but instead should be a string for how to run ranlib. This simply sets that to the default, but it could instead be removed in the future now that GCC binutils has lto automatically loading. * Add CMake toolchain file for LLVMEmbeddedToolchainForArm * Update linker arguments of both base and GCC-specific toolchain setups This removes the arguments that LLD cannot receive from the base default_build file, and moves them to the GCC-specific toolchain setup. This reformats all linker arguments to allow for CMake to auto-format them depending on the toolchain (clang uses -Xlinker instead of -Wl). * Remove illegal constexpr definitions constexpr cannot take the result of a cast that is equivalent to a reinterpret_cast, as defined by the C++ standard. GCC may allow it, but it's technically illegal and clang errors. * Remove attribute naked Naked is not allowed for functions that contain bodies other than asm functions. Per the GCC docs: "The only statements that can be safely included in naked functions are asm statements that do not have operands. All other statements, including declarations of local variables, if statements, and so forth, should be avoided." GCC silently allows this, but Clang notes this as a hard failure. Instead, the Default_Handler is marked as a generic interrupt, and the Reset_Handler is unmarked due to acting as the executable entrypoint. * Add DAISY_STORAGE configure option This allows for configure-time selection of the linker script used by CMake, either at the command like with -DDAISY_STORAGE=qspi or in libraries that use libDaisy (by defining DAISY_STORAGE before inclusion). * Remove unused variable Squashes 7+ warnings of this due to inclusion by other files. * Splits the monolithic CMakeLists.txt file into a semi-proper structure This separates the massive root CMakeLists.txt file into libraries and places the respective configuration files closer to their source. * Split toolchain into architecture and GNU This ensures that we have architecture-specific configurations in a dedicated file while the LLVM and GNU toolchain files deal with their respective compilers only * Remove unnecessary comparison config_ is never nullptr as it is initialized with the instantiation of a SaiHandle::Impl This allows -Werror to work on GCC. * Fix complications of rebase * Update linkerscripts * Add DaisyProject cmake file and use for default_build * Add missing libraries and source files to CMakeLists * Add CMakeLists for examples * Add CMake config for tests * Fix issues from merge * add toolchain auto-detection * Add patch requirements to .gitattributes * Fix some problems with the autodetection * Add extra tools to GNU toolchain * Work on github actions a bit * Better bin/hex generation (multi-config) * Store TOOLCHAIN_PREFIX in the CMake cache * Change cross-compiling mechanism * Fix SAI warnings * Formatting * Add some comments, move module path adjustment * Build examples as part of CMake CI Build job * Enable verbose build in GitHub Action * Fix silly mistake with missing the GCC config * group examples, add sane optimization defaults * remove weird naming from example targets now that they're grouped * move NDEBUG to standalone and DaisyProject * Separate tests CMake project * Fix merge resolution, toolchain integration * Move system_stm32h7xx.c to static CMSIS Device library * Fix strequal comparison * Fix cmake/DaisyProject.cmake Co-authored-by: Aleksei Savartsov <[email protected]> * Fix compile option propagation; remove semihost * add `-fno-finite-loops` to LLVM toolchain file * Remove hal_map.c from CMakeLists.txt * Update llvm toolchains (ubuntu-latest no longer has libtinfo.so) * Change runtime lib arch for LLVM (see ARM-software/LLVM-embedded-toolchain-for-Arm#482) * Remove support for older LLVM Embedded toolchains * remove -fno-builtin * Update examples CMakeLists.txt, reduce Clang CI expectations --------- Co-authored-by: Aleksei Savartsov <[email protected]>
- Loading branch information