Skip to content

Commit daefb0d

Browse files
committed
refactor: Add helper functions and simplify processing of input
1 parent bb683a3 commit daefb0d

File tree

1 file changed

+18
-9
lines changed

1 file changed

+18
-9
lines changed

src/cython_cmake/cmake/UseCython.cmake

Lines changed: 18 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -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

Comments
 (0)