set(CMAKE_ASM_COMPILER_TARGET "armv7m-none-eabi" CACHE STRING "") set(CMAKE_CXX_COMPILER_TARGET "armv7m-none-eabi" CACHE STRING "") set(CMAKE_CXX_FLAGS "-mfloat-abi=soft" CACHE STRING "") set(CMAKE_C_COMPILER_TARGET "armv7m-none-eabi" CACHE STRING "") set(CMAKE_C_FLAGS "-mfloat-abi=soft" CACHE STRING "") set(CMAKE_SYSTEM_NAME Generic CACHE STRING "") set(CMAKE_TRY_COMPILE_TARGET_TYPE STATIC_LIBRARY CACHE STRING "") set(COMPILER_RT_BAREMETAL_BUILD ON CACHE BOOL "") set(COMPILER_RT_BUILD_LIBFUZZER OFF CACHE BOOL "") set(COMPILER_RT_BUILD_PROFILE OFF CACHE BOOL "") set(COMPILER_RT_BUILD_SANITIZERS OFF CACHE BOOL "") set(COMPILER_RT_BUILD_XRAY OFF CACHE BOOL "") set(COMPILER_RT_DEFAULT_TARGET_ONLY ON CACHE BOOL "") set(LIBCXXABI_BAREMETAL ON CACHE BOOL "") set(LIBCXXABI_ENABLE_ASSERTIONS OFF CACHE BOOL "") set(LIBCXXABI_ENABLE_EXCEPTIONS ON CACHE BOOL "") set(LIBCXXABI_ENABLE_SHARED OFF CACHE BOOL "") set(LIBCXXABI_ENABLE_STATIC ON CACHE BOOL "") set(LIBCXXABI_ENABLE_STATIC_UNWINDER ON CACHE BOOL "") set(LIBCXXABI_ENABLE_THREADS OFF CACHE BOOL "") set(LIBCXXABI_USE_COMPILER_RT ON CACHE BOOL "") set(LIBCXX_ENABLE_EXCEPTIONS ON CACHE BOOL "") set(LIBCXX_ENABLE_FILESYSTEM OFF CACHE STRING "") set(LIBCXX_ENABLE_MONOTONIC_CLOCK OFF CACHE BOOL "") set(LIBCXX_ENABLE_RANDOM_DEVICE OFF CACHE BOOL "") set(LIBCXX_ENABLE_RTTI ON CACHE BOOL "") set(LIBCXX_ENABLE_SHARED OFF CACHE BOOL "") set(LIBCXX_ENABLE_STATIC ON CACHE BOOL "") set(LIBCXX_ENABLE_THREADS OFF CACHE BOOL "") set(LIBCXX_ENABLE_WIDE_CHARACTERS OFF CACHE BOOL "") set(LIBCXX_INCLUDE_BENCHMARKS OFF CACHE BOOL "") # Long tests are prohibitively slow when run via emulation. set(LIBCXX_TEST_PARAMS "long_tests=False" CACHE STRING "") set(LIBCXX_USE_COMPILER_RT ON CACHE BOOL "") set(LIBUNWIND_ENABLE_SHARED OFF CACHE BOOL "") set(LIBUNWIND_ENABLE_STATIC ON CACHE BOOL "") set(LIBUNWIND_ENABLE_THREADS OFF CACHE BOOL "") set(LIBUNWIND_IS_BAREMETAL ON CACHE BOOL "") set(LIBUNWIND_REMEMBER_HEAP_ALLOC ON CACHE BOOL "") set(LIBUNWIND_USE_COMPILER_RT ON CACHE BOOL "") find_program(QEMU_SYSTEM_ARM qemu-system-arm REQUIRED) # On embedded platforms that don't support shared library targets, CMake implicitly changes shared # library targets to be static library targets. This results in duplicate definitions of the static # library targets even though we might not ever build the shared library target, which breaks the # build. To work around this, we change the output name of the shared library target so that it # can't conflict with the static library target. # # This is tracked by https://gitlab.kitware.com/cmake/cmake/-/issues/25759. set(LIBCXX_SHARED_OUTPUT_NAME "c++-shared" CACHE STRING "") set(LIBCXXABI_SHARED_OUTPUT_NAME "c++abi-shared" CACHE STRING "") set(LIBUNWIND_SHARED_OUTPUT_NAME "unwind-shared" CACHE STRING "")