Skip to content
This repository was archived by the owner on Apr 17, 2023. It is now read-only.

Commit 408450f

Browse files
committed
Fixed regression bug, returned 'board_id' to TargetFlags module
1 parent a25cb5d commit 408450f

File tree

4 files changed

+25
-30
lines changed

4 files changed

+25
-30
lines changed

cmake/Platform/Libraries/LibraryFlagsManager.cmake

Lines changed: 2 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -8,12 +8,9 @@ function(set_library_flags _library_target)
88
parse_scope_argument(scope "${ARGN}"
99
DEFAULT_SCOPE PUBLIC)
1010

11-
# Infer target's type and act differently if it's an interface-library
12-
get_target_property(target_type ${_library_target} TYPE)
13-
14-
set_target_compile_flags(${_library_target} ${scope})
11+
set_target_compile_flags(${_library_target} ${PROJECT_${ARDUINO_CMAKE_PROJECT_NAME}_BOARD} ${scope})
1512

1613
# Set linker flags
17-
set_target_linker_flags(${_library_target})
14+
set_target_linker_flags(${_library_target} ${PROJECT_${ARDUINO_CMAKE_PROJECT_NAME}_BOARD})
1815

1916
endfunction()

cmake/Platform/Other/TargetFlagsManager.cmake

Lines changed: 15 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -3,41 +3,40 @@
33
# _target_name - Name of the target (Executable or Library) to set flags on.
44
# _language - Language for which flags are set (such as C/C++).
55
# _scope - Flags' scope relative to outer targets (targets using the given target).
6+
# _board_id - Board ID asociated with the target.
67
#=============================================================================#
7-
function(_set_target_language_flags _target_name _language _scope)
8+
function(_set_target_language_flags _target_name _board_id _language _scope)
89

9-
# Infer target's type and act differently if it's an interface-library
10-
get_target_property(target_type ${_target_name} TYPE)
11-
12-
parse_compiler_recipe_flags(${PROJECT_${ARDUINO_CMAKE_PROJECT_NAME}_BOARD} compiler_recipe_flags LANGUAGE "${_language}")
10+
parse_compiler_recipe_flags(${_board_id} compiler_recipe_flags LANGUAGE "${_language}")
1311

1412
target_compile_options(${_target_name} ${_scope} $<$<COMPILE_LANGUAGE:${_language}>:${compiler_recipe_flags}>)
1513

1614
endfunction()
1715

1816
#=============================================================================#
1917
# Sets compiler flags on the given target, according also to the given board ID.
20-
# _target_name - Name of the target (Executable or Library) to set flags on.
18+
# _target_name - Name of the target (Executable or Library) to set flags on
19+
# _board_id - Board ID asociated with the target..
2120
#=============================================================================#
22-
function(set_target_compile_flags _target_name)
21+
function(set_target_compile_flags _target_name _board_id)
2322

2423
cmake_parse_arguments(parsed_args "" "LANGUAGE" "" ${ARGN})
2524
parse_scope_argument(scope "${ARGN}"
2625
DEFAULT_SCOPE PUBLIC)
2726

2827
if (parsed_args_LANGUAGE)
29-
_set_target_language_flags(${_target_name} ${parsed_args_LANGUAGE} ${scope})
28+
_set_target_language_flags(${_target_name} ${_board_id} ${parsed_args_LANGUAGE} ${scope})
3029

3130
else () # No specific language requested - Use all
3231

3332
get_cmake_compliant_language_name(asm lang)
34-
_set_target_language_flags(${_target_name} ${lang} ${scope})
33+
_set_target_language_flags(${_target_name} ${_board_id} ${lang} ${scope})
3534

3635
get_cmake_compliant_language_name(c lang)
37-
_set_target_language_flags(${_target_name} ${lang} ${scope})
36+
_set_target_language_flags(${_target_name} ${_board_id} ${lang} ${scope})
3837

3938
get_cmake_compliant_language_name(cpp lang)
40-
_set_target_language_flags(${_target_name} ${lang} ${scope})
39+
_set_target_language_flags(${_target_name} ${_board_id} ${lang} ${scope})
4140

4241
endif ()
4342

