FreeCAD
1# The Qt for Python project officially recommends using pip to install Shiboken, so we expect to find Shiboken in the
2# site-packages directory. FreeCAD also requires shiboken6_generator, so this find script also locates that package
3# and ensures the inclusion of its include directory when using the pip finding mechanism
4
5
6find_package(Shiboken6 CONFIG QUIET)
7if(NOT Shiboken6_FOUND)
8if(NOT Shiboken6_INCLUDE_DIR AND TARGET Shiboken6::Shiboken6)
9get_property(Shiboken6_INCLUDE_DIR TARGET Shiboken6::Shiboken6 PROPERTY INTERFACE_INCLUDE_DIRECTORIES)
10endif()
11if(NOT Shiboken6_INCLUDE_DIR)
12find_pip_package(Shiboken6)
13if (Shiboken6_FOUND)
14set(SHIBOKEN_LIBRARY ${Shiboken6_LIBRARIES} CACHE INTERNAL "")
15set(SHIBOKEN_MAJOR_VERSION 6 CACHE INTERNAL 6)
16set(SHIBOKEN_FOUND ON CACHE BOOL OFF)
17endif()
18# The include directory we actually want is part of shiboken6-generator
19find_pip_package(shiboken6_generator)
20if (shiboken6_generator_FOUND)
21set(SHIBOKEN_INCLUDE_DIR ${shiboken6_generator_INCLUDE_DIRS} CACHE PATH "")
22endif()
23endif()
24else()
25set(SHIBOKEN_INCLUDE_DIR ${Shiboken6_INCLUDE_DIRS} CACHE PATH "")
26set(SHIBOKEN_LIBRARY ${Shiboken6_LIBRARIES} CACHE INTERNAL "")
27set(SHIBOKEN_FOUND ON CACHE BOOL OFF)
28endif()
29