diff --git a/src/cython_cmake/cmake/UseCython.cmake b/src/cython_cmake/cmake/UseCython.cmake index feac051..4daf8bf 100644 --- a/src/cython_cmake/cmake/UseCython.cmake +++ b/src/cython_cmake/cmake/UseCython.cmake @@ -8,13 +8,13 @@ # using cython. # # Cython_compile_pyx( [ ...] -# [TARGET_LANGUAGE C | CXX] +# [LANGUAGE C | CXX] # [LANGUAGE_LEVEL 2 | 3 | 3str] -# [OUTPUT_VAR ]) +# [OUTPUT_VARIABLE ]) # # Options: # -# ``TARGET_LANGUAGE [C | CXX]`` +# ``LANGUAGE [C | CXX]`` # Force the generation of either a C or C++ file. By default, a C file is # generated, unless the C language is not enabled for the project; in this # case, a C++ file is generated by default. @@ -28,14 +28,17 @@ # Using the Python-3str syntax and semantics means there cython does not assume # unicode is used by by default for string literals under Python 2 # -# ``OUTPUT_VAR `` -# Set the variable ```` in the parent scope to the path to the +# ``CYTHON_ARGS `` +# Specify additional arguments for the cythonization process. +# +# ``OUTPUT_VARIABLE `` +# Set the variable ```` in the parent scope to the path to the # generated source file. By default, ```` is used as the output # variable name. # # Defined variables: # -# ```` +# ```` # The path of the generated source file. # # Usage example: @@ -45,7 +48,7 @@ # find_package(Cython) # # Cython_compile_pyx(_hello.pyx -# OUTPUT_VAR _hello_source_files +# OUTPUT_VARIABLE _hello_source_files # ) # # Python_add_library(_hello @@ -162,10 +165,10 @@ function(add_cython_target _name) mark_as_advanced(CYTHON_ANNOTATE CYTHON_FLAGS) if(_args_C) - set(_target_language "C") + set(_language "C") endif() if(_args_CXX) - set(_target_language "CXX") + set(_language "CXX") endif() if(_args_PY2) @@ -215,10 +218,10 @@ function(add_cython_target _name) endif() Cython_compile_pyx( - TARGET_LANGUAGE ${_target_language} + LANGUAGE ${_language} LANGUAGE_LEVEL ${_language_level} CYTHON_ARGS ${_cython_args} - OUTPUT_VAR ${_args_OUTPUT_VAR} + OUTPUT_VARIABLE ${_args_OUTPUT_VAR} ${_source_file} ) @@ -229,7 +232,7 @@ endfunction() function(Cython_compile_pyx) set(_options ) - set(_one_value LANGUAGE_LEVEL TARGET_LANGUAGE OUTPUT_VAR) + set(_one_value LANGUAGE_LEVEL LANGUAGE OUTPUT_VARIABLE) set(_multi_value CYTHON_ARGS) cmake_parse_arguments(_args @@ -244,26 +247,26 @@ function(Cython_compile_pyx) # Set target language get_property(_languages GLOBAL PROPERTY ENABLED_LANGUAGES) - set(_target_language ${_args_TARGET_LANGUAGE}) - if(NOT _target_language) + set(_language ${_args_LANGUAGE}) + if(NOT _language) if("C" IN_LIST _languages) - set(_target_language "C") + set(_language "C") elseif("CXX" IN_LIST _languages) - set(_target_language "CXX") + set(_language "CXX") endif() else() - if(NOT _target_language MATCHES "^(C|CXX)$") - message(FATAL_ERROR "TARGET_LANGUAGE must be one of C or CXX") + if(NOT _language MATCHES "^(C|CXX)$") + message(FATAL_ERROR "LANGUAGE must be one of C or CXX") endif() endif() - set(_target_language_C_arg "") - set(_target_language_C_extension "c") - set(_target_language_CXX_arg "--cplus") - set(_target_language_CXX_extension "cxx") + set(_language_C_arg "") + set(_language_C_extension "c") + set(_language_CXX_arg "--cplus") + set(_language_CXX_extension "cxx") - set(_target_language_arg ${_target_language_${_target_language}_arg}) - set(_target_language_extension ${_target_language_${_target_language}_extension}) + set(_language_arg ${_language_${_language}_arg}) + set(_language_extension ${_language_${_language}_extension}) # Set language level set(_language_level ${_args_LANGUAGE_LEVEL}) @@ -290,13 +293,13 @@ function(Cython_compile_pyx) foreach(_source_file IN LISTS _source_files) cmake_path(GET _source_file STEM _name) - set(generated_file "${CMAKE_CURRENT_BINARY_DIR}/${_name}.${_target_language_extension}") + set(generated_file "${CMAKE_CURRENT_BINARY_DIR}/${_name}.${_language_extension}") set_source_files_properties(${generated_file} PROPERTIES GENERATED TRUE) file(RELATIVE_PATH generated_file_relative ${CMAKE_BINARY_DIR} ${generated_file}) - set(comment "Generating ${_target_language} source ${generated_file_relative}") + set(comment "Generating ${_language} source ${generated_file_relative}") get_source_file_property(pyx_location ${_source_file} LOCATION) @@ -305,7 +308,7 @@ function(Cython_compile_pyx) OUTPUT ${generated_file} COMMAND ${CYTHON_EXECUTABLE} ARGS - ${_target_language_arg} + ${_language_arg} ${_language_level_arg} ${_args_CYTHON_ARGS} ${_depfile_arg} @@ -321,9 +324,9 @@ function(Cython_compile_pyx) list(APPEND generated_files ${generated_file}) endforeach() - if(_args_OUTPUT_VAR) - set(_output_var ${_args_OUTPUT_VAR}) - set(${_output_var} ${generated_files} PARENT_SCOPE) + if(_args_OUTPUT_VARIABLE) + set(_output_variable ${_args_OUTPUT_VARIABLE}) + set(${_output_variable} ${generated_files} PARENT_SCOPE) endif() endfunction() diff --git a/tests/packages/simple/CMakeLists.txt b/tests/packages/simple/CMakeLists.txt index af8aebd..4d7f134 100644 --- a/tests/packages/simple/CMakeLists.txt +++ b/tests/packages/simple/CMakeLists.txt @@ -7,7 +7,7 @@ find_package( REQUIRED) find_package(Cython MODULE REQUIRED VERSION 3.0) -cython_compile_pyx(simple.pyx TARGET_LANGUAGE C OUTPUT_VAR simple_c) +cython_compile_pyx(simple.pyx LANGUAGE C OUTPUT_VARIABLE simple_c) python_add_library(simple MODULE "${simple_c}" WITH_SOABI)