@@ -46,13 +45,11 @@ endfunction()
4645
#=============================================================================#
4746
# Sets linker flags on the given target, according also to the given board ID.
4847
# _target_name - Name of the target (Executable or Library) to set flags on.
48+
# _board_id - Board ID asociated with the target.
4949
#=============================================================================#
50-
function(set_target_linker_flags _target_name)
51-
52-
# Infer target's type and act differently if it's an interface-library
53-
get_target_property(target_type ${_target_name} TYPE)
50+
function(set_target_linker_flags _target_name _board_id)
5451

55-
parse_linker_recpie_pattern(${PROJECT_${ARDUINO_CMAKE_PROJECT_NAME}_BOARD} linker_recipe_flags)
52+
parse_linker_recpie_pattern(${_board_id} linker_recipe_flags)
5653

5754
string(REPLACE ";" " " cmake_compliant_linker_flags "${linker_recipe_flags}")
5855

@@ -67,8 +64,8 @@ endfunction()
6764
#=============================================================================#
6865
function(set_executable_target_flags _target_name)
6966

70-
set_target_compile_flags(${_target_name})
71-
set_target_linker_flags(${_target_name})
67+
set_target_compile_flags(${_target_name} ${PROJECT_${ARDUINO_CMAKE_PROJECT_NAME}_BOARD})
68+
set_target_linker_flags(${_target_name} ${PROJECT_${ARDUINO_CMAKE_PROJECT_NAME}_BOARD})
7269

7370
target_link_libraries(${_target_name} PUBLIC m) # Add math library
7471

cmake/Platform/Project/ProjectSetup.cmake

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ function(arduino_cmake_project _project_name)
77
# thus a custom one is needed.
88
set(ARDUINO_CMAKE_PROJECT_NAME ${_project_name} PARENT_SCOPE)
99

10-
setup_project_board(${ARGN} ${_project_name})
10+
setup_project_board(${_project_name} ${ARGN})
1111

1212
setup_project_core_lib(${_project_name})
1313

cmake/Platform/Targets/CoreLibTarget.cmake

Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -62,11 +62,12 @@ endfunction()
6262
# Sets compiler and linker flags on the given Core-Lib target.
6363
# Changes are kept even outside the scope of the function since they apply on a target.
6464
# _core_target_name - Name of the Core-Lib target.
65+
# _board_id - Board ID asociated with the target.
6566
#=============================================================================#
66-
function(_set_core_lib_flags _core_target_name)
67+
function(_set_core_lib_flags _core_target_name _board_id)
6768

68-
set_target_compile_flags(${_core_target_name} PUBLIC)
69-
set_target_linker_flags(${_core_target_name})
69+
set_target_compile_flags(${_core_target_name} ${_board_id} PUBLIC)
70+
set_target_linker_flags(${_core_target_name} ${_board_id})
7071

7172
endfunction()
7273

@@ -82,8 +83,8 @@ function(add_arduino_core_lib _board_id _return_var)
8283

8384
generate_core_lib_target_name(${_board_id} core_lib_target)
8485

85-
_get_board_core(${PROJECT_${ARDUINO_CMAKE_PROJECT_NAME}_BOARD} board_core) # Get board's core
86-
_get_board_variant(${PROJECT_${ARDUINO_CMAKE_PROJECT_NAME}_BOARD} board_variant) # Get board's variant
86+
_get_board_core(${_board_id} board_core) # Get board's core
87+
_get_board_variant(${_board_id} board_variant) # Get board's variant
8788

8889
# Find sources in core directory and add the library target
8990
find_source_files("${ARDUINO_CMAKE_CORE_${board_core}_PATH}" core_sources)
@@ -100,7 +101,7 @@ function(add_arduino_core_lib _board_id _return_var)
100101
target_include_directories(${core_lib_target} PUBLIC "${ARDUINO_CMAKE_CORE_${board_core}_PATH}")
101102
target_include_directories(${core_lib_target} PUBLIC "${ARDUINO_CMAKE_VARIANT_${board_variant}_PATH}")
102103

103-
_set_core_lib_flags(${core_lib_target})
104+
_set_core_lib_flags(${core_lib_target} ${_board_id})
104105

105106
set(${_return_var} ${core_lib_target} PARENT_SCOPE)
106107

0 commit comments

Comments
 (0)