@@ -76,13 +76,14 @@ message("LPYTHON_RTLIB_DIR: ${LPYTHON_RTLIB_DIR}")
76
76
message ("LPYTHON_RTLIB_LIBRARY: ${LPYTHON_RTLIB_LIBRARY} " )
77
77
78
78
79
- macro (RUN_UTIL RUN_FAIL RUN_NAME RUN_FILE_NAME RUN_LABELS RUN_EXTRAFILES RUN_EXTRA_ARGS )
79
+ macro (RUN_UTIL RUN_FAIL RUN_NAME RUN_FILE_NAME RUN_LABELS RUN_EXTRAFILES RUN_EXTRA_ARGS RUN_COPY_TO_BIN )
80
80
set (fail ${${RUN_FAIL}} )
81
81
set (name ${${RUN_NAME}} )
82
82
set (file_name ${${RUN_FILE_NAME}} )
83
83
set (labels ${${RUN_LABELS}} )
84
84
set (extra_files ${${RUN_EXTRAFILES}} )
85
85
set (extra_args ${${RUN_EXTRA_ARGS}} )
86
+ set (copy_to_bin ${${RUN_COPY_TO_BIN}} )
86
87
87
88
if (NOT name )
88
89
message (FATAL_ERROR "Must specify the NAME argument" )
@@ -105,6 +106,23 @@ macro(RUN_UTIL RUN_FAIL RUN_NAME RUN_FILE_NAME RUN_LABELS RUN_EXTRAFILES RUN_EXT
105
106
if (${fail} )
106
107
set_tests_properties (${name} PROPERTIES WILL_FAIL TRUE )
107
108
endif ()
109
+ elseif (KIND STREQUAL "llvm_py" )
110
+ add_custom_command (
111
+ OUTPUT ${name} .o
112
+ COMMAND ${LPYTHON} -c ${extra_args} ${CMAKE_CURRENT_SOURCE_DIR} /${file_name}.py -o ${name} .o
113
+ DEPENDS ${CMAKE_CURRENT_SOURCE_DIR} /${file_name}.py
114
+ VERBATIM )
115
+ add_executable (${name} ${name} .o ${extra_files} )
116
+ target_include_directories (${name} PRIVATE ${CMAKE_SOURCE_DIR} ${NUMPY_INCLUDE_DIR} )
117
+ set_target_properties (${name} PROPERTIES LINKER_LANGUAGE C )
118
+ target_link_libraries (${name} lpython_rtlib Python::Python )
119
+ add_test (${name} ${CMAKE_CURRENT_BINARY_DIR} /${name} )
120
+ if (labels )
121
+ set_tests_properties (${name} PROPERTIES LABELS "${labels} " )
122
+ endif ()
123
+ if (${fail} )
124
+ set_tests_properties (${name} PROPERTIES WILL_FAIL TRUE )
125
+ endif ()
108
126
elseif (KIND STREQUAL "llvm_sym" )
109
127
add_custom_command (
110
128
OUTPUT ${name} .o
@@ -153,9 +171,6 @@ macro(RUN_UTIL RUN_FAIL RUN_NAME RUN_FILE_NAME RUN_LABELS RUN_EXTRAFILES RUN_EXT
153
171
target_include_directories (${name} PRIVATE ${CMAKE_SOURCE_DIR} ${NUMPY_INCLUDE_DIR} )
154
172
set_target_properties (${name} PROPERTIES LINKER_LANGUAGE C )
155
173
target_link_libraries (${name} lpython_rtlib Python::Python )
156
- if (extra_files )
157
- file (COPY ${CMAKE_CURRENT_SOURCE_DIR} /${extra_files} DESTINATION ${CMAKE_CURRENT_BINARY_DIR} )
158
- endif ()
159
174
add_test (${name} ${CMAKE_CURRENT_BINARY_DIR} /${name} )
160
175
if (labels )
161
176
set_tests_properties (${name} PROPERTIES LABELS "${labels} " )
@@ -281,12 +296,17 @@ macro(RUN_UTIL RUN_FAIL RUN_NAME RUN_FILE_NAME RUN_LABELS RUN_EXTRAFILES RUN_EXT
281
296
set_tests_properties (${name} PROPERTIES WILL_FAIL TRUE )
282
297
endif ()
283
298
endif ()
299
+
300
+ if (copy_to_bin )
301
+ file (COPY ${CMAKE_CURRENT_SOURCE_DIR} /${copy_to_bin} DESTINATION ${CMAKE_CURRENT_BINARY_DIR} )
302
+ endif ()
303
+
284
304
endif ()
285
305
endmacro (RUN_UTIL )
286
306
287
307
macro (RUN )
288
308
set (options FAIL NOFAST ENABLE_CPYTHON LINK_NUMPY )
289
- set (oneValueArgs NAME IMPORT_PATH )
309
+ set (oneValueArgs NAME IMPORT_PATH COPY_TO_BIN )
290
310
set (multiValueArgs LABELS EXTRAFILES )
291
311
cmake_parse_arguments (RUN "${options} " "${oneValueArgs} "
292
312
"${multiValueArgs} " ${ARGN} )
@@ -309,14 +329,14 @@ macro(RUN)
309
329
endif ()
310
330
311
331
if (NOT FAST )
312
- RUN_UTIL (RUN_FAIL RUN_NAME RUN_FILE_NAME RUN_LABELS RUN_EXTRAFILES RUN_EXTRA_ARGS )
332
+ RUN_UTIL (RUN_FAIL RUN_NAME RUN_FILE_NAME RUN_LABELS RUN_EXTRAFILES RUN_EXTRA_ARGS RUN_COPY_TO_BIN )
313
333
endif ()
314
334
315
335
if ((FAST ) AND (NOT RUN_NOFAST ))
316
336
set (RUN_EXTRA_ARGS ${RUN_EXTRA_ARGS} --fast )
317
337
set (RUN_NAME "${RUN_NAME} _FAST" )
318
338
list (REMOVE_ITEM RUN_LABELS cpython cpython_sym ) # remove cpython, cpython_sym, from --fast test
319
- RUN_UTIL (RUN_FAIL RUN_NAME RUN_FILE_NAME RUN_LABELS RUN_EXTRAFILES RUN_EXTRA_ARGS )
339
+ RUN_UTIL (RUN_FAIL RUN_NAME RUN_FILE_NAME RUN_LABELS RUN_EXTRAFILES RUN_EXTRA_ARGS RUN_COPY_TO_BIN )
320
340
endif ()
321
341
endmacro (RUN )
322
342
@@ -575,10 +595,11 @@ RUN(NAME bindc_05 LABELS llvm c
575
595
EXTRAFILES bindc_05b.c )
576
596
RUN (NAME bindc_06 LABELS llvm c
577
597
EXTRAFILES bindc_06b.c )
578
- RUN (NAME bindpy_01 LABELS cpython c_py ENABLE_CPYTHON NOFAST EXTRAFILES bindpy_01_module.py )
579
- RUN (NAME bindpy_02 LABELS cpython c_py LINK_NUMPY EXTRAFILES bindpy_02_module.py )
580
- RUN (NAME bindpy_03 LABELS cpython c_py LINK_NUMPY NOFAST EXTRAFILES bindpy_03_module.py )
581
- RUN (NAME bindpy_04 LABELS cpython c_py LINK_NUMPY NOFAST EXTRAFILES bindpy_04_module.py )
598
+ RUN (NAME bindpy_01 LABELS cpython c_py ENABLE_CPYTHON NOFAST COPY_TO_BIN bindpy_01_module.py )
599
+ RUN (NAME bindpy_02 LABELS cpython c_py LINK_NUMPY COPY_TO_BIN bindpy_02_module.py )
600
+ RUN (NAME bindpy_03 LABELS cpython c_py LINK_NUMPY NOFAST COPY_TO_BIN bindpy_03_module.py )
601
+ RUN (NAME bindpy_04 LABELS cpython c_py LINK_NUMPY NOFAST COPY_TO_BIN bindpy_04_module.py )
602
+ RUN (NAME bindpy_05 LABELS llvm_py c_py ENABLE_CPYTHON COPY_TO_BIN bindpy_05_module.py )
582
603
RUN (NAME test_generics_01 LABELS cpython llvm c NOFAST )
583
604
RUN (NAME test_cmath LABELS cpython llvm c NOFAST )
584
605
RUN (NAME test_complex_01 LABELS cpython llvm c wasm wasm_x64 )
0 commit comments