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
1614endfunction ()
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#=============================================================================#
6865function (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
0 commit comments