@@ -73,11 +73,10 @@ message("LPYTHON_RTLIB_DIR: ${LPYTHON_RTLIB_DIR}")
73
73
message ("LPYTHON_RTLIB_LIBRARY: ${LPYTHON_RTLIB_LIBRARY} " )
74
74
75
75
76
- macro (RUN_UTIL RUN_FAIL RUN_NAME RUN_FILE_NAME RUN_IMPORT_PATH RUN_LABELS RUN_ENABLE_CPYTHON RUN_EXTRAFILES RUN_EXTRA_ARGS)
76
+ macro (RUN_UTIL RUN_FAIL RUN_NAME RUN_FILE_NAME RUN_LABELS RUN_ENABLE_CPYTHON RUN_EXTRAFILES RUN_EXTRA_ARGS)
77
77
set (fail ${${RUN_FAIL} })
78
78
set (name ${${RUN_NAME} })
79
79
set (file_name ${${RUN_FILE_NAME} })
80
- set (import_path ${${RUN_IMPORT_PATH} })
81
80
set (labels ${${RUN_LABELS} })
82
81
set (run_enable_cpython ${${RUN_ENABLE_CPYTHON} })
83
82
set (extra_files ${${RUN_EXTRAFILES} })
@@ -89,19 +88,11 @@ macro(RUN_UTIL RUN_FAIL RUN_NAME RUN_FILE_NAME RUN_IMPORT_PATH RUN_LABELS RUN_EN
89
88
90
89
if (${KIND} IN_LIST labels )
91
90
if (KIND STREQUAL "llvm" )
92
- if (import_path)
93
- add_custom_command (
94
- OUTPUT ${name} .o
95
- COMMAND ${LPYTHON} -c -I ${CMAKE_CURRENT_SOURCE_DIR} /${import_path} ${extra_args} ${CMAKE_CURRENT_SOURCE_DIR} /${file_name} .py -o ${name} .o
96
- DEPENDS ${CMAKE_CURRENT_SOURCE_DIR} /${file_name} .py
97
- VERBATIM )
98
- else ()
99
- add_custom_command (
100
- OUTPUT ${name} .o
101
- COMMAND ${LPYTHON} -c ${extra_args} ${CMAKE_CURRENT_SOURCE_DIR} /${file_name} .py -o ${name} .o
102
- DEPENDS ${CMAKE_CURRENT_SOURCE_DIR} /${file_name} .py
103
- VERBATIM )
104
- endif ()
91
+ add_custom_command (
92
+ OUTPUT ${name} .o
93
+ COMMAND ${LPYTHON} -c ${extra_args} ${CMAKE_CURRENT_SOURCE_DIR} /${file_name} .py -o ${name} .o
94
+ DEPENDS ${CMAKE_CURRENT_SOURCE_DIR} /${file_name} .py
95
+ VERBATIM )
105
96
add_executable (${name} ${name} .o ${extra_files} )
106
97
set_target_properties (${name} PROPERTIES LINKER_LANGUAGE C)
107
98
target_link_libraries (${name} lpython_rtlib)
@@ -113,20 +104,11 @@ macro(RUN_UTIL RUN_FAIL RUN_NAME RUN_FILE_NAME RUN_IMPORT_PATH RUN_LABELS RUN_EN
113
104
set_tests_properties (${name} PROPERTIES WILL_FAIL TRUE )
114
105
endif ()
115
106
elseif (KIND STREQUAL "c" )
116
- if (import_path)
117
- add_custom_command (
118
- OUTPUT ${name} .c
119
- COMMAND ${LPYTHON} ${extra_args} -I ${CMAKE_CURRENT_SOURCE_DIR} /${import_path} --show-c ${CMAKE_CURRENT_SOURCE_DIR} /${file_name} .py > ${name} .c
120
- DEPENDS ${CMAKE_CURRENT_SOURCE_DIR} /${file_name} .py
121
- VERBATIM )
122
- else ()
123
- add_custom_command (
124
- OUTPUT ${name} .c
125
- COMMAND ${LPYTHON} ${extra_args} --show-c ${CMAKE_CURRENT_SOURCE_DIR} /${file_name} .py > ${name} .c
126
- DEPENDS ${CMAKE_CURRENT_SOURCE_DIR} /${file_name} .py
127
- VERBATIM )
128
- endif ()
129
-
107
+ add_custom_command (
108
+ OUTPUT ${name} .c
109
+ COMMAND ${LPYTHON} ${extra_args} --show-c ${CMAKE_CURRENT_SOURCE_DIR} /${file_name} .py > ${name} .c
110
+ DEPENDS ${CMAKE_CURRENT_SOURCE_DIR} /${file_name} .py
111
+ VERBATIM )
130
112
add_executable (${name} ${name} .c ${extra_files} )
131
113
target_include_directories (${name} PRIVATE ${CMAKE_SOURCE_DIR} )
132
114
set_target_properties (${name} PROPERTIES LINKER_LANGUAGE C)
@@ -261,13 +243,19 @@ macro(RUN)
261
243
set (RUN_EXTRA_ARGS ${RUN_EXTRA_ARGS} --enable-cpython)
262
244
endif ()
263
245
264
- RUN_UTIL(RUN_FAIL RUN_NAME RUN_FILE_NAME RUN_IMPORT_PATH RUN_LABELS RUN_ENABLE_CPYTHON RUN_EXTRAFILES RUN_EXTRA_ARGS)
246
+ if (RUN_IMPORT_PATH)
247
+ # Only one import path supported for now
248
+ # Later add support for multiple import paths by looping over and appending to extra args
249
+ set (RUN_EXTRA_ARGS ${RUN_EXTRA_ARGS} -I${CMAKE_CURRENT_SOURCE_DIR} /${RUN_IMPORT_PATH} )
250
+ endif ()
251
+
252
+ RUN_UTIL(RUN_FAIL RUN_NAME RUN_FILE_NAME RUN_LABELS RUN_ENABLE_CPYTHON RUN_EXTRAFILES RUN_EXTRA_ARGS)
265
253
266
254
if ((NOT DISABLE_FAST) AND (NOT RUN_NOFAST))
267
255
set (RUN_EXTRA_ARGS ${RUN_EXTRA_ARGS} --fast)
268
256
set (RUN_NAME "${RUN_NAME} _FAST" )
269
257
list (REMOVE_ITEM RUN_LABELS cpython) # remove cpython from --fast test
270
- RUN_UTIL(RUN_FAIL RUN_NAME RUN_FILE_NAME RUN_IMPORT_PATH RUN_LABELS RUN_ENABLE_CPYTHON RUN_EXTRAFILES RUN_EXTRA_ARGS)
258
+ RUN_UTIL(RUN_FAIL RUN_NAME RUN_FILE_NAME RUN_LABELS RUN_ENABLE_CPYTHON RUN_EXTRAFILES RUN_EXTRA_ARGS)
271
259
endif ()
272
260
endmacro (RUN)
273
261
@@ -281,43 +269,31 @@ macro(COMPILE)
281
269
cmake_parse_arguments (COMPILE "${options} " "${oneValueArgs} "
282
270
"${multiValueArgs} " ${ARGN} )
283
271
set (name ${COMPILE_NAME} )
284
- set (import_path ${COMPILE_IMPORT_PATH} )
285
272
if (NOT name )
286
273
message (FATAL_ERROR "Must specify the NAME argument" )
287
274
endif ()
288
275
276
+ set (extra_args "" )
277
+ if (COMPILE_IMPORT_PATH)
278
+ # Only one import path supported for now
279
+ # Later add support for multiple import paths by looping over and appending to extra args
280
+ set (extra_args ${extra_args} -I${CMAKE_CURRENT_SOURCE_DIR} /${COMPILE_IMPORT_PATH} )
281
+ endif ()
282
+
289
283
if (${KIND} IN_LIST COMPILE_LABELS)
290
284
if (KIND STREQUAL "llvm" )
291
- if (import_path)
292
- add_custom_command (
293
- OUTPUT ${name} .o
294
- COMMAND ${LPYTHON} --disable-main -c -I ${CMAKE_CURRENT_SOURCE_DIR} /${import_path} ${CMAKE_CURRENT_SOURCE_DIR} /${name} .py -o ${name} .o
295
- DEPENDS ${CMAKE_CURRENT_SOURCE_DIR} /${name} .py
296
- VERBATIM )
297
- else ()
298
- add_custom_command (
299
- OUTPUT ${name} .o
300
- COMMAND ${LPYTHON} --disable-main -c ${CMAKE_CURRENT_SOURCE_DIR} /${name} .py -o ${name} .o
301
- DEPENDS ${CMAKE_CURRENT_SOURCE_DIR} /${name} .py
302
- VERBATIM )
303
- endif ()
304
-
285
+ add_custom_command (
286
+ OUTPUT ${name} .o
287
+ COMMAND ${LPYTHON} ${extra_args} --disable-main -c ${CMAKE_CURRENT_SOURCE_DIR} /${name} .py -o ${name} .o
288
+ DEPENDS ${CMAKE_CURRENT_SOURCE_DIR} /${name} .py
289
+ VERBATIM )
305
290
add_library (${name} OBJECT ${name} .o)
306
291
elseif (KIND STREQUAL "c" )
307
- if (import_path)
308
- add_custom_command (
309
- OUTPUT ${name} .c
310
- COMMAND ${LPYTHON} --disable-main -I ${CMAKE_CURRENT_SOURCE_DIR} /${import_path} --show-c ${CMAKE_CURRENT_SOURCE_DIR} /${name} .py > ${name} .c
311
- DEPENDS ${CMAKE_CURRENT_SOURCE_DIR} /${name} .py
312
- VERBATIM )
313
- else ()
314
- add_custom_command (
315
- OUTPUT ${name} .c
316
- COMMAND ${LPYTHON} --disable-main --show-c ${CMAKE_CURRENT_SOURCE_DIR} /${name} .py > ${name} .c
317
- DEPENDS ${CMAKE_CURRENT_SOURCE_DIR} /${name} .py
318
- VERBATIM )
319
- endif ()
320
-
292
+ add_custom_command (
293
+ OUTPUT ${name} .c
294
+ COMMAND ${LPYTHON} ${extra_args} --disable-main --show-c ${CMAKE_CURRENT_SOURCE_DIR} /${name} .py > ${name} .c
295
+ DEPENDS ${CMAKE_CURRENT_SOURCE_DIR} /${name} .py
296
+ VERBATIM )
321
297
add_library (${name} OBJECT ${name} .c)
322
298
target_link_libraries (${name} lpython_rtlib)
323
299
elseif (KIND STREQUAL "cpython" )
0 commit comments