From 6a21dd39143b725e5d78ae5eb644fd226107261d Mon Sep 17 00:00:00 2001 From: Michele Calgaro Date: Sun, 4 Sep 2022 20:23:16 +0900 Subject: [PATCH] Allows tde macros to be used for processing .ui files in pure TQt applications. Signed-off-by: Michele Calgaro --- modules/TDEMacros.cmake | 2 ++ modules/tde_uic.cmake | 39 ++++++++++++++++++++++++++------------- 2 files changed, 28 insertions(+), 13 deletions(-) diff --git a/modules/TDEMacros.cmake b/modules/TDEMacros.cmake index 440088c..216a9de 100644 --- a/modules/TDEMacros.cmake +++ b/modules/TDEMacros.cmake @@ -430,6 +430,8 @@ macro( tde_add_ui_files _sources ) -DUI_FILE:FILEPATH=${_ui_absolute_path} -DMASTER_SOURCE_DIR:FILEPATH=${CMAKE_SOURCE_DIR} -DMASTER_BINARY_DIR:FILEPATH=${CMAKE_BINARY_DIR} + -DTDE_FOUND=${TDE_FOUND} + -DTQT_ONLY=${TQT_ONLY} -P ${TDE_CMAKE_MODULES}/tde_uic.cmake DEPENDS ${_ui_absolute_path} ) diff --git a/modules/tde_uic.cmake b/modules/tde_uic.cmake index ebe7d14..572781a 100644 --- a/modules/tde_uic.cmake +++ b/modules/tde_uic.cmake @@ -31,8 +31,16 @@ if( TDE_TQTPLUGINS_DIR ) set( L -L ${TDE_TQTPLUGINS_DIR} ) endif( ) +# Choose translation function, different for TQt and TDE +if ( TDE_FOUND AND NOT TQT_ONLY ) + set( TR_FUNC "tr2i18n" ) +else( TDE_FOUND AND NOT TQT_ONLY ) + set( TR_FUNC "tr" ) +endif( TDE_FOUND AND NOT TQT_ONLY ) + +# Generate ui .h file tde_execute_process( COMMAND ${UIC_EXECUTABLE} - -nounload -tr tr2i18n + -nounload -tr ${TR_FUNC} ${L} ${local_ui_file} OUTPUT_VARIABLE _ui_h_content ) @@ -40,30 +48,35 @@ tde_execute_process( COMMAND ${UIC_EXECUTABLE} if( _ui_h_content ) string( REGEX REPLACE "#ifndef " "#ifndef UI_" _ui_h_content "${_ui_h_content}" ) string( REGEX REPLACE "#define " "#define UI_" _ui_h_content "${_ui_h_content}" ) - string( REGEX REPLACE "public TQWizard" "public KWizard" _ui_h_content "${_ui_h_content}" ) - string( REGEX REPLACE "public QWizard" "public KWizard" _ui_h_content "${_ui_h_content}" ) - string( REGEX REPLACE "#include " "#include " _ui_h_content "${_ui_h_content}" ) - string( REGEX REPLACE "#include " "#include " _ui_h_content "${_ui_h_content}" ) + if ( TDE_FOUND AND NOT TQT_ONLY ) + string( REGEX REPLACE "public TQWizard" "public KWizard" _ui_h_content "${_ui_h_content}" ) + string( REGEX REPLACE "public QWizard" "public KWizard" _ui_h_content "${_ui_h_content}" ) + string( REGEX REPLACE "#include " "#include " _ui_h_content "${_ui_h_content}" ) + string( REGEX REPLACE "#include " "#include " _ui_h_content "${_ui_h_content}" ) + endif( TDE_FOUND AND NOT TQT_ONLY ) file( WRITE ${_ui_basename}.h "${_ui_h_content}" ) endif( ) +# Generate ui .cpp file tde_execute_process( COMMAND ${UIC_EXECUTABLE} - -nounload -tr tr2i18n + -nounload -tr ${TR_FUNC} ${L} -impl ${_ui_basename}.h ${local_ui_file} OUTPUT_VARIABLE _ui_cpp_content ) if( _ui_cpp_content ) - string( REGEX REPLACE "tr2i18n\\(\"\"\\)" "QString::null" _ui_cpp_content "${_ui_cpp_content}" ) - string( REGEX REPLACE "tr2i18n\\(\"\", \"\"\\)" "QString::null" _ui_cpp_content "${_ui_cpp_content}" ) - string( REGEX REPLACE ": TQWizard\\(" ": KWizard(" _ui_cpp_content "${_ui_cpp_content}" ) - string( REGEX REPLACE ": QWizard\\(" ": KWizard(" _ui_cpp_content "${_ui_cpp_content}" ) - file( WRITE ${_ui_basename}.cpp "#include \n#include \n\n${_ui_cpp_content}" ) + string( REGEX REPLACE "${TR_FUNC}\\(\"\"\\)" "TQString::null" _ui_cpp_content "${_ui_cpp_content}" ) + string( REGEX REPLACE "${TR_FUNC}\\(\"\", \"\"\\)" "TQString::null" _ui_cpp_content "${_ui_cpp_content}" ) + if ( TDE_FOUND AND NOT TQT_ONLY ) + string( REGEX REPLACE ": TQWizard\\(" ": KWizard(" _ui_cpp_content "${_ui_cpp_content}" ) + string( REGEX REPLACE ": QWizard\\(" ": KWizard(" _ui_cpp_content "${_ui_cpp_content}" ) + set( _ui_cpp_content "#include \n#include \n\n${_ui_cpp_content}" ) + endif( TDE_FOUND AND NOT TQT_ONLY ) + file( WRITE ${_ui_basename}.cpp "${_ui_cpp_content}" ) tde_execute_process( COMMAND ${MOC_EXECUTABLE} ${_ui_basename}.h OUTPUT_VARIABLE _ui_h_moc_content ) file( APPEND ${_ui_basename}.cpp "${_ui_h_moc_content}" ) - -endif( ) +endif( _ui_cpp_content )