@@ -73,46 +73,35 @@ endfunction()
7373#=============================================================================#
7474# Adds/Creates a static library target for Arduino's core library (Core-Lib),
7575# required by every arduino target.
76- # _target_name - Name of the Application/Executable target created earlier.
7776# _board_id - Board to create the core library for.
7877# Note that each board has a unique version of the library.
78+ # _return_var - Name of variable in parent-scope holding the return value.
79+ # Returns - Generated Core-lib's target name.
7980#=============================================================================#
80- function (add_arduino_core_lib _target_name)
81-
82- generate_core_lib_target_name(${ARDUINO_CMAKE_PROJECT_BOARD} core_lib_target)
83-
84- if (TARGET ${core_lib_target} ) # Core-lib target already created for the given board
85- if (TARGET ${_target_name} ) # Executable/Firmware target also exists
86- target_link_libraries (${_target_name} PUBLIC ${core_lib_target} )
87- endif ()
81+ function (add_arduino_core_lib _board_id _return_var)
8882
89- else () # Core-Lib target needs to be created
83+ generate_core_lib_target_name( ${_board_id} core_lib_target)
9084
91- _get_board_core(${ARDUINO_CMAKE_PROJECT_BOARD } board_core) # Get board's core
92- _get_board_variant(${ARDUINO_CMAKE_PROJECT_BOARD } board_variant) # Get board's variant
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
9387
94- # Find sources in core directory and add the library target
95- find_source_files("${ARDUINO_CMAKE_CORE_${board_core} _PATH}" core_sources)
88+ # Find sources in core directory and add the library target
89+ find_source_files("${ARDUINO_CMAKE_CORE_${board_core} _PATH}" core_sources)
9690
97- if (CMAKE_HOST_UNIX )
98- if (CMAKE_HOST_UBUNTU OR CMAKE_HOST_DEBIAN)
99- list (FILTER core_sources EXCLUDE REGEX "[Mm]ain\\ .c.*" )
100- endif ()
91+ if (CMAKE_HOST_UNIX )
92+ if (CMAKE_HOST_UBUNTU OR CMAKE_HOST_DEBIAN)
93+ list (FILTER core_sources EXCLUDE REGEX "[Mm]ain\\ .c.*" )
10194 endif ()
95+ endif ()
10296
103- add_library (${core_lib_target} STATIC "${core_sources} " )
104-
105- # Include platform's core and variant directories
106- target_include_directories (${core_lib_target} PUBLIC "${ARDUINO_CMAKE_CORE_${board_core} _PATH}" )
107- target_include_directories (${core_lib_target} PUBLIC "${ARDUINO_CMAKE_VARIANT_${board_variant} _PATH}" )
97+ add_library (${core_lib_target} STATIC "${core_sources} " )
10898
109- _set_core_lib_flags(${core_lib_target} )
99+ # Include platform's core and variant directories
100+ target_include_directories (${core_lib_target} PUBLIC "${ARDUINO_CMAKE_CORE_${board_core} _PATH}" )
101+ target_include_directories (${core_lib_target} PUBLIC "${ARDUINO_CMAKE_VARIANT_${board_variant} _PATH}" )
110102
111- # Link Core-Lib to executable target
112- if (TARGET ${_target_name} )
113- target_link_libraries (${_target_name} PUBLIC "${core_lib_target} " )
114- endif ()
103+ _set_core_lib_flags(${core_lib_target} )
115104
116- endif ( )
105+ set ( ${_return_var} ${core_lib_target} PARENT_SCOPE )
117106
118107endfunction ()
0 commit comments