diff options
Diffstat (limited to 'mkspecs/features/qt_module.prf')
-rw-r--r-- | mkspecs/features/qt_module.prf | 23 |
1 files changed, 20 insertions, 3 deletions
diff --git a/mkspecs/features/qt_module.prf b/mkspecs/features/qt_module.prf index 3c0526055c..10911fa6df 100644 --- a/mkspecs/features/qt_module.prf +++ b/mkspecs/features/qt_module.prf @@ -194,13 +194,30 @@ unix:!isEmpty(QMAKE_LFLAGS_VERSION_SCRIPT):!no_linker_version_script:!static { internal_module { verscript_content = "Qt_$${QT_MAJOR_VERSION}_PRIVATE_API { *; };" } else { + verscript_content = "Qt_$${QT_MAJOR_VERSION}_PRIVATE_API {" \ + " qt_private_api_tag*;" "@CLASSLIST@" "};" + current = Qt_$$QT_MAJOR_VERSION - verscript_content = "$$current { *; };" - for(i, 0..$$section(VERSION, ., 1, 1)) { + verscript_content += "$$current { *; };" + isEmpty(QT_NAMESPACE): tag_symbol = qt_version_tag + else: tag_symbol = qt_version_tag_$$QT_NAMESPACE + + for(i, 0..$$QT_MINOR_VERSION) { previous = $$current current = Qt_$${QT_MAJOR_VERSION}.$$i - verscript_content += "$$current {} $$previous;" + equals(i, $$QT_MINOR_VERSION): verscript_content += "$$current { $$tag_symbol; } $$previous;" + else: verscript_content += "$$current {} $$previous;" } + + # Add a post-processing step to replace the @CLASSLIST@ + verscriptprocess.commands = perl $${PWD}/data/unix/findclasslist.pl < $^ > $@ + verscriptprocess.target = $$verscript + verscriptprocess.depends = $${verscript}.in + for(header, SYNCQT.PRIVATE_HEADER_FILES): \ + verscriptprocess.depends += $${_PRO_FILE_PWD_}/$$header + QMAKE_EXTRA_TARGETS += verscriptprocess + PRE_TARGETDEPS += $$verscript + verscript = $${verscript}.in } write_file($$verscript, verscript_content)|error("Aborting.") unset(current) |