Skip to content

Commit 2d2003c

Browse files
committed
Allow caller to skip the automatic pip module installer
1 parent 68831e6 commit 2d2003c

File tree

1 file changed

+24
-18
lines changed

1 file changed

+24
-18
lines changed

RenderStateNotation/CMakeLists.txt

Lines changed: 24 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,8 @@ cmake_minimum_required (VERSION 3.10)
22

33
project(Diligent-RenderStateNotation CXX)
44

5+
option(DILIGENT_SKIP_PYTHON_DEPS "Skip installing Python packages with pip during configure" OFF)
6+
57
set(REFLECTED
68
${Diligent-GraphicsEngine_SOURCE_DIR}/interface/BlendState.h
79
${Diligent-GraphicsEngine_SOURCE_DIR}/interface/DepthStencilState.h
@@ -26,24 +28,28 @@ file(COPY ../.clang-format DESTINATION "${RSN_PARSER_GENERATED_HEADERS_DIR}")
2628

2729
find_package(Python3 REQUIRED)
2830

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.11")
33-
set(LIBCLANG_INSTALL_CMD ${LIBCLANG_INSTALL_CMD} --break-system-packages)
34-
set(JINJA2_INSTALL_CMD ${JINJA2_INSTALL_CMD} --break-system-packages)
35-
endif()
36-
37-
execute_process(COMMAND ${LIBCLANG_INSTALL_CMD}
38-
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}")
41-
endif()
42-
43-
execute_process(COMMAND ${JINJA2_INSTALL_CMD}
44-
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}")
31+
if(NOT DILIGENT_SKIP_PYTHON_DEPS)
32+
set(LIBCLANG_INSTALL_CMD ${Python3_EXECUTABLE} -m pip install libclang==16.0.6)
33+
set(JINJA2_INSTALL_CMD ${Python3_EXECUTABLE} -m pip install jinja2)
34+
35+
if(${Python3_VERSION} VERSION_GREATER_EQUAL "3.11")
36+
set(LIBCLANG_INSTALL_CMD ${LIBCLANG_INSTALL_CMD} --break-system-packages)
37+
set(JINJA2_INSTALL_CMD ${JINJA2_INSTALL_CMD} --break-system-packages)
38+
endif()
39+
40+
execute_process(COMMAND ${LIBCLANG_INSTALL_CMD}
41+
RESULT_VARIABLE 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()
45+
46+
execute_process(COMMAND ${JINJA2_INSTALL_CMD}
47+
RESULT_VARIABLE PYTHON_PIP_JINJIA_RESULT)
48+
if(NOT PYTHON_PIP_JINJIA_RESULT EQUAL "0")
49+
message(FATAL_ERROR "Command '${JINJA2_INSTALL_CMD}' failed with error code ${PYTHON_PIP_JINJIA_RESULT}")
50+
endif()
51+
else()
52+
message(STATUS "DILIGENT_SKIP_PYTHON_DEPS=ON — skipping pip installs")
4753
endif()
4854

4955
file(GLOB INCLUDE include/*)

0 commit comments

Comments
 (0)