mirror of
https://github.com/Kitware/CMake.git
synced 2026-01-05 21:31:08 -06:00
IAR: ASM module code deduplication
This commit is contained in:
committed by
Brad King
parent
6261210a67
commit
b1727b8a7e
@@ -1,57 +1,45 @@
|
|||||||
# This file is processed when the IAR compiler is used for an assembler file
|
# This file is processed when the IAR Assembler is used
|
||||||
|
|
||||||
include(Compiler/IAR)
|
include(Compiler/IAR)
|
||||||
|
|
||||||
if("${CMAKE_ASM${ASM_DIALECT}_COMPILER_ARCHITECTURE_ID}" STREQUAL "ARM")
|
cmake_policy(PUSH)
|
||||||
set(CMAKE_ASM_COMPILE_OBJECT "<CMAKE_ASM_COMPILER> -S <SOURCE> <DEFINES> <INCLUDES> <FLAGS> -o <OBJECT>")
|
cmake_policy(SET CMP0057 NEW) # if IN_LIST
|
||||||
|
|
||||||
|
set(_CMAKE_IAR_ITOOLS "ARM" "RH850" "RL78" "RX" "RISC-V" "STM8")
|
||||||
|
set(_CMAKE_IAR_XTOOLS "AVR" "MSP430" "V850" "8051")
|
||||||
|
|
||||||
|
set(_CMAKE_IAR_ASM_SILENT "RH850" "RL78" "RX" "RISC-V" "STM8")
|
||||||
|
if("${CMAKE_ASM${ASM_DIALECT}_COMPILER_ARCHITECTURE_ID}" IN_LIST _CMAKE_IAR_ASM_SILENT)
|
||||||
|
set(_CMAKE_IAR_SILENCER_FLAG " --silent")
|
||||||
|
else()
|
||||||
|
set(_CMAKE_IAR_SILENCER_FLAG " -S")
|
||||||
|
endif()
|
||||||
|
|
||||||
|
string(APPEND CMAKE_ASM_FLAGS_INIT " ")
|
||||||
|
string(APPEND CMAKE_ASM_FLAGS_DEBUG_INIT " -r")
|
||||||
|
string(APPEND CMAKE_ASM_FLAGS_MINSIZEREL_INIT " -DNDEBUG")
|
||||||
|
string(APPEND CMAKE_ASM_FLAGS_RELEASE_INIT " -DNDEBUG")
|
||||||
|
string(APPEND CMAKE_ASM_FLAGS_RELWITHDEBINFO_INIT " -r -DNDEBUG")
|
||||||
|
|
||||||
|
set(CMAKE_ASM_COMPILE_OBJECT "<CMAKE_ASM_COMPILER> ${_CMAKE_IAR_SILENCER_FLAG} <SOURCE> <DEFINES> <INCLUDES> <FLAGS> -o <OBJECT>")
|
||||||
|
|
||||||
|
if("${CMAKE_ASM${ASM_DIALECT}_COMPILER_ARCHITECTURE_ID}" IN_LIST _CMAKE_IAR_ITOOLS)
|
||||||
__compiler_iar_ilink(ASM)
|
__compiler_iar_ilink(ASM)
|
||||||
set(CMAKE_ASM_SOURCE_FILE_EXTENSIONS s;asm;msa)
|
set(CMAKE_ASM_SOURCE_FILE_EXTENSIONS s;asm;msa)
|
||||||
|
|
||||||
elseif("${CMAKE_ASM${ASM_DIALECT}_COMPILER_ARCHITECTURE_ID}" STREQUAL "RX")
|
elseif("${CMAKE_ASM${ASM_DIALECT}_COMPILER_ARCHITECTURE_ID}" IN_LIST _CMAKE_IAR_XTOOLS)
|
||||||
set(CMAKE_ASM_COMPILE_OBJECT "<CMAKE_ASM_COMPILER> --silent <SOURCE> <DEFINES> <INCLUDES> <FLAGS> -o <OBJECT>")
|
|
||||||
__compiler_iar_ilink(ASM)
|
|
||||||
set(CMAKE_ASM_SOURCE_FILE_EXTENSIONS s;asm;msa)
|
|
||||||
|
|
||||||
elseif("${CMAKE_ASM${ASM_DIALECT}_COMPILER_ARCHITECTURE_ID}" STREQUAL "RH850")
|
|
||||||
set(CMAKE_ASM_COMPILE_OBJECT "<CMAKE_ASM_COMPILER> --silent <SOURCE> <DEFINES> <INCLUDES> <FLAGS> -o <OBJECT>")
|
|
||||||
__compiler_iar_ilink(ASM)
|
|
||||||
set(CMAKE_ASM_SOURCE_FILE_EXTENSIONS s;asm;msa)
|
|
||||||
|
|
||||||
elseif("${CMAKE_ASM${ASM_DIALECT}_COMPILER_ARCHITECTURE_ID}" STREQUAL "RL78")
|
|
||||||
set(CMAKE_ASM_COMPILE_OBJECT "<CMAKE_ASM_COMPILER> --silent <SOURCE> <DEFINES> <INCLUDES> <FLAGS> -o <OBJECT>")
|
|
||||||
__compiler_iar_ilink(ASM)
|
|
||||||
set(CMAKE_ASM_SOURCE_FILE_EXTENSIONS s;asm;msa)
|
|
||||||
|
|
||||||
elseif("${CMAKE_ASM${ASM_DIALECT}_COMPILER_ARCHITECTURE_ID}" STREQUAL "RISC-V")
|
|
||||||
set(CMAKE_ASM_COMPILE_OBJECT "<CMAKE_ASM_COMPILER> --silent <SOURCE> <DEFINES> <INCLUDES> <FLAGS> -o <OBJECT>")
|
|
||||||
__compiler_iar_ilink(ASM)
|
|
||||||
set(CMAKE_ASM_SOURCE_FILE_EXTENSIONS s;asm;msa)
|
|
||||||
|
|
||||||
elseif("${CMAKE_ASM${ASM_DIALECT}_COMPILER_ARCHITECTURE_ID}" STREQUAL "AVR")
|
|
||||||
set(CMAKE_ASM_COMPILE_OBJECT "<CMAKE_ASM_COMPILER> -S <SOURCE> <DEFINES> <INCLUDES> <FLAGS> -o <OBJECT>")
|
|
||||||
__compiler_iar_xlink(ASM)
|
__compiler_iar_xlink(ASM)
|
||||||
set(CMAKE_ASM_SOURCE_FILE_EXTENSIONS s90;asm;msa)
|
# AVR=s90, MSP430=s43, V850=s85, 8051=s51
|
||||||
|
set(CMAKE_ASM_SOURCE_FILE_EXTENSIONS s90;s43;s85;s51;asm;msa)
|
||||||
elseif("${CMAKE_ASM${ASM_DIALECT}_COMPILER_ARCHITECTURE_ID}" STREQUAL "MSP430")
|
|
||||||
set(CMAKE_ASM_COMPILE_OBJECT "<CMAKE_ASM_COMPILER> -S <SOURCE> <DEFINES> <INCLUDES> <FLAGS> -o <OBJECT>")
|
|
||||||
__compiler_iar_xlink(ASM)
|
|
||||||
set(CMAKE_ASM_SOURCE_FILE_EXTENSIONS s43;asm;msa)
|
|
||||||
|
|
||||||
elseif("${CMAKE_ASM${ASM_DIALECT}_COMPILER_ARCHITECTURE_ID}" STREQUAL "V850")
|
|
||||||
set(CMAKE_ASM_COMPILE_OBJECT "<CMAKE_ASM_COMPILER> -S <SOURCE> <DEFINES> <INCLUDES> <FLAGS> -o <OBJECT>")
|
|
||||||
__compiler_iar_xlink(ASM)
|
|
||||||
set(CMAKE_ASM_SOURCE_FILE_EXTENSIONS s85;asm;msa)
|
|
||||||
|
|
||||||
elseif("${CMAKE_ASM${ASM_DIALECT}_COMPILER_ARCHITECTURE_ID}" STREQUAL "8051")
|
|
||||||
set(CMAKE_ASM_COMPILE_OBJECT "<CMAKE_ASM_COMPILER> -S <SOURCE> <DEFINES> <INCLUDES> <FLAGS> -o <OBJECT>")
|
|
||||||
__compiler_iar_xlink(ASM)
|
|
||||||
set(CMAKE_ASM_SOURCE_FILE_EXTENSIONS s51;asm;msa)
|
|
||||||
|
|
||||||
elseif("${CMAKE_ASM${ASM_DIALECT}_COMPILER_ARCHITECTURE_ID}" STREQUAL "STM8")
|
|
||||||
set(CMAKE_ASM_COMPILE_OBJECT "<CMAKE_ASM_COMPILER> --silent <SOURCE> <DEFINES> <INCLUDES> <FLAGS> -o <OBJECT>")
|
|
||||||
__compiler_iar_ilink(ASM)
|
|
||||||
set(CMAKE_ASM_SOURCE_FILE_EXTENSIONS s;asm;msa)
|
|
||||||
|
|
||||||
else()
|
else()
|
||||||
message(FATAL_ERROR "CMAKE_ASM${ASM_DIALECT}_COMPILER_ARCHITECTURE_ID not detected. This should be automatic.")
|
message(FATAL_ERROR "CMAKE_ASM${ASM_DIALECT}_COMPILER_ARCHITECTURE_ID not detected. This should be automatic.")
|
||||||
|
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
|
unset(_CMAKE_IAR_ITOOLS)
|
||||||
|
unset(_CMAKE_IAR_XTOOLS)
|
||||||
|
unset(_CMAKE_IAR_ASM_SILENT)
|
||||||
|
unset(_CMAKE_IAR_SILENCER_FLAG)
|
||||||
|
|
||||||
|
cmake_policy(POP)
|
||||||
|
|||||||
@@ -58,14 +58,6 @@ macro(__compiler_iar_ilink lang)
|
|||||||
string(APPEND CMAKE_${lang}_FLAGS_RELWITHDEBINFO_INIT " -Oh -r -DNDEBUG")
|
string(APPEND CMAKE_${lang}_FLAGS_RELWITHDEBINFO_INIT " -Oh -r -DNDEBUG")
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
if (${lang} STREQUAL "ASM")
|
|
||||||
string(APPEND CMAKE_ASM_FLAGS_INIT " ")
|
|
||||||
string(APPEND CMAKE_ASM_FLAGS_DEBUG_INIT " -r")
|
|
||||||
string(APPEND CMAKE_ASM_FLAGS_MINSIZEREL_INIT " -DNDEBUG")
|
|
||||||
string(APPEND CMAKE_ASM_FLAGS_RELEASE_INIT " -DNDEBUG")
|
|
||||||
string(APPEND CMAKE_ASM_FLAGS_RELWITHDEBINFO_INIT " -r -DNDEBUG")
|
|
||||||
endif()
|
|
||||||
|
|
||||||
set(CMAKE_${lang}_LINK_EXECUTABLE "<CMAKE_LINKER> --silent <OBJECTS> <CMAKE_${lang}_LINK_FLAGS> <LINK_FLAGS> <LINK_LIBRARIES> -o <TARGET>")
|
set(CMAKE_${lang}_LINK_EXECUTABLE "<CMAKE_LINKER> --silent <OBJECTS> <CMAKE_${lang}_LINK_FLAGS> <LINK_FLAGS> <LINK_LIBRARIES> -o <TARGET>")
|
||||||
set(CMAKE_${lang}_CREATE_STATIC_LIBRARY "<CMAKE_AR> <TARGET> --create <LINK_FLAGS> <OBJECTS>")
|
set(CMAKE_${lang}_CREATE_STATIC_LIBRARY "<CMAKE_AR> <TARGET> --create <LINK_FLAGS> <OBJECTS>")
|
||||||
set(CMAKE_${lang}_ARCHIVE_CREATE "<CMAKE_AR> <TARGET> --create <LINK_FLAGS> <OBJECTS>")
|
set(CMAKE_${lang}_ARCHIVE_CREATE "<CMAKE_AR> <TARGET> --create <LINK_FLAGS> <OBJECTS>")
|
||||||
@@ -91,14 +83,6 @@ macro(__compiler_iar_xlink lang)
|
|||||||
string(APPEND CMAKE_${lang}_FLAGS_RELWITHDEBINFO_INIT " -Oh -r -DNDEBUG")
|
string(APPEND CMAKE_${lang}_FLAGS_RELWITHDEBINFO_INIT " -Oh -r -DNDEBUG")
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
if (${lang} STREQUAL "ASM")
|
|
||||||
string(APPEND CMAKE_ASM_FLAGS_INIT " ")
|
|
||||||
string(APPEND CMAKE_ASM_FLAGS_DEBUG_INIT " -r")
|
|
||||||
string(APPEND CMAKE_ASM_FLAGS_MINSIZEREL_INIT " -DNDEBUG")
|
|
||||||
string(APPEND CMAKE_ASM_FLAGS_RELEASE_INIT " -DNDEBUG")
|
|
||||||
string(APPEND CMAKE_ASM_FLAGS_RELWITHDEBINFO_INIT " -r -DNDEBUG")
|
|
||||||
endif()
|
|
||||||
|
|
||||||
set(CMAKE_${lang}_LINK_EXECUTABLE "<CMAKE_LINKER> -S <OBJECTS> <CMAKE_${lang}_LINK_FLAGS> <LINK_FLAGS> <LINK_LIBRARIES> -o <TARGET>")
|
set(CMAKE_${lang}_LINK_EXECUTABLE "<CMAKE_LINKER> -S <OBJECTS> <CMAKE_${lang}_LINK_FLAGS> <LINK_FLAGS> <LINK_LIBRARIES> -o <TARGET>")
|
||||||
set(CMAKE_${lang}_CREATE_STATIC_LIBRARY "<CMAKE_AR> <TARGET> <LINK_FLAGS> <OBJECTS>")
|
set(CMAKE_${lang}_CREATE_STATIC_LIBRARY "<CMAKE_AR> <TARGET> <LINK_FLAGS> <OBJECTS>")
|
||||||
set(CMAKE_${lang}_ARCHIVE_CREATE "<CMAKE_AR> <TARGET> <LINK_FLAGS> <OBJECTS>")
|
set(CMAKE_${lang}_ARCHIVE_CREATE "<CMAKE_AR> <TARGET> <LINK_FLAGS> <OBJECTS>")
|
||||||
|
|||||||
Reference in New Issue
Block a user