@@ -26,24 +26,42 @@ 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 EXIT_CODE
33+ LIBCLANG_EXISTS
34+ )
3635
37- execute_process (COMMAND ${LIBCLANG_INSTALL_CMD}
36+ if (NOT LIBCLANG_EXISTS EQUAL "0" )
37+ set (LIBCLANG_INSTALL_CMD ${Python3_EXECUTABLE} -m pip install libclang==16.0.6)
38+ if (${Python3_VERSION} VERSION_GREATER_EQUAL "3.12" )
39+ set (LIBCLANG_INSTALL_CMD ${LIBCLANG_INSTALL_CMD} --break-system-packages)
40+ endif ()
41+ execute_process (COMMAND ${LIBCLANG_INSTALL_CMD}
3842 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} " )
43+ if (NOT PYTHON_PIP_LIBCLANG_RESULT EQUAL "0" )
44+ message (FATAL_ERROR "Command '${LIBCLANG_INSTALL_CMD} ' failed with error code ${PYTHON_PIP_LIBCLANG_RESULT} " )
45+ endif ()
4146endif ()
4247
43- execute_process (COMMAND ${JINJA2_INSTALL_CMD}
48+ # Ensure Jinja2 is installed
49+ execute_process (
50+ COMMAND ${Python3_EXECUTABLE} -c "import jinja2"
51+ RESULT_VARIABLE EXIT_CODE
52+ JINJA_EXISTS
53+ )
54+
55+ if (NOT LIBCLANG_EXISTS EQUAL "0" )
56+ set (JINJA2_INSTALL_CMD ${JINJA2_INSTALL_CMD} --break-system-packages)
57+ if (${Python3_VERSION} VERSION_GREATER_EQUAL "3.12" )
58+ set (JINJA2_INSTALL_CMD ${JINJA2_INSTALL_CMD} --break-system-packages)
59+ endif ()
60+ execute_process (COMMAND ${JINJA2_INSTALL_CMD}
4461 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} " )
62+ if (NOT PYTHON_PIP_JINJIA_RESULT EQUAL "0" )
63+ message (FATAL_ERROR "Command '${JINJA2_INSTALL_CMD} ' failed with error code ${PYTHON_PIP_JINJIA_RESULT} " )
64+ endif ()
4765endif ()
4866
4967file (GLOB INCLUDE include /* )
0 commit comments