FreeCAD
44 строки · 1.8 Кб
1macro(SetupCoin3D)
2# -------------------------------- Coin3D --------------------------------
3
4if (WIN32 AND MINGW)
5find_path(COIN3D_INCLUDE_DIRS Inventor/So.h)
6find_library(COIN3D_LIBRARIES Coin)
7endif ()
8
9# Try MODULE mode
10find_package(Coin3D)
11if (NOT COIN3D_FOUND)
12# Try CONFIG mode
13find_package(Coin CONFIG REQUIRED)
14if (Coin_FOUND)
15set(COIN3D_INCLUDE_DIRS ${Coin_INCLUDE_DIR})
16set(COIN3D_LIBRARIES ${Coin_LIBRARIES})
17endif ()
18ENDIF ()
19
20IF (NOT COIN3D_VERSION)
21file(READ "${COIN3D_INCLUDE_DIRS}/Inventor/C/basic.h" _coin3d_basic_h)
22string(REGEX MATCH "define[ \t]+COIN_MAJOR_VERSION[ \t]+([0-9?])" _coin3d_major_version_match "${_coin3d_basic_h}")
23set(COIN3D_MAJOR_VERSION "${CMAKE_MATCH_1}")
24string(REGEX MATCH "define[ \t]+COIN_MINOR_VERSION[ \t]+([0-9?])" _coin3d_minor_version_match "${_coin3d_basic_h}")
25set(COIN3D_MINOR_VERSION "${CMAKE_MATCH_1}")
26string(REGEX MATCH "define[ \t]+COIN_MICRO_VERSION[ \t]+([0-9?])" _coin3d_micro_version_match "${_coin3d_basic_h}")
27set(COIN3D_MICRO_VERSION "${CMAKE_MATCH_1}")
28set(COIN3D_VERSION "${COIN3D_MAJOR_VERSION}.${COIN3D_MINOR_VERSION}.${COIN3D_MICRO_VERSION}")
29ENDIF ()
30
31IF (NOT PIVY_VERSION)
32message(STATUS "Checking Pivy version by importing it in a Python program...")
33execute_process(
34COMMAND ${Python3_EXECUTABLE} -c "import pivy as p; print(p.__version__,end='')"
35OUTPUT_VARIABLE PIVY_VERSION
36RESULT_VARIABLE RETURN_CODE)
37if (RETURN_CODE EQUAL 0)
38message(STATUS "Found Pivy ${PIVY_VERSION}")
39else ()
40message(ERROR "Failed to import Pivy using ${Python3_EXECUTABLE}")
41endif ()
42ENDIF ()
43
44endmacro(SetupCoin3D)
45