Skip to content

Commit

Permalink
Adapt Shiboken generation for Qt6
Browse files Browse the repository at this point in the history
  • Loading branch information
YakoYakoYokuYoku committed Apr 18, 2024
1 parent e3b74f7 commit 9e3896a
Show file tree
Hide file tree
Showing 10 changed files with 64 additions and 263 deletions.
6 changes: 2 additions & 4 deletions Engine/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -31,10 +31,8 @@ list(TRANSFORM PYENGINE_INCLUDE_DIRS PREPEND "-I" OUTPUT_VARIABLE PYENGINE_INCS)

if(NATRON_QT6)
set(PYENGINE_HEADER PySide6_Engine_Python.h)
set(POST_SHIBOKEN ../tools/utils/runPostShiboken6.sh)
else()
set(PYENGINE_HEADER PySide2_Engine_Python.h)
set(POST_SHIBOKEN ../tools/utils/runPostShiboken2.sh)
endif()

set(shiboken_args
Expand All @@ -49,8 +47,8 @@ execute_process(COMMAND ${Python3_EXECUTABLE} ../tools/utils/sourceList.py types
OUTPUT_VARIABLE PyEngine_SOURCES)
set_property(SOURCE ${PyEngine_SOURCES} PROPERTY SKIP_AUTOGEN ON)
add_custom_command(OUTPUT ${PyEngine_SOURCES}
COMMAND ${SHIBOKEN_EXE} ${shiboken_args}
COMMAND bash ${POST_SHIBOKEN} ${PYENGINE_OUT}/NatronEngine natronengine
COMMAND $<TARGET_FILE:${SHIBOKEN_EXE}> ${shiboken_args}
COMMAND ${Python3_EXECUTABLE} ../tools/utils/sourceCleanup.py typesystem_engine.xml ${PYENGINE_OUT}
DEPENDS ${PYENGINE_HEADER} ${NatronEngine_HEADERS} ${POST_SHIBOKEN} typesystem_engine.xml
WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR})

Expand Down
8 changes: 6 additions & 2 deletions Engine/typesystem_engine.xml
Original file line number Diff line number Diff line change
Expand Up @@ -210,7 +210,7 @@
</container-type>

<!--Natron global enums-->
<namespace-type name="NATRON_ENUM">
<namespace-type name="Natron">
<enum-type name="StatusEnum"/>
<enum-type name="MergingFunctionEnum"/>
<enum-type name="StandardButtonEnum" flags="StandardButtons"/>
Expand Down Expand Up @@ -1502,7 +1502,7 @@
double key,value,left,right;
%RETURN_TYPE %0 = %CPPSELF.%FUNCTION_NAME(%1, %2,&amp;key,&amp;value, &amp;left, &amp;right);
%PYARG_0 = PyTuple_New(5);
PyTuple_SET_ITEM(%PYARG_0, 0, %CONVERTTOPYTHON[NATRON_ENUM::StatusEnum](%0));
PyTuple_SET_ITEM(%PYARG_0, 0, %CONVERTTOPYTHON[Natron::StatusEnum](%0));
PyTuple_SET_ITEM(%PYARG_0, 1, %CONVERTTOPYTHON[double](key));
PyTuple_SET_ITEM(%PYARG_0, 2, %CONVERTTOPYTHON[double](value));
PyTuple_SET_ITEM(%PYARG_0, 3, %CONVERTTOPYTHON[double](left));
Expand Down Expand Up @@ -1856,6 +1856,10 @@
</modify-function>
</object-type>

<inject-code class="target" position="declaration">
NATRON_NAMESPACE_USING NATRON_PYTHON_NAMESPACE_USING
</inject-code>


</typesystem>

Expand Down
4 changes: 2 additions & 2 deletions Global/Enums.h
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,7 @@ NATRON_NAMESPACE_ENTER
#ifdef SBK_RUN
// shiboken doesn't generate SbkNatronEngine_StandardButtonEnum_as_number unless it is put in a class or namespace
NATRON_NAMESPACE_EXIT
namespace NATRON_ENUM {
namespace Natron {
#endif

enum ScaleTypeEnum
Expand Down Expand Up @@ -693,7 +693,7 @@ NATRON_NAMESPACE_ENTER

NATRON_NAMESPACE_EXIT

Q_DECLARE_METATYPE(NATRON_ENUM::StandardButtons)
Q_DECLARE_METATYPE(Natron::StandardButtons)


#endif // NATRON_GLOBAL_ENUMS_H
2 changes: 1 addition & 1 deletion Global/Macros.h
Original file line number Diff line number Diff line change
Expand Up @@ -52,7 +52,7 @@ namespace Python { }

// run shiboken without the Natron namespace, and add NATRON_NAMESPACE_USING to each cpp afterwards
#define NATRON_NAMESPACE
#undef NATRON_ENUM
#define NATRON_ENUM Natron
#define NATRON_NAMESPACE_ENTER
#define NATRON_NAMESPACE_EXIT
#define NATRON_PYTHON_NAMESPACE
Expand Down
6 changes: 2 additions & 4 deletions Gui/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -31,10 +31,8 @@ list(TRANSFORM PYGUI_INCLUDE_DIRS PREPEND "-I" OUTPUT_VARIABLE PYGUI_INCS)

if(NATRON_QT6)
set(PYGUI_HEADER PySide6_Gui_Python.h)
set(POST_SHIBOKEN ../tools/utils/runPostShiboken6.sh)
else()
set(PYGUI_HEADER PySide2_Gui_Python.h)
set(POST_SHIBOKEN ../tools/utils/runPostShiboken2.sh)
endif()

if(NATRON_SYSTEM_QTHTTPSERVER)
Expand All @@ -57,8 +55,8 @@ execute_process(COMMAND ${Python3_EXECUTABLE} ../tools/utils/sourceList.py types
OUTPUT_VARIABLE PyGui_SOURCES)
set_property(SOURCE ${PyGui_SOURCES} PROPERTY SKIP_AUTOGEN ON)
add_custom_command(OUTPUT ${PyGui_SOURCES}
COMMAND ${SHIBOKEN_EXE} ${shiboken_args}
COMMAND bash ${POST_SHIBOKEN} ${PYGUI_OUT}/NatronGui natrongui
COMMAND $<TARGET_FILE:${SHIBOKEN_EXE}> ${shiboken_args}
COMMAND ${Python3_EXECUTABLE} ../tools/utils/sourceCleanup.py typesystem_natronGui.xml ${PYGUI_OUT}
DEPENDS ${PYGUI_HEADER} ${NatronEngine_HEADERS} ${NatronGui_HEADERS} ${POST_SHIBOKEN} typesystem_natronGui.xml
WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR})

Expand Down
4 changes: 4 additions & 0 deletions Gui/typesystem_natronGui.xml
Original file line number Diff line number Diff line change
Expand Up @@ -211,4 +211,8 @@
</inject-code>
</modify-function>
</object-type>

<inject-code class="target" position="declaration">
NATRON_NAMESPACE_USING NATRON_PYTHON_NAMESPACE_USING
</inject-code>
</typesystem>
31 changes: 0 additions & 31 deletions tools/utils/runPostShiboken.bat

This file was deleted.

108 changes: 0 additions & 108 deletions tools/utils/runPostShiboken.sh

This file was deleted.

111 changes: 0 additions & 111 deletions tools/utils/runPostShiboken2.sh

This file was deleted.

0 comments on commit 9e3896a

Please sign in to comment.