diff --git a/CMakeLists.txt b/CMakeLists.txt index 63b2138e..dc11c43e 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -31,7 +31,7 @@ # CMake project definitions # ============================================================================== cmake_minimum_required(VERSION 3.16.0) -project(ot-efr32 VERSION 1.0.0) +project(ot-efr32 VERSION 1.0.0 LANGUAGES C CXX ASM) set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY ${PROJECT_BINARY_DIR}/lib) set(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${PROJECT_BINARY_DIR}/lib) set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${PROJECT_BINARY_DIR}/bin) diff --git a/slc/exporter_templates/platform_library/CMakeLists.txt.jinja b/slc/exporter_templates/platform_library/CMakeLists.txt.jinja index e211d2e8..8f6cf25f 100644 --- a/slc/exporter_templates/platform_library/CMakeLists.txt.jinja +++ b/slc/exporter_templates/platform_library/CMakeLists.txt.jinja @@ -88,19 +88,12 @@ target_include_directories({{PROJECT_NAME}} PRIVATE # ============================================================================== target_sources({{PROJECT_NAME}} PRIVATE {%- for source in NON_MBEDTLS_SOURCES %} - {%- if source.endswith('.c') or source.endswith('.cpp') or source.endswith('.h') or source.endswith('.hpp') %} + {%- if source.endswith('.c') or source.endswith('.cpp') or source.endswith('.h') or source.endswith('.hpp') or source.endswith('.s') or source.endswith('.S') %} {{source}} {%- endif %} {%- endfor %} ) -{%- for source in NON_MBEDTLS_SOURCES %} - {%- if source.endswith('.s') or source.endswith('.S') %} -target_sources({{PROJECT_NAME}} PRIVATE {{source}}) -set_property(SOURCE {{source}} PROPERTY LANGUAGE C) - {%- endif %} -{%- endfor %} - # ============================================================================== # Compile definitions # ============================================================================== diff --git a/src/arm-none-eabi.cmake b/src/arm-none-eabi.cmake deleted file mode 100644 index 9f2e385f..00000000 --- a/src/arm-none-eabi.cmake +++ /dev/null @@ -1,51 +0,0 @@ -# -# Copyright (c) 2021, The OpenThread Authors. -# All rights reserved. -# -# Redistribution and use in source and binary forms, with or without -# modification, are permitted provided that the following conditions are met: -# 1. Redistributions of source code must retain the above copyright -# notice, this list of conditions and the following disclaimer. -# 2. Redistributions in binary form must reproduce the above copyright -# notice, this list of conditions and the following disclaimer in the -# documentation and/or other materials provided with the distribution. -# 3. Neither the name of the copyright holder nor the -# names of its contributors may be used to endorse or promote products -# derived from this software without specific prior written permission. -# -# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" -# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE -# ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE -# LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR -# CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF -# SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS -# INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN -# CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) -# ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE -# POSSIBILITY OF SUCH DAMAGE. -# - -set(CMAKE_SYSTEM_NAME Generic) -set(CMAKE_SYSTEM_PROCESSOR ARM) - -set(CMAKE_C_COMPILER arm-none-eabi-gcc) -set(CMAKE_CXX_COMPILER arm-none-eabi-g++) -set(CMAKE_ASM_COMPILER arm-none-eabi-as) -set(CMAKE_RANLIB arm-none-eabi-ranlib) - -execute_process(COMMAND ${CMAKE_CXX_COMPILER} -dumpversion OUTPUT_VARIABLE COMPILER_VERSION OUTPUT_STRIP_TRAILING_WHITESPACE) - -set(COMMON_C_FLAGS "-mcpu=cortex-m4 -mfpu=fpv4-sp-d16 -mfloat-abi=softfp -mthumb -fdata-sections -ffunction-sections") - -set(CMAKE_C_FLAGS_INIT "${COMMON_C_FLAGS} -std=c99") -set(CMAKE_CXX_FLAGS_INIT "${COMMON_C_FLAGS} -fno-exceptions -fno-rtti") -set(CMAKE_EXE_LINKER_FLAGS_INIT "${COMMON_C_FLAGS} -specs=nano.specs -specs=nosys.specs") - -set(CMAKE_C_FLAGS_DEBUG "-Og -g") -set(CMAKE_CXX_FLAGS_DEBUG "-Og -g") -set(CMAKE_ASM_FLAGS_DEBUG "-g") - -set(CMAKE_C_FLAGS_RELEASE "-Os") -set(CMAKE_CXX_FLAGS_RELEASE "-Os") -set(CMAKE_ASM_FLAGS_RELEASE "") diff --git a/src/efr32mg1/arm-none-eabi.cmake b/src/efr32mg1/arm-none-eabi.cmake index 9f2e385f..543c7ac4 100644 --- a/src/efr32mg1/arm-none-eabi.cmake +++ b/src/efr32mg1/arm-none-eabi.cmake @@ -31,7 +31,7 @@ set(CMAKE_SYSTEM_PROCESSOR ARM) set(CMAKE_C_COMPILER arm-none-eabi-gcc) set(CMAKE_CXX_COMPILER arm-none-eabi-g++) -set(CMAKE_ASM_COMPILER arm-none-eabi-as) +set(CMAKE_ASM_COMPILER arm-none-eabi-gcc) set(CMAKE_RANLIB arm-none-eabi-ranlib) execute_process(COMMAND ${CMAKE_CXX_COMPILER} -dumpversion OUTPUT_VARIABLE COMPILER_VERSION OUTPUT_STRIP_TRAILING_WHITESPACE) @@ -40,6 +40,7 @@ set(COMMON_C_FLAGS "-mcpu=cortex-m4 -mfpu=fpv4-sp-d16 -mfloat-ab set(CMAKE_C_FLAGS_INIT "${COMMON_C_FLAGS} -std=c99") set(CMAKE_CXX_FLAGS_INIT "${COMMON_C_FLAGS} -fno-exceptions -fno-rtti") +set(CMAKE_ASM_FLAGS_INIT "${CMAKE_C_FLAGS_INIT} -x assembler-with-cpp") set(CMAKE_EXE_LINKER_FLAGS_INIT "${COMMON_C_FLAGS} -specs=nano.specs -specs=nosys.specs") set(CMAKE_C_FLAGS_DEBUG "-Og -g") diff --git a/src/efr32mg12/arm-none-eabi.cmake b/src/efr32mg12/arm-none-eabi.cmake index 9f2e385f..543c7ac4 100644 --- a/src/efr32mg12/arm-none-eabi.cmake +++ b/src/efr32mg12/arm-none-eabi.cmake @@ -31,7 +31,7 @@ set(CMAKE_SYSTEM_PROCESSOR ARM) set(CMAKE_C_COMPILER arm-none-eabi-gcc) set(CMAKE_CXX_COMPILER arm-none-eabi-g++) -set(CMAKE_ASM_COMPILER arm-none-eabi-as) +set(CMAKE_ASM_COMPILER arm-none-eabi-gcc) set(CMAKE_RANLIB arm-none-eabi-ranlib) execute_process(COMMAND ${CMAKE_CXX_COMPILER} -dumpversion OUTPUT_VARIABLE COMPILER_VERSION OUTPUT_STRIP_TRAILING_WHITESPACE) @@ -40,6 +40,7 @@ set(COMMON_C_FLAGS "-mcpu=cortex-m4 -mfpu=fpv4-sp-d16 -mfloat-ab set(CMAKE_C_FLAGS_INIT "${COMMON_C_FLAGS} -std=c99") set(CMAKE_CXX_FLAGS_INIT "${COMMON_C_FLAGS} -fno-exceptions -fno-rtti") +set(CMAKE_ASM_FLAGS_INIT "${CMAKE_C_FLAGS_INIT} -x assembler-with-cpp") set(CMAKE_EXE_LINKER_FLAGS_INIT "${COMMON_C_FLAGS} -specs=nano.specs -specs=nosys.specs") set(CMAKE_C_FLAGS_DEBUG "-Og -g") diff --git a/src/efr32mg13/arm-none-eabi.cmake b/src/efr32mg13/arm-none-eabi.cmake index 9f2e385f..543c7ac4 100644 --- a/src/efr32mg13/arm-none-eabi.cmake +++ b/src/efr32mg13/arm-none-eabi.cmake @@ -31,7 +31,7 @@ set(CMAKE_SYSTEM_PROCESSOR ARM) set(CMAKE_C_COMPILER arm-none-eabi-gcc) set(CMAKE_CXX_COMPILER arm-none-eabi-g++) -set(CMAKE_ASM_COMPILER arm-none-eabi-as) +set(CMAKE_ASM_COMPILER arm-none-eabi-gcc) set(CMAKE_RANLIB arm-none-eabi-ranlib) execute_process(COMMAND ${CMAKE_CXX_COMPILER} -dumpversion OUTPUT_VARIABLE COMPILER_VERSION OUTPUT_STRIP_TRAILING_WHITESPACE) @@ -40,6 +40,7 @@ set(COMMON_C_FLAGS "-mcpu=cortex-m4 -mfpu=fpv4-sp-d16 -mfloat-ab set(CMAKE_C_FLAGS_INIT "${COMMON_C_FLAGS} -std=c99") set(CMAKE_CXX_FLAGS_INIT "${COMMON_C_FLAGS} -fno-exceptions -fno-rtti") +set(CMAKE_ASM_FLAGS_INIT "${CMAKE_C_FLAGS_INIT} -x assembler-with-cpp") set(CMAKE_EXE_LINKER_FLAGS_INIT "${COMMON_C_FLAGS} -specs=nano.specs -specs=nosys.specs") set(CMAKE_C_FLAGS_DEBUG "-Og -g") diff --git a/src/efr32mg21/arm-none-eabi.cmake b/src/efr32mg21/arm-none-eabi.cmake index 04603163..a803b08e 100644 --- a/src/efr32mg21/arm-none-eabi.cmake +++ b/src/efr32mg21/arm-none-eabi.cmake @@ -31,7 +31,7 @@ set(CMAKE_SYSTEM_PROCESSOR ARM) set(CMAKE_C_COMPILER arm-none-eabi-gcc) set(CMAKE_CXX_COMPILER arm-none-eabi-g++) -set(CMAKE_ASM_COMPILER arm-none-eabi-as) +set(CMAKE_ASM_COMPILER arm-none-eabi-gcc) set(CMAKE_RANLIB arm-none-eabi-ranlib) execute_process(COMMAND ${CMAKE_CXX_COMPILER} -dumpversion OUTPUT_VARIABLE COMPILER_VERSION OUTPUT_STRIP_TRAILING_WHITESPACE) @@ -40,6 +40,7 @@ set(COMMON_C_FLAGS "-mcpu=cortex-m33 -mthumb -fmessage-length=0 set(CMAKE_C_FLAGS_INIT "${COMMON_C_FLAGS} -std=c99") set(CMAKE_CXX_FLAGS_INIT "${COMMON_C_FLAGS} -fno-exceptions -fno-rtti") +set(CMAKE_ASM_FLAGS_INIT "${CMAKE_C_FLAGS_INIT} -x assembler-with-cpp") set(CMAKE_EXE_LINKER_FLAGS_INIT "${COMMON_C_FLAGS} -specs=nano.specs -specs=nosys.specs") set(CMAKE_C_FLAGS_DEBUG "-Og -g") diff --git a/src/efr32mg24/arm-none-eabi.cmake b/src/efr32mg24/arm-none-eabi.cmake index 04603163..a803b08e 100644 --- a/src/efr32mg24/arm-none-eabi.cmake +++ b/src/efr32mg24/arm-none-eabi.cmake @@ -31,7 +31,7 @@ set(CMAKE_SYSTEM_PROCESSOR ARM) set(CMAKE_C_COMPILER arm-none-eabi-gcc) set(CMAKE_CXX_COMPILER arm-none-eabi-g++) -set(CMAKE_ASM_COMPILER arm-none-eabi-as) +set(CMAKE_ASM_COMPILER arm-none-eabi-gcc) set(CMAKE_RANLIB arm-none-eabi-ranlib) execute_process(COMMAND ${CMAKE_CXX_COMPILER} -dumpversion OUTPUT_VARIABLE COMPILER_VERSION OUTPUT_STRIP_TRAILING_WHITESPACE) @@ -40,6 +40,7 @@ set(COMMON_C_FLAGS "-mcpu=cortex-m33 -mthumb -fmessage-length=0 set(CMAKE_C_FLAGS_INIT "${COMMON_C_FLAGS} -std=c99") set(CMAKE_CXX_FLAGS_INIT "${COMMON_C_FLAGS} -fno-exceptions -fno-rtti") +set(CMAKE_ASM_FLAGS_INIT "${CMAKE_C_FLAGS_INIT} -x assembler-with-cpp") set(CMAKE_EXE_LINKER_FLAGS_INIT "${COMMON_C_FLAGS} -specs=nano.specs -specs=nosys.specs") set(CMAKE_C_FLAGS_DEBUG "-Og -g")