Skip to content

Commit ea69fa5

Browse files
authored
[cbuild2cmake] Add regions header file to link step dependencies
1 parent c547579 commit ea69fa5

40 files changed

Lines changed: 82 additions & 40 deletions

File tree

pkg/maker/buildcontent.go

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -833,9 +833,12 @@ func (c *Cbuild) AddContextLanguage(language string) {
833833

834834
func (c *Cbuild) LinkerOptions() (linkerVars string, linkerOptions string) {
835835
linkerVars += "\nset(LD_SCRIPT \"" + c.AddRootPrefix(c.ContextRoot, c.BuildDescType.Linker.Script) + "\")"
836+
linkerDeps := "\nset(LD_DEPS ${LD_SCRIPT}"
836837
if len(c.BuildDescType.Linker.Regions) > 0 {
837838
linkerVars += "\nset(LD_REGIONS \"" + c.AddRootPrefix(c.ContextRoot, c.BuildDescType.Linker.Regions) + "\")"
839+
linkerDeps += " ${LD_REGIONS}"
838840
}
841+
linkerDeps += ")"
839842
if len(c.BuildDescType.Linker.Define) > 0 {
840843
linkerVars += "\nset(LD_SCRIPT_PP_DEFINES\n "
841844
linkerVars += ListCompileDefinitions(c.BuildDescType.Linker.Define, "\n ")
@@ -866,7 +869,7 @@ func (c *Cbuild) LinkerOptions() (linkerVars string, linkerOptions string) {
866869
linkerOptions += "\n " + AddShellPrefix(c.AdjustRelativePath(option))
867870
}
868871
linkerOptions += "\n)"
869-
linkerOptions += "\nset_target_properties(${CONTEXT} PROPERTIES LINK_DEPENDS ${LD_SCRIPT})"
872+
linkerOptions += linkerDeps + "\nset_target_properties(${CONTEXT} PROPERTIES LINK_DEPENDS \"${LD_DEPS}\")"
870873
if path.Ext(c.BuildDescType.Linker.Script) == ".src" || len(c.BuildDescType.Linker.Regions) > 0 || len(c.BuildDescType.Linker.Define) > 0 {
871874
linkerScriptPP := strings.TrimSuffix(path.Base(c.BuildDescType.Linker.Script), ".src")
872875
linkerVars += "\nset(LD_SCRIPT_PP \"${CMAKE_CURRENT_BINARY_DIR}/" + linkerScriptPP + "\")"

test/data/solutions/abstractions/ref/project.GCC+ARMCM0/CMakeLists.txt

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -95,4 +95,5 @@ target_link_options(${CONTEXT} PUBLIC
9595
"SHELL:-Wl,--gc-sections"
9696
"SHELL:-Wl,--no-warn-rwx-segments"
9797
)
98-
set_target_properties(${CONTEXT} PROPERTIES LINK_DEPENDS ${LD_SCRIPT})
98+
set(LD_DEPS ${LD_SCRIPT})
99+
set_target_properties(${CONTEXT} PROPERTIES LINK_DEPENDS "${LD_DEPS}")

test/data/solutions/blanks/ref/project X.AC6 X+ARMCM0 X/CMakeLists.txt

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -81,4 +81,5 @@ target_link_options(${CONTEXT} PUBLIC
8181
"SHELL:--summary_stderr"
8282
"SHELL:--diag_suppress=L6314W"
8383
)
84-
set_target_properties(${CONTEXT} PROPERTIES LINK_DEPENDS ${LD_SCRIPT})
84+
set(LD_DEPS ${LD_SCRIPT})
85+
set_target_properties(${CONTEXT} PROPERTIES LINK_DEPENDS "${LD_DEPS}")

test/data/solutions/build-asm/ref/project.AC6+ARMCM0/CMakeLists.txt

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -87,4 +87,5 @@ target_link_options(${CONTEXT} PUBLIC
8787
"SHELL:--summary_stderr"
8888
"SHELL:--diag_suppress=L6314W"
8989
)
90-
set_target_properties(${CONTEXT} PROPERTIES LINK_DEPENDS ${LD_SCRIPT})
90+
set(LD_DEPS ${LD_SCRIPT})
91+
set_target_properties(${CONTEXT} PROPERTIES LINK_DEPENDS "${LD_DEPS}")

test/data/solutions/build-asm/ref/project.CLANG+ARMCM0/CMakeLists.txt

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -85,7 +85,8 @@ target_link_options(${CONTEXT} PUBLIC
8585
"SHELL:-Wl,-Map=${SOLUTION_ROOT}/out/project/ARMCM0/CLANG/project.elf.map"
8686
"SHELL:-Wl,--gc-sections"
8787
)
88-
set_target_properties(${CONTEXT} PROPERTIES LINK_DEPENDS ${LD_SCRIPT})
88+
set(LD_DEPS ${LD_SCRIPT} ${LD_REGIONS})
89+
set_target_properties(${CONTEXT} PROPERTIES LINK_DEPENDS "${LD_DEPS}")
8990

9091
# Linker script pre-processing
9192
add_custom_command(TARGET ${CONTEXT} PRE_LINK COMMAND ${CPP} ARGS ${CPP_ARGS_LD_SCRIPT} BYPRODUCTS ${LD_SCRIPT_PP})

test/data/solutions/build-asm/ref/project.GCC+ARMCM0/CMakeLists.txt

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -85,4 +85,5 @@ target_link_options(${CONTEXT} PUBLIC
8585
"SHELL:-Wl,-Map=${SOLUTION_ROOT}/out/project/ARMCM0/GCC/project.elf.map"
8686
"SHELL:-Wl,--gc-sections"
8787
)
88-
set_target_properties(${CONTEXT} PROPERTIES LINK_DEPENDS ${LD_SCRIPT})
88+
set(LD_DEPS ${LD_SCRIPT})
89+
set_target_properties(${CONTEXT} PROPERTIES LINK_DEPENDS "${LD_DEPS}")

test/data/solutions/build-asm/ref/project.IAR+ARMCM0/CMakeLists.txt

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -80,7 +80,8 @@ target_link_options(${CONTEXT} PUBLIC
8080
"SHELL:--semihosting"
8181
"SHELL:--map=${SOLUTION_ROOT}/out/project/ARMCM0/IAR/project.out.map"
8282
)
83-
set_target_properties(${CONTEXT} PROPERTIES LINK_DEPENDS ${LD_SCRIPT})
83+
set(LD_DEPS ${LD_SCRIPT} ${LD_REGIONS})
84+
set_target_properties(${CONTEXT} PROPERTIES LINK_DEPENDS "${LD_DEPS}")
8485

8586
# Linker script pre-processing
8687
add_custom_command(TARGET ${CONTEXT} PRE_LINK COMMAND ${CPP} ARGS ${CPP_ARGS_LD_SCRIPT} BYPRODUCTS ${LD_SCRIPT_PP})

test/data/solutions/build-c/ref/project.AC6+ARMCM0/CMakeLists.txt

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -81,4 +81,5 @@ target_link_options(${CONTEXT} PUBLIC
8181
"SHELL:--summary_stderr"
8282
"SHELL:--diag_suppress=L6314W"
8383
)
84-
set_target_properties(${CONTEXT} PROPERTIES LINK_DEPENDS ${LD_SCRIPT})
84+
set(LD_DEPS ${LD_SCRIPT})
85+
set_target_properties(${CONTEXT} PROPERTIES LINK_DEPENDS "${LD_DEPS}")

test/data/solutions/build-c/ref/project.CLANG+ARMCM0/CMakeLists.txt

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -80,7 +80,8 @@ target_link_options(${CONTEXT} PUBLIC
8080
"SHELL:-Wl,-Map=${SOLUTION_ROOT}/out/project/ARMCM0/CLANG/project.elf.map"
8181
"SHELL:-Wl,--gc-sections"
8282
)
83-
set_target_properties(${CONTEXT} PROPERTIES LINK_DEPENDS ${LD_SCRIPT})
83+
set(LD_DEPS ${LD_SCRIPT} ${LD_REGIONS})
84+
set_target_properties(${CONTEXT} PROPERTIES LINK_DEPENDS "${LD_DEPS}")
8485

8586
# Linker script pre-processing
8687
add_custom_command(TARGET ${CONTEXT} PRE_LINK COMMAND ${CPP} ARGS ${CPP_ARGS_LD_SCRIPT} BYPRODUCTS ${LD_SCRIPT_PP})

test/data/solutions/build-c/ref/project.GCC+ARMCM0/CMakeLists.txt

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -84,4 +84,5 @@ target_link_options(${CONTEXT} PUBLIC
8484
"SHELL:-Wl,-Map=${SOLUTION_ROOT}/out/project/ARMCM0/GCC/project.elf.map"
8585
"SHELL:-Wl,--gc-sections"
8686
)
87-
set_target_properties(${CONTEXT} PROPERTIES LINK_DEPENDS ${LD_SCRIPT})
87+
set(LD_DEPS ${LD_SCRIPT})
88+
set_target_properties(${CONTEXT} PROPERTIES LINK_DEPENDS "${LD_DEPS}")

0 commit comments

Comments
 (0)