Skip to content

Commit ba60cc6

Browse files
loooootritao
andauthored
add option to disable check for pivy at build-time (FreeCAD#19718)
Co-authored-by: João Matos <joao@tritao.eu>
1 parent e1512dc commit ba60cc6

File tree

2 files changed

+35
-32
lines changed

2 files changed

+35
-32
lines changed

cMake/FreeCAD_Helpers/InitializeFreeCADBuildOptions.cmake

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@ macro(InitializeFreeCADBuildOptions)
1212
option(FREECAD_USE_EXTERNAL_ONDSELSOLVER "Use system installed OndselSolver instead of git submodule." OFF)
1313
option(FREECAD_USE_FREETYPE "Builds the features using FreeType libs" ON)
1414
option(FREECAD_BUILD_DEBIAN "Prepare for a build of a Debian package" OFF)
15+
option(FREECAD_CHECK_PIVY "Check for pivy version using Python at build time" ON)
1516
option(BUILD_WITH_CONDA "Set ON if you build FreeCAD with conda" OFF)
1617
option(BUILD_DYNAMIC_LINK_PYTHON "If OFF extension-modules do not link against python-libraries" ON)
1718
option(INSTALL_TO_SITEPACKAGES "If ON the freecad root namespace (python) is installed into python's site-packages" ON)

cMake/FreeCAD_Helpers/SetupCoin3D.cmake

Lines changed: 34 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -35,43 +35,45 @@ endmacro(SetupCoin3D)
3535
macro(SetupPivy)
3636
# -------------------------------- Pivy --------------------------------
3737

38-
IF (NOT PIVY_VERSION)
39-
message(STATUS "Checking Pivy version by importing it in a Python program...")
38+
IF (FREECAD_CHECK_PIVY) # do not make pivy a host dependency for cross compiling
39+
IF (NOT PIVY_VERSION)
40+
message(STATUS "Checking Pivy version by importing it in a Python program...")
41+
execute_process(
42+
COMMAND ${Python3_EXECUTABLE} -c "import pivy as p; print(p.__version__,end='')"
43+
OUTPUT_VARIABLE PIVY_VERSION
44+
RESULT_VARIABLE RETURN_CODE)
45+
if (RETURN_CODE EQUAL 0)
46+
message(STATUS "Found Pivy ${PIVY_VERSION}")
47+
else ()
48+
message(ERROR "Failed to import Pivy using ${Python3_EXECUTABLE}")
49+
endif ()
50+
ENDIF ()
51+
52+
message(STATUS "Checking Pivy Coin3D version by importing it in a Python program...")
4053
execute_process(
41-
COMMAND ${Python3_EXECUTABLE} -c "import pivy as p; print(p.__version__,end='')"
42-
OUTPUT_VARIABLE PIVY_VERSION
54+
COMMAND ${Python3_EXECUTABLE} -c "import pivy as p; print(p.SoDB.getVersion(),end='')"
55+
OUTPUT_VARIABLE PIVY_COIN_VERSION
4356
RESULT_VARIABLE RETURN_CODE)
4457
if (RETURN_CODE EQUAL 0)
45-
message(STATUS "Found Pivy ${PIVY_VERSION}")
58+
message(STATUS "Found Pivy Coin3D ${PIVY_COIN_VERSION}")
4659
else ()
47-
message(ERROR "Failed to import Pivy using ${Python3_EXECUTABLE}")
60+
message(ERROR "Failed to get Pivy Coin3D version using ${Python3_EXECUTABLE}")
4861
endif ()
49-
ENDIF ()
50-
51-
message(STATUS "Checking Pivy Coin3D version by importing it in a Python program...")
52-
execute_process(
53-
COMMAND ${Python3_EXECUTABLE} -c "import pivy as p; print(p.SoDB.getVersion(),end='')"
54-
OUTPUT_VARIABLE PIVY_COIN_VERSION
55-
RESULT_VARIABLE RETURN_CODE)
56-
if (RETURN_CODE EQUAL 0)
57-
message(STATUS "Found Pivy Coin3D ${PIVY_COIN_VERSION}")
58-
else ()
59-
message(ERROR "Failed to get Pivy Coin3D version using ${Python3_EXECUTABLE}")
60-
endif ()
6162

62-
if (${PIVY_COIN_VERSION} MATCHES "([0-9]+)\\.([0-9]+)\\.([0-9]+)")
63-
set(PIVY_COIN_MAJOR_VERSION ${CMAKE_MATCH_1})
64-
set(PIVY_COIN_MINOR_VERSION ${CMAKE_MATCH_2})
65-
set(PIVY_COIN_MICRO_VERSION ${CMAKE_MATCH_3})
66-
set(PIVY_COIN_VERSION "${PIVY_COIN_MAJOR_VERSION}.${PIVY_COIN_MINOR_VERSION}.${PIVY_COIN_MICRO_VERSION}")
67-
else ()
68-
message(FATAL_ERROR "Failed to match Pivy Coin3D version string output")
69-
endif ()
63+
if (${PIVY_COIN_VERSION} MATCHES "([0-9]+)\\.([0-9]+)\\.([0-9]+)")
64+
set(PIVY_COIN_MAJOR_VERSION ${CMAKE_MATCH_1})
65+
set(PIVY_COIN_MINOR_VERSION ${CMAKE_MATCH_2})
66+
set(PIVY_COIN_MICRO_VERSION ${CMAKE_MATCH_3})
67+
set(PIVY_COIN_VERSION "${PIVY_COIN_MAJOR_VERSION}.${PIVY_COIN_MINOR_VERSION}.${PIVY_COIN_MICRO_VERSION}")
68+
else ()
69+
message(FATAL_ERROR "Failed to match Pivy Coin3D version string output")
70+
endif ()
7071

71-
if (NOT (
72-
(${COIN3D_MAJOR_VERSION} EQUAL ${PIVY_COIN_MAJOR_VERSION}) AND
73-
(${COIN3D_MINOR_VERSION} EQUAL ${PIVY_COIN_MINOR_VERSION}) AND
74-
(${COIN3D_MICRO_VERSION} EQUAL ${PIVY_COIN_MICRO_VERSION})))
75-
message(FATAL_ERROR "Coin3D version ${COIN3D_VERSION} mismatches Pivy Coin3D ${PIVY_COIN_VERSION}.")
76-
endif ()
72+
if (NOT (
73+
(${COIN3D_MAJOR_VERSION} EQUAL ${PIVY_COIN_MAJOR_VERSION}) AND
74+
(${COIN3D_MINOR_VERSION} EQUAL ${PIVY_COIN_MINOR_VERSION}) AND
75+
(${COIN3D_MICRO_VERSION} EQUAL ${PIVY_COIN_MICRO_VERSION})))
76+
message(FATAL_ERROR "Coin3D version ${COIN3D_VERSION} mismatches Pivy Coin3D ${PIVY_COIN_VERSION}.")
77+
endif ()
78+
endif(FREECAD_CHECK_PIVY)
7779
endmacro(SetupPivy)

0 commit comments

Comments
 (0)