Repository navigation
Expand file tree
/
Copy pathCMakeLists.txt
More file actions
48 lines (39 loc) · 1.72 KB
/
Copy pathCMakeLists.txt
File metadata and controls
48 lines (39 loc) · 1.72 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
cmake_minimum_required(VERSION 3.10)
project(pegparser LANGUAGES NONE)
set(PEGPARSER_SRC_PATH "${CMAKE_CURRENT_LIST_DIR}/../com.oracle.graal.python.pegparser/src")
set(GRAALPY_SRC_PATH "${CMAKE_CURRENT_LIST_DIR}/../com.oracle.graal.python/src")
set(PARSER_PATH "${PEGPARSER_SRC_PATH}/com/oracle/graal/python/pegparser")
set(INPUT_PATH "${CMAKE_CURRENT_LIST_DIR}/input_files")
if(DEFINED ENV{MX_PYTHON})
set(PYTHON_EXE "$ENV{MX_PYTHON}")
elseif(DEFINED ENV{MX_PYTHON_VERSION})
set(PYTHON_EXE "python$ENV{MX_PYTHON_VERSION}")
else()
set(PYTHON_EXE "python3")
endif()
set(PARSER_TARGET "${PARSER_PATH}/Parser.java")
set(GRAMMAR "${INPUT_PATH}/python.gram")
set(TOKENS "${INPUT_PATH}/Tokens")
set(ASDL "${INPUT_PATH}/Python.asdl")
file(GLOB_RECURSE PEGEN_FILES
LIST_DIRECTORIES FALSE
"${CMAKE_CURRENT_LIST_DIR}/pegen/*.py")
file(GLOB_RECURSE PEGJAVA_FILES
LIST_DIRECTORIES FALSE
"${CMAKE_CURRENT_LIST_DIR}/pegjava/*.py")
file(GLOB_RECURSE ASDL_FILES
LIST_DIRECTORIES FALSE
"${CMAKE_CURRENT_LIST_DIR}/asdl/*.py")
set(ASDL_STAMP "Python.asdl.stamp")
add_custom_command(
OUTPUT "${PARSER_TARGET}"
COMMAND "${PYTHON_EXE}" "${CMAKE_CURRENT_LIST_DIR}/main_parser_gen.py" "${GRAMMAR}" "${TOKENS}" "${PARSER_TARGET}"
DEPENDS "${CMAKE_CURRENT_LIST_DIR}/main_parser_gen.py" "${GRAMMAR}" "${TOKENS}" ${PEGEN_FILES} ${PEGJAVA_FILES})
add_custom_command(
OUTPUT "${ASDL_STAMP}"
COMMAND "${PYTHON_EXE}" "${CMAKE_CURRENT_LIST_DIR}/main_asdl_gen.py" "${ASDL}" --sst-path "${PEGPARSER_SRC_PATH}" --ast-path "${GRAALPY_SRC_PATH}" --stamp "${ASDL_STAMP}"
DEPENDS "${CMAKE_CURRENT_LIST_DIR}/main_asdl_gen.py" "${ASDL}" ${ASDL_FILES})
add_custom_target(
Parser
ALL
DEPENDS "${PARSER_TARGET}" "${ASDL_STAMP}")