Skip to content

Commit eadd0f9

Browse files
committed
TEST: Refactor: Handle import paths in extra args
1 parent 3fbe95a commit eadd0f9

File tree

1 file changed

+36
-60
lines changed

1 file changed

+36
-60
lines changed

integration_tests/CMakeLists.txt

Lines changed: 36 additions & 60 deletions
Original file line numberDiff line numberDiff line change
@@ -73,11 +73,10 @@ message("LPYTHON_RTLIB_DIR: ${LPYTHON_RTLIB_DIR}")
7373
message("LPYTHON_RTLIB_LIBRARY: ${LPYTHON_RTLIB_LIBRARY}")
7474

7575

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)
7777
set(fail ${${RUN_FAIL}})
7878
set(name ${${RUN_NAME}})
7979
set(file_name ${${RUN_FILE_NAME}})
80-
set(import_path ${${RUN_IMPORT_PATH}})
8180
set(labels ${${RUN_LABELS}})
8281
set(run_enable_cpython ${${RUN_ENABLE_CPYTHON}})
8382
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
8988

9089
if (${KIND} IN_LIST labels)
9190
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)
10596
add_executable(${name} ${name}.o ${extra_files})
10697
set_target_properties(${name} PROPERTIES LINKER_LANGUAGE C)
10798
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
113104
set_tests_properties(${name} PROPERTIES WILL_FAIL TRUE)
114105
endif()
115106
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)
130112
add_executable(${name} ${name}.c ${extra_files})
131113
target_include_directories(${name} PRIVATE ${CMAKE_SOURCE_DIR})
132114
set_target_properties(${name} PROPERTIES LINKER_LANGUAGE C)
@@ -261,13 +243,19 @@ macro(RUN)
261243
set(RUN_EXTRA_ARGS ${RUN_EXTRA_ARGS} --enable-cpython)
262244
endif()
263245

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)
265253

266254
if ((NOT DISABLE_FAST) AND (NOT RUN_NOFAST))
267255
set(RUN_EXTRA_ARGS ${RUN_EXTRA_ARGS} --fast)
268256
set(RUN_NAME "${RUN_NAME}_FAST")
269257
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)
271259
endif()
272260
endmacro(RUN)
273261

@@ -281,43 +269,31 @@ macro(COMPILE)
281269
cmake_parse_arguments(COMPILE "${options}" "${oneValueArgs}"
282270
"${multiValueArgs}" ${ARGN} )
283271
set(name ${COMPILE_NAME})
284-
set(import_path ${COMPILE_IMPORT_PATH})
285272
if (NOT name)
286273
message(FATAL_ERROR "Must specify the NAME argument")
287274
endif()
288275

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+
289283
if (${KIND} IN_LIST COMPILE_LABELS)
290284
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)
305290
add_library(${name} OBJECT ${name}.o)
306291
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)
321297
add_library(${name} OBJECT ${name}.c)
322298
target_link_libraries(${name} lpython_rtlib)
323299
elseif(KIND STREQUAL "cpython")

0 commit comments

Comments
 (0)