diff --git a/riscv32-toolchain.cmake b/riscv32-toolchain.cmake index 2683501..e67baf7 100644 --- a/riscv32-toolchain.cmake +++ b/riscv32-toolchain.cmake @@ -25,6 +25,9 @@ set(DEBUG_BINARY 1) set(CMAKE_SYSTEM_VERSION 1) +# Without this flag, CMake is unable to pass the test compilation check +set(CMAKE_TRY_COMPILE_TARGET_TYPE STATIC_LIBRARY) + # This logic checks the operating system. if(${CMAKE_HOST_SYSTEM_NAME} STREQUAL "FreeBSD") @@ -32,6 +35,7 @@ if(${CMAKE_HOST_SYSTEM_NAME} STREQUAL "FreeBSD") set(NEWLIB /usr/local/riscv/riscv32-unknown-elf/include) set(CMAKE_C_COMPILER riscv32-unknown-elf-gcc) set(CMAKE_CXX_COMPILER riscv32-unknown-elf-g++) + set(CMAKE_ASM_COMPILER riscv32-unknown-elf-gcc) set(CMAKE_FIND_ROOT_PATH /usr/local/riscv/) # Without these two lines it freaks out. @@ -43,6 +47,7 @@ elseif(${CMAKE_HOST_SYSTEM_NAME} STREQUAL "Linux") set(NEWLIB /opt/riscv/riscv32-unknown-elf/include) set(CMAKE_C_COMPILER riscv32-unknown-elf-gcc) set(CMAKE_CXX_COMPILER riscv32-unknown-elf-g++) + set(CMAKE_ASM_COMPILER riscv32-unknown-elf-gcc) # Without these two lines it freaks out. set(CMAKE_C_STANDARD_COMPUTED_DEFAULT GNU) @@ -111,10 +116,13 @@ set(C_FLAGS_ARCH "\ # They print out from the messages just fine, but they are ignored. UNSET(CMAKE_C_FLAGS CACHE) +UNSET(CMAKE_CXX_FLAGS CACHE) # I'm appending to the existing cflags from the cmake file in the root dir. -#set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${C_FLAGS_ARCH} ${OBJECT_GEN_FLAGS}") -#set(CMAKE_C_FLAGS_INIT "${CMAKE_C_FLAGS} ${C_FLAGS_ARCH} ${OBJECT_GEN_FLAGS}" CACHE STRING "" FORCE) +set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${C_FLAGS_ARCH} ${OBJECT_GEN_FLAGS}") +set(CMAKE_CXX_FLAGS "${CMAKE_C_FLAGS} ${C_FLAGS_ARCH} ${OBJECT_GEN_FLAGS}") +set(CMAKE_C_FLAGS_INIT "${CMAKE_C_FLAGS} ${C_FLAGS_ARCH} ${OBJECT_GEN_FLAGS}" CACHE STRING "" FORCE) +set(CMAKE_CXX_FLAGS_INIT "${CMAKE_CXX_FLAGS} ${C_FLAGS_ARCH} ${OBJECT_GEN_FLAGS}" CACHE STRING "" FORCE) #-------------------