33#
44
55# --- LIBRARY --- #
6- SET (PYWRAP ${PROJECT_NAME} _pywrap)
6+ SET (PYWRAP ${PROJECT_NAME} _pywrap)
77SET (PYWRAP ${PYWRAP} PARENT_SCOPE)
88
99MAKE_DIRECTORY ("${${PROJECT_NAME} _BINARY_DIR}/python/${PROJECT_NAME} " )
10+ include (${PROJECT_SOURCE_DIR} /cmake/stubs.cmake)
1011
1112ADD_CUSTOM_TARGET (python)
1213SET_TARGET_PROPERTIES (python PROPERTIES EXCLUDE_FROM_DEFAULT_BUILD True )
1314
1415ADD_LIBRARY (${PYWRAP} SHARED main.cpp)
1516ADD_DEPENDENCIES (python ${PYWRAP} )
16- TARGET_LINK_LIBRARIES (${PYWRAP} PUBLIC ${PROJECT_NAME} )
17+ TARGET_LINK_LIBRARIES (${PYWRAP} PUBLIC ${PROJECT_NAME} )
1718# BOOST_PYTHON_MEMBER_FUNCTION_OVERLOADS spews conversion warnings from int to long unsigned int.
1819# Unfortunately, using literals does not work in a macro. As such, this turns them off for the entire wrapper:
1920IF (NOT WIN32 )
2021 TARGET_COMPILE_OPTIONS (${PYWRAP} PRIVATE "-Wno-conversion" )
2122ENDIF ()
2223IF (IS_ABSOLUTE ${PYTHON_SITELIB} )
23- SET (${PYWRAP} _INSTALL_DIR ${PYTHON_SITELIB} / ${PROJECT_NAME } )
24+ SET (ABSOLUTE_PYTHON_SITELIB ${PYTHON_SITELIB} )
2425ELSE ()
25- SET (${PYWRAP} _INSTALL_DIR ${CMAKE_INSTALL_PREFIX} /${PYTHON_SITELIB} / ${PROJECT_NAME } )
26+ SET (ABSOLUTE_PYTHON_SITELIB ${CMAKE_INSTALL_PREFIX} /${PYTHON_SITELIB} )
2627ENDIF ()
28+ SET (${PYWRAP} _INSTALL_DIR ${ABSOLUTE_PYTHON_SITELIB} /${PROJECT_NAME} )
2729
2830SET_TARGET_PROPERTIES (${PYWRAP}
29- PROPERTIES
31+ PROPERTIES
3032 PREFIX ""
3133 SUFFIX ${PYTHON_EXT_SUFFIX}
3234 OUTPUT_NAME "${PROJECT_NAME} "
@@ -39,7 +41,14 @@ ENDIF()
3941
4042INSTALL (TARGETS ${PYWRAP} DESTINATION ${${PYWRAP} _INSTALL_DIR})
4143
42- # --- INSTALL SCRIPTS
44+ # --- GENERATE STUBS
45+ IF (GENERATE_PYTHON_STUBS)
46+ LOAD_STUBGEN()
47+
48+ GENERATE_STUBS(${CMAKE_CURRENT_BINARY_DIR} ${PROJECT_NAME} ${ABSOLUTE_PYTHON_SITELIB} )
49+ ENDIF (GENERATE_PYTHON_STUBS)
50+
51+ # --- INSTALL SCRIPTS
4352SET (PYTHON_FILES
4453 __init__.py
4554 )
0 commit comments