Skip to content

Commit e169ec9

Browse files
bradkingkwrobot
authored andcommitted
Merge topic 'compi-ti-improvements'
98fea82 Compiler/TI: Avoid response file usage for linker 5dec322 Compiler/TI: Add compiler flags to linker 763b44e Compiler/TI: Avoid usage of ranlib ef528f1 Compiler/TI: Sync ASM settings to C/CXX a548a52 Compiler/TI: Refactor C/CXX to use a common file 195aa48 Compiler/TI: Detect architecture Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !5010
2 parents 2d29421 + 98fea82 commit e169ec9

File tree

5 files changed

+64
-38
lines changed

5 files changed

+64
-38
lines changed

Modules/CMakePlatformId.h.in

Lines changed: 18 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -206,6 +206,24 @@
206206
# else /* unknown architecture */
207207
# define ARCHITECTURE_ID ""
208208
# endif
209+
210+
#elif defined(__TI_COMPILER_VERSION__)
211+
# if defined(__TI_ARM__)
212+
# define ARCHITECTURE_ID "ARM"
213+
214+
# elif defined(__MSP430__)
215+
# define ARCHITECTURE_ID "MSP430"
216+
217+
# elif defined(__TMS320C28XX__)
218+
# define ARCHITECTURE_ID "TMS320C28x"
219+
220+
# elif defined(__TMS320C6X__) || defined(_TMS320C6X)
221+
# define ARCHITECTURE_ID "TMS320C6x"
222+
223+
# else /* unknown architecture */
224+
# define ARCHITECTURE_ID ""
225+
# endif
226+
209227
#else
210228
# define ARCHITECTURE_ID
211229
#endif
@@ -283,4 +301,3 @@ char const info_simulate_version[] = {
283301
array rather than assigning a pointer to a static array. */
284302
char const* info_platform = "INFO" ":" "platform[" PLATFORM_ID "]";
285303
char const* info_arch = "INFO" ":" "arch[" ARCHITECTURE_ID "]";
286-

Modules/Compiler/TI-ASM.cmake

Lines changed: 2 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,4 @@
1-
set(CMAKE_LIBRARY_PATH_FLAG "--search_path=")
2-
set(CMAKE_LINK_LIBRARY_FLAG "--library=")
3-
set(CMAKE_INCLUDE_FLAG_ASM "--include_path=")
4-
5-
set(CMAKE_ASM_COMPILE_OBJECT "<CMAKE_ASM_COMPILER> --compile_only --asm_file=<SOURCE> <DEFINES> <INCLUDES> <FLAGS> --output_file=<OBJECT>")
6-
set(CMAKE_ASM_LINK_EXECUTABLE "<CMAKE_ASM_COMPILER> <OBJECTS> --run_linker --output_file=<TARGET> <CMAKE_ASM_LINK_FLAGS> <LINK_FLAGS> <LINK_LIBRARIES>")
1+
include(Compiler/TI)
2+
__compiler_ti(ASM)
73

84
set(CMAKE_ASM_SOURCE_FILE_EXTENSIONS asm;s;abs)

Modules/Compiler/TI-C.cmake

Lines changed: 2 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -1,22 +1,8 @@
1-
set(CMAKE_LIBRARY_PATH_FLAG "--search_path=")
2-
set(CMAKE_LINK_LIBRARY_FLAG "--library=")
3-
set(CMAKE_INCLUDE_FLAG_C "--include_path=")
1+
include(Compiler/TI)
2+
__compiler_ti(C)
43

54
set(CMAKE_C90_STANDARD_COMPILE_OPTION "--c89")
65
set(CMAKE_C90_EXTENSION_COMPILE_OPTION "--c89 --relaxed_ansi")
76

87
set(CMAKE_C99_STANDARD_COMPILE_OPTION "--c99")
98
set(CMAKE_C99_EXTENSION_COMPILE_OPTION "--c99 --relaxed_ansi")
10-
11-
set(CMAKE_DEPFILE_FLAGS_C "--preproc_with_compile --preproc_dependency=<DEPFILE>")
12-
13-
set(CMAKE_C_CREATE_ASSEMBLY_SOURCE "<CMAKE_C_COMPILER> --compile_only --skip_assembler --c_file=<SOURCE> <DEFINES> <INCLUDES> <FLAGS> --output_file=<ASSEMBLY_SOURCE>")
14-
set(CMAKE_C_CREATE_PREPROCESSED_SOURCE "<CMAKE_C_COMPILER> --preproc_only --c_file=<SOURCE> <DEFINES> <INCLUDES> <FLAGS> --output_file=<PREPROCESSED_SOURCE>")
15-
16-
set(CMAKE_C_COMPILE_OBJECT "<CMAKE_C_COMPILER> --compile_only --c_file=<SOURCE> <DEFINES> <INCLUDES> <FLAGS> --output_file=<OBJECT>")
17-
set(CMAKE_C_ARCHIVE_CREATE "<CMAKE_AR> qr <TARGET> <OBJECTS>")
18-
set(CMAKE_C_ARCHIVE_APPEND "<CMAKE_AR> qa <TARGET> <OBJECTS>")
19-
set(CMAKE_C_LINK_EXECUTABLE "<CMAKE_C_COMPILER> --run_linker --output_file=<TARGET> --map_file=<TARGET_NAME>.map <CMAKE_C_LINK_FLAGS> <LINK_FLAGS> <OBJECTS> <LINK_LIBRARIES>")
20-
set(CMAKE_ASM_RESPONSE_FILE_FLAG "--cmd_file=")
21-
set(CMAKE_C_RESPONSE_FILE_FLAG "--cmd_file=")
22-
set(CMAKE_C_RESPONSE_FILE_LINK_FLAG " ")

Modules/Compiler/TI-CXX.cmake

Lines changed: 2 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,2 @@
1-
set(CMAKE_LIBRARY_PATH_FLAG "--search_path=")
2-
set(CMAKE_LINK_LIBRARY_FLAG "--library=")
3-
set(CMAKE_INCLUDE_FLAG_CXX "--include_path=")
4-
5-
set(CMAKE_DEPFILE_FLAGS_CXX "--preproc_with_compile --preproc_dependency=<DEPFILE>")
6-
7-
set(CMAKE_CXX_CREATE_ASSEMBLY_SOURCE "<CMAKE_CXX_COMPILER> --compile_only --skip_assembler --cpp_file=<SOURCE> <DEFINES> <INCLUDES> <FLAGS> --output_file=<ASSEMBLY_SOURCE>")
8-
set(CMAKE_CXX_CREATE_PREPROCESSED_SOURCE "<CMAKE_CXX_COMPILER> --preproc_only --cpp_file=<SOURCE> <DEFINES> <INCLUDES> <FLAGS> --output_file=<PREPROCESSED_SOURCE>")
9-
10-
set(CMAKE_CXX_COMPILE_OBJECT "<CMAKE_CXX_COMPILER> --compile_only --cpp_file=<SOURCE> <DEFINES> <INCLUDES> <FLAGS> --output_file=<OBJECT>")
11-
set(CMAKE_CXX_ARCHIVE_CREATE "<CMAKE_AR> qr <TARGET> <OBJECTS>")
12-
set(CMAKE_CXX_ARCHIVE_APPEND "<CMAKE_AR> qa <TARGET> <OBJECTS>")
13-
set(CMAKE_CXX_LINK_EXECUTABLE "<CMAKE_CXX_COMPILER> --run_linker --output_file=<TARGET> --map_file=<TARGET_NAME>.map <CMAKE_CXX_LINK_FLAGS> <LINK_FLAGS> <OBJECTS> <LINK_LIBRARIES>")
14-
set(CMAKE_CXX_RESPONSE_FILE_FLAG "--cmd_file=")
15-
set(CMAKE_CXX_RESPONSE_FILE_LINK_FLAG " ")
1+
include(Compiler/TI)
2+
__compiler_ti(CXX)

Modules/Compiler/TI.cmake

Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,40 @@
1+
# Distributed under the OSI-approved BSD 3-Clause License. See accompanying
2+
# file Copyright.txt or https://cmake.org/licensing for details.
3+
4+
5+
# This module is shared by multiple languages; use include blocker.
6+
if(__COMPILER_TI)
7+
return()
8+
endif()
9+
set(__COMPILER_TI 1)
10+
11+
macro(__compiler_ti lang)
12+
string(TOLOWER ${lang} prefix)
13+
if("x${lang}" STREQUAL "xCXX")
14+
set(prefix "cpp")
15+
endif()
16+
17+
set(CMAKE_${lang}_RESPONSE_FILE_FLAG "--cmd_file=")
18+
19+
set(CMAKE_INCLUDE_FLAG_${lang} "--include_path=")
20+
set(CMAKE_DEPFILE_FLAGS_${lang} "--preproc_with_compile --preproc_dependency=<DEPFILE>")
21+
22+
set(CMAKE_${lang}_CREATE_PREPROCESSED_SOURCE "<CMAKE_${lang}_COMPILER> --preproc_only --${prefix}_file=<SOURCE> <DEFINES> <INCLUDES> <FLAGS> --output_file=<PREPROCESSED_SOURCE>")
23+
set(CMAKE_${lang}_CREATE_ASSEMBLY_SOURCE "<CMAKE_${lang}_COMPILER> --compile_only --skip_assembler --${prefix}_file=<SOURCE> <DEFINES> <INCLUDES> <FLAGS> --output_file=<ASSEMBLY_SOURCE>")
24+
25+
set(CMAKE_${lang}_COMPILE_OBJECT "<CMAKE_${lang}_COMPILER> --compile_only --${prefix}_file=<SOURCE> <DEFINES> <INCLUDES> <FLAGS> --output_file=<OBJECT>")
26+
27+
set(CMAKE_${lang}_ARCHIVE_CREATE "<CMAKE_AR> qr <TARGET> <OBJECTS>")
28+
set(CMAKE_${lang}_ARCHIVE_APPEND "<CMAKE_AR> qa <TARGET> <OBJECTS>")
29+
set(CMAKE_${lang}_ARCHIVE_FINISH "")
30+
31+
# After the --run_linker flag a response file is not possible
32+
set(CMAKE_${lang}_RESPONSE_FILE_LINK_FLAG "")
33+
set(CMAKE_${lang}_USE_RESPONSE_FILE_FOR_LIBRARIES 0)
34+
set(CMAKE_${lang}_USE_RESPONSE_FILE_FOR_OBJECTS 0)
35+
36+
set(CMAKE_${lang}_LINK_EXECUTABLE "<CMAKE_${lang}_COMPILER> <FLAGS> --run_linker --output_file=<TARGET> --map_file=<TARGET_NAME>.map <CMAKE_${lang}_LINK_FLAGS> <LINK_FLAGS> <OBJECTS> <LINK_LIBRARIES>")
37+
endmacro()
38+
39+
set(CMAKE_LIBRARY_PATH_FLAG "--search_path=")
40+
set(CMAKE_LINK_LIBRARY_FLAG "--library=")

0 commit comments

Comments
 (0)