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

Commit b46b7fa

Browse files
committed
Merge remote-tracking branch 'origin/feature/c-flags-fix' into release/v0.6
2 parents 8b83613 + 79bb090 commit b46b7fa

File tree

3 files changed

+29
-25
lines changed

3 files changed

+29
-25
lines changed

cmake/Platform/Libraries/LibraryFlagsManager.cmake

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

12-
# Set C++ compiler flags
13-
get_cmake_compliant_language_name(cpp flags_language)
14-
set_compiler_target_flags(${_library_target} "${_board_id}" ${scope} LANGUAGE ${flags_language})
12+
set_compiler_target_flags(${_library_target} ${_board_id} ${scope})
1513

1614
# Set linker flags
17-
set_linker_flags(${_library_target} "${_board_id}")
15+
set_linker_flags(${_library_target} ${_board_id})
1816

1917
endfunction()

cmake/Platform/Other/TargetFlagsManager.cmake

Lines changed: 25 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,20 @@
1+
#=============================================================================#
2+
# Sets compiler flags on the given target using the given board ID, compiler language and scope.
3+
# _target_name - Name of the target (Executable or Library) to set flags on.
4+
# _board_id - Target's bounded board ID.
5+
# _language - Language for which flags are set (such as C/C++).
6+
# _scope - Flags' scope relative to outer targets (targets using the given target).
7+
#=============================================================================#
8+
function(_set_target_language_flags _target_name _board_id _language _scope)
9+
10+
parse_compiler_recipe_flags(${_board_id} compiler_recipe_flags
11+
LANGUAGE "${_language}")
12+
13+
target_compile_options(${_target_name} ${_scope}
14+
$<$<COMPILE_LANGUAGE:${_language}>:${compiler_recipe_flags}>)
15+
16+
endfunction()
17+
118
#=============================================================================#
219
# Sets compiler flags on the given target, according also to the given board ID.
320
# _target_name - Name of the target (Executable or Library) to set flags on.
@@ -10,18 +27,18 @@ function(set_compiler_target_flags _target_name _board_id)
1027
DEFAULT_SCOPE PUBLIC)
1128

1229
if (parsed_args_LANGUAGE)
30+
_set_target_language_flags(${_target_name} ${_board_id} ${parsed_args_LANGUAGE} ${scope})
1331

14-
parse_compiler_recipe_flags("${_board_id}" compiler_recipe_flags
15-
LANGUAGE "${parsed_args_LANGUAGE}")
16-
17-
target_compile_options(${_target_name} ${scope}
18-
$<$<COMPILE_LANGUAGE:${parsed_args_LANGUAGE}>:${compiler_recipe_flags}>)
32+
else () # No specific language requested - Use all
1933

20-
else ()
34+
get_cmake_compliant_language_name(asm lang)
35+
_set_target_language_flags(${_target_name} ${_board_id} ${lang} ${scope})
2136

22-
parse_compiler_recipe_flags("${_board_id}" compiler_recipe_flags)
37+
get_cmake_compliant_language_name(c lang)
38+
_set_target_language_flags(${_target_name} ${_board_id} ${lang} ${scope})
2339

24-
target_compile_options(${_target_name} ${scope} ${compiler_recipe_flags})
40+
get_cmake_compliant_language_name(cpp lang)
41+
_set_target_language_flags(${_target_name} ${_board_id} ${lang} ${scope})
2542

2643
endif ()
2744

cmake/Platform/Targets/CoreLibTarget.cmake

Lines changed: 2 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -64,21 +64,10 @@ endfunction()
6464
#=============================================================================#
6565
function(_set_core_lib_flags _core_target_name _board_id)
6666

67-
# Set Assembly compiler flags
68-
get_cmake_compliant_language_name(asm flags_language)
69-
set_compiler_target_flags(${_core_target_name} "${_board_id}" PRIVATE
70-
LANGUAGE ${flags_language})
71-
# Set C compiler flags
72-
get_cmake_compliant_language_name(c flags_language)
73-
set_compiler_target_flags(${_core_target_name} "${_board_id}" PRIVATE
74-
LANGUAGE ${flags_language})
75-
# Set C++ compiler flags
76-
get_cmake_compliant_language_name(cpp flags_language)
77-
set_compiler_target_flags(${_core_target_name} "${_board_id}" PRIVATE
78-
LANGUAGE ${flags_language})
67+
set_compiler_target_flags(${_core_target_name} ${_board_id} PUBLIC)
7968

8069
# Set linker flags
81-
set_linker_flags(${_core_target_name} "${_board_id}")
70+
set_linker_flags(${_core_target_name} ${_board_id})
8271

8372
endfunction()
8473

0 commit comments

Comments
 (0)