@@ -26,24 +26,40 @@ file(COPY ../.clang-format DESTINATION "${RSN_PARSER_GENERATED_HEADERS_DIR}")
2626
2727find_package (Python3 REQUIRED)
2828
29- set (LIBCLANG_INSTALL_CMD ${Python3_EXECUTABLE} -m pip install libclang==16.0.6)
30- set (JINJA2_INSTALL_CMD ${Python3_EXECUTABLE} -m pip install jinja2)
31-
32- if (${Python3_VERSION} VERSION_GREATER_EQUAL "3.12" )
33- set (LIBCLANG_INSTALL_CMD ${LIBCLANG_INSTALL_CMD} --break-system -packages)
34- set (JINJA2_INSTALL_CMD ${JINJA2_INSTALL_CMD} --break-system -packages)
35- endif ()
29+ # Ensure libclang is installed
30+ execute_process (
31+ COMMAND ${Python3_EXECUTABLE} -c "import clang"
32+ RESULT_VARIABLE LIBCLANG_EXISTS
33+ )
3634
37- execute_process (COMMAND ${LIBCLANG_INSTALL_CMD}
35+ if (NOT LIBCLANG_EXISTS EQUAL "0" )
36+ set (LIBCLANG_INSTALL_CMD ${Python3_EXECUTABLE} -m pip install libclang==16.0.6)
37+ if (${Python3_VERSION} VERSION_GREATER_EQUAL "3.12" )
38+ set (LIBCLANG_INSTALL_CMD ${LIBCLANG_INSTALL_CMD} --break-system -packages)
39+ endif ()
40+ execute_process (COMMAND ${LIBCLANG_INSTALL_CMD}
3841 RESULT_VARIABLE PYTHON_PIP_LIBCLANG_RESULT)
39- if (NOT PYTHON_PIP_LIBCLANG_RESULT EQUAL "0" )
40- message (FATAL_ERROR "Command '${LIBCLANG_INSTALL_CMD} ' failed with error code ${PYTHON_PIP_LIBCLANG_RESULT} " )
42+ if (NOT PYTHON_PIP_LIBCLANG_RESULT EQUAL "0" )
43+ message (FATAL_ERROR "Command '${LIBCLANG_INSTALL_CMD} ' failed with error code ${PYTHON_PIP_LIBCLANG_RESULT} " )
44+ endif ()
4145endif ()
4246
43- execute_process (COMMAND ${JINJA2_INSTALL_CMD}
47+ # Ensure Jinja2 is installed
48+ execute_process (
49+ COMMAND ${Python3_EXECUTABLE} -c "import jinja2"
50+ RESULT_VARIABLE JINJA_EXISTS
51+ )
52+
53+ if (NOT JINJA_EXISTS EQUAL "0" )
54+ set (JINJA2_INSTALL_CMD ${Python3_EXECUTABLE} -m pip install jinja2)
55+ if (${Python3_VERSION} VERSION_GREATER_EQUAL "3.12" )
56+ set (JINJA2_INSTALL_CMD ${JINJA2_INSTALL_CMD} --break-system -packages)
57+ endif ()
58+ execute_process (COMMAND ${JINJA2_INSTALL_CMD}
4459 RESULT_VARIABLE PYTHON_PIP_JINJIA_RESULT)
45- if (NOT PYTHON_PIP_JINJIA_RESULT EQUAL "0" )
46- message (FATAL_ERROR "Command '${JINJA2_INSTALL_CMD} ' failed with error code ${PYTHON_PIP_JINJIA_RESULT} " )
60+ if (NOT PYTHON_PIP_JINJIA_RESULT EQUAL "0" )
61+ message (FATAL_ERROR "Command '${JINJA2_INSTALL_CMD} ' failed with error code ${PYTHON_PIP_JINJIA_RESULT} " )
62+ endif ()
4763endif ()
4864
4965file (GLOB INCLUDE include /*)
0 commit comments