Skip to content

Commit

Permalink
Adapt to enum namespace change
Browse files Browse the repository at this point in the history
  • Loading branch information
YakoYakoYokuYoku committed Dec 5, 2021
1 parent d895099 commit a0f5c63
Show file tree
Hide file tree
Showing 7 changed files with 39 additions and 31 deletions.
4 changes: 2 additions & 2 deletions Gui/Gui.pro
Original file line number Diff line number Diff line change
Expand Up @@ -26,8 +26,8 @@ QT += gui core opengl network
greaterThan(QT_MAJOR_VERSION, 4): QT += concurrent

greaterThan(QT_MAJOR_VERSION, 4) {
GUI_WRAPPER_DIR = NatronGui$${QT_MAJOR_VERSION}
ENGINE_WRAPPER_DIR = NatronEngine$${QT_MAJOR_VERSION}
GUI_WRAPPER_DIR = Qt$${QT_MAJOR_VERSION}/NatronGui
ENGINE_WRAPPER_DIR = Qt$${QT_MAJOR_VERSION}/NatronEngine
} else {
GUI_WRAPPER_DIR = NatronGui
ENGINE_WRAPPER_DIR = NatronEngine
Expand Down
4 changes: 4 additions & 0 deletions Gui/GuiAppInstance.h
Original file line number Diff line number Diff line change
Expand Up @@ -35,6 +35,10 @@
#include <boost/scoped_ptr.hpp>
#endif

#ifdef SBK_RUN
using namespace NATRON_ENUM;
#endif

#include "Engine/AppInstance.h"
#include "Engine/ViewIdx.h"

Expand Down
2 changes: 1 addition & 1 deletion Gui/Pyside_Gui_Python.h
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,7 @@

#include "Global/Macros.h"

#ifdef SBK2_GEN
#ifdef SBK2_RUN
#include <pyside2_global.h>
#else
#include <pyside_global.h>
Expand Down
2 changes: 1 addition & 1 deletion Gui/PythonPanels.h
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,7 @@

#include "Global/Macros.h"

#if (!defined(Q_MOC_RUN) && !defined(SBK_RUN)) || defined(SBK2_GEN)
#if (!defined(Q_MOC_RUN) && !defined(SBK_RUN)) || defined(SBK2_RUN)
#include <boost/scoped_ptr.hpp>
#endif

Expand Down
4 changes: 0 additions & 4 deletions Gui/typesystem_natronGui.xml
Original file line number Diff line number Diff line change
Expand Up @@ -19,10 +19,6 @@
- ***** END LICENSE BLOCK ***** -->
<typesystem package="NatronGui">

<inject-code class="native" position="beginning">
NATRON_NAMESPACE_USING NATRON_PYTHON_NAMESPACE_USING
</inject-code>

<!--Load QtGui typesystem-->
<load-typesystem name="typesystem_gui.xml" generate="no" />
<!--Load QtWidgets typesystem-->
Expand Down
4 changes: 4 additions & 0 deletions tools/utils/runPostShiboken.sh
Original file line number Diff line number Diff line change
Expand Up @@ -65,6 +65,10 @@ NATRON_PYTHON_NAMESPACE_EXIT NATRON_NAMESPACE_EXIT@g' -i'.bak' Engine/NatronEng
sed -e 's@NATRON_NAMESPACE::NATRON_PYTHON_NAMESPACE::NATRON_NAMESPACE@NATRON_NAMESPACE@g' -i'.bak' Engine/NatronEngine/natronengine_python.h Gui/NatronGui/natrongui_python.h
sed -e 's@NATRON_NAMESPACE::NATRON_PYTHON_NAMESPACE::NATRON_ENUM@NATRON_ENUM@g' -i'.bak' Engine/NatronEngine/natronengine_python.h Gui/NatronGui/natrongui_python.h

perl -pe 'BEGIN{undef $/;} s/ \{\n.*SnakeOil(.*\n)*.*SnakeOil.*\n }//g;' -i'.bak' Gui/NatronGui/natrongui_module_wrapper.cpp
sed -e '/SnakeOil/d' -i'.bak' Gui/NatronGui/natrongui_module_wrapper.cpp
sed -e '/snakeoil_python/d' -i'.bak' Gui/NatronGui/natrongui_python.h

sed -e 's@^#include <pysidemetafunction.h>$@CLANG_DIAG_OFF(header-guard)\
#include <pysidemetafunction.h> // has wrong header guards in pyside 1.2.2@' -i'.bak' Engine/NatronEngine/*.cpp Gui/NatronGui/*.cpp

Expand Down
50 changes: 27 additions & 23 deletions tools/utils/runPostShiboken2.sh
Original file line number Diff line number Diff line change
Expand Up @@ -25,17 +25,17 @@ PYV="${1:-2}"

# To be run after shiboken to fix errors

sed -e '/<destroylistener.h>/d' -i'.bak' Engine/NatronEngine5/*.cpp
sed -e '/<destroylistener.h>/d' -i'.bak' Gui/NatronGui5/*.cpp
sed -e "/SbkPySide${PYV}_QtCoreTypes;/d" -i'.bak' Gui/NatronGui5/natrongui_module_wrapper.cpp
sed -e "/SbkPySide${PYV}_QtCoreTypeConverters;/d" -i'.bak' Gui/NatronGui5/natrongui_module_wrapper.cpp
sed -e '/SbkNatronEngineTypes;/d' -i'.bak' Gui/NatronGui5/natrongui_module_wrapper.cpp
sed -e '/SbkNatronEngineTypeConverters;/d' -i'.bak' Gui/NatronGui5/natrongui_module_wrapper.cpp
sed -e 's/cleanTypesAttributes/cleanGuiTypesAttributes/g' -i'.bak' Gui/NatronGui5/natrongui_module_wrapper.cpp
sed -e '/Py_BEGIN_ALLOW_THREADS/d' -i'.bak' Engine/NatronEngine5/*.cpp
sed -e '/Py_BEGIN_ALLOW_THREADS/d' -i'.bak' Gui/NatronGui5/*.cpp
sed -e '/Py_END_ALLOW_THREADS/d' -i'.bak' Engine/NatronEngine5/*.cpp
sed -e '/Py_END_ALLOW_THREADS/d' -i'.bak' Gui/NatronGui5/*.cpp
sed -e '/<destroylistener.h>/d' -i'.bak' Engine/Qt5/NatronEngine/*.cpp
sed -e '/<destroylistener.h>/d' -i'.bak' Gui/Qt5/NatronGui/*.cpp
sed -e "/SbkPySide${PYV}_QtCoreTypes;/d" -i'.bak' Gui/Qt5/NatronGui/natrongui_module_wrapper.cpp
sed -e "/SbkPySide${PYV}_QtCoreTypeConverters;/d" -i'.bak' Gui/Qt5/NatronGui/natrongui_module_wrapper.cpp
sed -e '/SbkNatronEngineTypes;/d' -i'.bak' Gui/Qt5/NatronGui/natrongui_module_wrapper.cpp
sed -e '/SbkNatronEngineTypeConverters;/d' -i'.bak' Gui/Qt5/NatronGui/natrongui_module_wrapper.cpp
sed -e 's/cleanTypesAttributes/cleanGuiTypesAttributes/g' -i'.bak' Gui/Qt5/NatronGui/natrongui_module_wrapper.cpp
sed -e '/Py_BEGIN_ALLOW_THREADS/d' -i'.bak' Engine/Qt5/NatronEngine/*.cpp
sed -e '/Py_BEGIN_ALLOW_THREADS/d' -i'.bak' Gui/Qt5/NatronGui/*.cpp
sed -e '/Py_END_ALLOW_THREADS/d' -i'.bak' Engine/Qt5/NatronEngine/*.cpp
sed -e '/Py_END_ALLOW_THREADS/d' -i'.bak' Gui/Qt5/NatronGui/*.cpp

# fix warnings
sed -e 's@^#include <shiboken.h>$@#include "Global/Macros.h"\
Expand All @@ -45,44 +45,48 @@ GCC_DIAG_OFF(missing-field-initializers)\
GCC_DIAG_OFF(missing-declarations)\
GCC_DIAG_OFF(uninitialized)\
GCC_DIAG_UNUSED_LOCAL_TYPEDEFS_OFF\
#include <shiboken.h> // produces many warnings@' -i'.bak' Engine/NatronEngine5/*.cpp Gui/NatronGui5/*.cpp
#include <pysidesignal.h>\
#include <shiboken.h> // produces many warnings@' -i'.bak' Engine/Qt5/NatronEngine/*.cpp Gui/Qt5/NatronGui/*.cpp

sed -e 's@// inner classes@// inner classes\
NATRON_NAMESPACE_USING NATRON_PYTHON_NAMESPACE_USING@' -i'.bak' Engine/NatronEngine5/*.cpp Gui/NatronGui5/*.cpp
NATRON_NAMESPACE_USING NATRON_PYTHON_NAMESPACE_USING@' -i'.bak' Engine/Qt5/NatronEngine/*.cpp Gui/Qt5/NatronGui/*.cpp
sed -e 's@// Extra includes@// Extra includes\
NATRON_NAMESPACE_USING NATRON_PYTHON_NAMESPACE_USING@' -i'.bak' Engine/Qt5/NatronEngine/natronengine_module_wrapper.cpp Gui/Qt5/NatronGui/natrongui_module_wrapper.cpp

# replace NATRON_NAMESPACE with Natron for enums with flags (e.g. StandardButtonEnum)
sed -e 's@"1:NatronEngine\.NATRON_NAMESPACE@"1:NatronEngine.Natron@g' -e 's@, NatronEngine\.NATRON_NAMESPACE@, NatronEngine.Natron@g' -e 's@"1:NatronGui\.NATRON_NAMESPACE@"NatronGui.Natron@g' -e 's@"NATRON_NAMESPACE@"Natron@g' -i'.bak' Engine/NatronEngine5/*_wrapper.cpp
sed -e 's@"1:NatronEngine\.NATRON_NAMESPACE@"1:NatronEngine.Natron@g' -e 's@, NatronEngine\.NATRON_NAMESPACE@, NatronEngine.Natron@g' -e 's@"1:NatronGui\.NATRON_NAMESPACE@"NatronGui.Natron@g' -e 's@"NATRON_NAMESPACE@"Natron@g' -i'.bak' Engine/Qt5/NatronEngine/*_wrapper.cpp

# re-add the Natron namespace
#sed -e 's@" ::\([^s][^t][^d]\)@ NATRON_NAMESPACE::\1@g' -i'.bak' Engine/NatronEngine5/*.cpp Engine/NatronEngine5/*.h Gui/NatronGui5/*.cpp Gui/NatronGui5/*.h
#sed -e 's@" ::\([^s][^t][^d]\)@ NATRON_NAMESPACE::\1@g' -i'.bak' Engine/Qt5/NatronEngine/*.cpp Engine/Qt5/NatronEngine/*.h Gui/Qt5/NatronGui/*.cpp Gui/Qt5/NatronGui/*.h

sed -e 's@SbkType< ::\(\(QFlags<\)\?Natron::.*\) >@SbkType< \1 >@g' -i Engine/NatronEngine5/natronengine_python.h
sed -e 's@SbkType< ::@SbkType<NATRON_NAMESPACE::NATRON_PYTHON_NAMESPACE::@g' -e 's@SbkType<Natron::QFlags<@SbkType< ::QFlags<NATRON_NAMESPACE::@g' -e's@NATRON_NAMESPACE::NATRON_PYTHON_NAMESPACE::Rect@NATRON_NAMESPACE::Rect@g' -i'.bak' Engine/NatronEngine5/natronengine_python.h Gui/NatronGui5/natrongui_python.h
# sed -e 's@SbkType< ::\(\(QFlags<\)\?Natron::.*\) >@SbkType< \1 >@g' -i Engine/Qt5/NatronEngine/natronengine_python.h
sed -e 's@SbkType< ::@SbkType<NATRON_NAMESPACE::NATRON_PYTHON_NAMESPACE::@g' -e 's@SbkType<NATRON_NAMESPACE.*::QFlags<@SbkType< ::QFlags<::@g' -e's@NATRON_NAMESPACE::NATRON_PYTHON_NAMESPACE::Rect@NATRON_NAMESPACE::Rect@g' -i'.bak' Engine/Qt5/NatronEngine/natronengine_python.h Gui/Qt5/NatronGui/natrongui_python.h
sed -e 's@^class @NATRON_NAMESPACE_ENTER NATRON_PYTHON_NAMESPACE_ENTER\
class @g;T;{:y;/^};/! {n;by}};s@^};@};\
NATRON_PYTHON_NAMESPACE_EXIT NATRON_NAMESPACE_EXIT@g' -i'.bak' Engine/NatronEngine5/*.h Gui/NatronGui5/*.h
NATRON_PYTHON_NAMESPACE_EXIT NATRON_NAMESPACE_EXIT@g' -i'.bak' Engine/Qt5/NatronEngine/*.h Gui/Qt5/NatronGui/*.h

# replace NATRON_NAMESPACE::NATRON_NAMESPACE with NATRON_NAMESPACE in the enums wrappers
sed -e 's@NATRON_NAMESPACE::NATRON_PYTHON_NAMESPACE::NATRON_NAMESPACE@NATRON_NAMESPACE@g' -i'.bak' Engine/NatronEngine5/natronengine_python.h Gui/NatronGui5/natrongui_python.h
sed -e 's@NATRON_NAMESPACE::NATRON_PYTHON_NAMESPACE::NATRON_NAMESPACE@NATRON_NAMESPACE@g' -i'.bak' Engine/Qt5/NatronEngine/natronengine_python.h Gui/Qt5/NatronGui/natrongui_python.h
sed -e 's@NATRON_NAMESPACE::NATRON_PYTHON_NAMESPACE::NATRON_ENUM@NATRON_ENUM@g' -i'.bak' Engine/Qt5/NatronEngine/natronengine_python.h Gui/Qt5/NatronGui/natrongui_python.h

sed -e 's@^#include <pysidemetafunction.h>$@CLANG_DIAG_OFF(header-guard)\
#include <pysidemetafunction.h> // has wrong header guards in pyside 1.2.2@' -i'.bak' Engine/NatronEngine5/*.cpp Gui/NatronGui5/*.cpp
#include <pysidemetafunction.h> // has wrong header guards in pyside 1.2.2@' -i'.bak' Engine/Qt5/NatronEngine/*.cpp Gui/Qt5/NatronGui/*.cpp

sed -e 's@^#include <pyside'${PYV}'_qtcore_python.h>$@CLANG_DIAG_OFF(deprecated)\
CLANG_DIAG_OFF(uninitialized)\
CLANG_DIAG_OFF(keyword-macro)\
#include <pyside'${PYV}'_qtcore_python.h> // produces warnings\
CLANG_DIAG_ON(deprecated)\
CLANG_DIAG_ON(uninitialized)\
CLANG_DIAG_ON(keyword-macro)@' -i'.bak' Engine/NatronEngine5/*.cpp Gui/NatronGui5/*.cpp Engine/NatronEngine5/*.h Gui/NatronGui5/*.h
CLANG_DIAG_ON(keyword-macro)@' -i'.bak' Engine/Qt5/NatronEngine/*.cpp Gui/Qt5/NatronGui/*.cpp Engine/Qt5/NatronEngine/*.h Gui/Qt5/NatronGui/*.h

sed -e 's@^#include <pyside'${PYV}'_qtgui_python.h>$@CLANG_DIAG_OFF(deprecated)\
CLANG_DIAG_OFF(uninitialized)\
CLANG_DIAG_OFF(keyword-macro)\
#include <pyside'${PYV}'_qtgui_python.h> // produces warnings\
CLANG_DIAG_ON(deprecated)\
CLANG_DIAG_ON(uninitialized)\
CLANG_DIAG_ON(keyword-macro)@' -i'.bak' Engine/NatronEngine5/*.cpp Gui/NatronGui5/*.cpp Engine/NatronEngine5/*.h Gui/NatronGui5/*.h
CLANG_DIAG_ON(keyword-macro)@' -i'.bak' Engine/Qt5/NatronEngine/*.cpp Gui/Qt5/NatronGui/*.cpp Engine/Qt5/NatronEngine/*.h Gui/Qt5/NatronGui/*.h

# clean up
rm Gui/NatronGui5/*.bak Engine/NatronEngine5/*.bak
rm Gui/Qt5/NatronGui/*.bak Engine/Qt5/NatronEngine/*.bak

0 comments on commit a0f5c63

Please sign in to comment.