diff options
author | Cristian Maureira-Fredes <cristian.maureira-fredes@qt.io> | 2018-11-24 18:47:33 +0100 |
---|---|---|
committer | Alexandru Croitor <alexandru.croitor@qt.io> | 2018-11-28 11:44:22 +0000 |
commit | b067f541b46e0544a336629f7c4e2688e9465b67 (patch) | |
tree | aa7ea609c687acfd74229b869907241cb3b4aa0c /sources/pyside2/cmake | |
parent | a5d4a71d32d1b2a095119351a0935c49f3ac0a50 (diff) |
Install snippets glue code
The module-specific glue files as well as the standalone glue files
are now installed into the PySide2 package.
The glue files are now also listed as dependencies for the shiboken
generator run, which means that modifying those files will now
correctly force a shiboken re-run for the relevant modules.
Change-Id: I545c7ada379fafb7f225d0b0f5ce495bf6d4795d
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
Reviewed-by: Cristian Maureira-Fredes <cristian.maureira-fredes@qt.io>
Diffstat (limited to 'sources/pyside2/cmake')
-rw-r--r-- | sources/pyside2/cmake/Macros/PySideModules.cmake | 29 |
1 files changed, 27 insertions, 2 deletions
diff --git a/sources/pyside2/cmake/Macros/PySideModules.cmake b/sources/pyside2/cmake/Macros/PySideModules.cmake index 0f8b500ac..cd2786b13 100644 --- a/sources/pyside2/cmake/Macros/PySideModules.cmake +++ b/sources/pyside2/cmake/Macros/PySideModules.cmake @@ -14,7 +14,11 @@ macro(create_pyside_module module_deps module_typesystem_path module_sources - module_static_sources) + module_static_sources + #module_typesystem_name + #module_dropped_entries + #module_glue_sources + ) string(TOLOWER ${module_name} _module) string(REGEX REPLACE ^qt "" _module ${_module}) if(${ARGC} GREATER 7) @@ -27,6 +31,11 @@ macro(create_pyside_module else() set (dropped_entries "") endif() + if(${ARGC} GREATER 9) + set (glue_sources "${${ARGV9}}") + else() + set (glue_sources "") + endif() if (NOT EXISTS ${typesystem_name}) set(typesystem_path ${CMAKE_CURRENT_SOURCE_DIR}/typesystem_${_module}.xml) @@ -80,6 +89,21 @@ macro(create_pyside_module get_filename_component(pyside_binary_dir ${CMAKE_CURRENT_BINARY_DIR} DIRECTORY) + # Install module glue files. + string(TOLOWER ${module_name} lower_module_name) + set(${module_name}_glue "${CMAKE_CURRENT_SOURCE_DIR}/../glue/${lower_module_name}.cpp") + set(${module_name}_glue_dependency "") + if(EXISTS ${${module_name}_glue}) + install(FILES ${${module_name}_glue} DESTINATION share/PySide2${pyside2_SUFFIX}/glue) + set(${module_name}_glue_dependency ${${module_name}_glue}) + endif() + + # Install standalone glue files into typesystems subfolder, so that the resolved relative + # paths remain correct. + if (glue_sources) + install(FILES ${glue_sources} DESTINATION share/PySide2${pyside2_SUFFIX}/typesystems/glue) + endif() + add_custom_command( OUTPUT "${CMAKE_CURRENT_BINARY_DIR}/mjb_rejected_classes.log" BYPRODUCTS ${${module_sources}} COMMAND "${SHIBOKEN_BINARY}" ${GENERATOR_EXTRA_FLAGS} @@ -94,6 +118,8 @@ macro(create_pyside_module --drop-type-entries="${dropped_entries}" COMMAND ${_python_postprocessor} DEPENDS ${total_type_system_files} + ${glue_sources} + ${${module_name}_glue_dependency} WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR} COMMENT "Running generator for ${module_name}...") @@ -117,7 +143,6 @@ macro(create_pyside_module # install install(TARGETS ${module_name} LIBRARY DESTINATION ${PYTHON_SITE_PACKAGES}/PySide2) - string(TOLOWER ${module_name} lower_module_name) install(FILES ${CMAKE_CURRENT_BINARY_DIR}/PySide2/${module_name}/pyside2_${lower_module_name}_python.h DESTINATION include/PySide2${pyside2_SUFFIX}/${module_name}/) file(GLOB typesystem_files ${CMAKE_CURRENT_SOURCE_DIR}/typesystem_*.xml ${typesystem_path}) |