@@ -127,15 +127,9 @@ function(Cython_compile_pyx)
127127 set (_language_arg ${_language_${_language} _arg})
128128 set (_language_extension ${_language_${_language} _extension})
129129
130- set (generated_files)
131-
132- foreach (_source_file IN LISTS _source_files)
130+ function (_compile_pyx _source_file generated_file)
133131
134- # Can use cmake_path for CMake 3.20+
135- # cmake_path(GET _source_file STEM _name)
136- get_filename_component (_name "${_source_file} " NAME_WE )
137132
138- set (generated_file "${CMAKE_CURRENT_BINARY_DIR} /${_name} .${_language_extension} " )
139133 set_source_files_properties (${generated_file} PROPERTIES GENERATED TRUE )
140134
141135 # Generated depfile is expected to have the ".dep" extension and be located along
@@ -167,9 +161,24 @@ function(Cython_compile_pyx)
167161 VERBATIM
168162 COMMENT ${comment}
169163 )
170- list (APPEND generated_files ${generated_file} )
171- endforeach ()
164+ endfunction ()
165+
166+ function (_set_output _input_file _output_var)
167+ # Can use cmake_path for CMake 3.20+
168+ # cmake_path(GET _input_file STEM basename)
169+ get_filename_component (_basename "${_input_file} " NAME_WE )
170+
171+ set (${_output_var} "${CMAKE_CURRENT_BINARY_DIR} /${_basename} .${_language_extension} " PARENT_SCOPE)
172+ endfunction ()
173+
174+ set (generated_files)
175+
176+ list (GET _source_files 0 _source_file)
177+ _set_output(${_source_file} generated_file)
178+ _compile_pyx(${_source_file} ${generated_file} )
179+ list (APPEND generated_files ${generated_file} )
172180
181+ # Output variable only if set
173182 if (_args_OUTPUT_VARIABLE)
174183 set (_output_variable ${_args_OUTPUT_VARIABLE} )
175184 set (${_output_variable} ${generated_files} PARENT_SCOPE)
0 commit comments