1cmake_minimum_required(VERSION 3.16) 2project(UicInterface) 3include("../AutogenGuiTest.cmake") 4 5set(CMAKE_INCLUDE_CURRENT_DIR_IN_INTERFACE ON) 6set(CMAKE_AUTOMOC ON) 7set(CMAKE_AUTOUIC ON) 8 9# BEGIN Upstream 10 11set(CMAKE_VERBOSE_MAKEFILE ON) 12 13add_library(KI18n klocalizedstring.cpp) 14target_link_libraries(KI18n PRIVATE ${QT_QTCORE_TARGET}) 15 16set(autouic_options 17 -tr tr2$<$<NOT:$<BOOL:$<TARGET_PROPERTY:NO_KUIT_SEMANTIC>>>:x>i18n 18) 19if (NOT Qt${QT_TEST_VERSION}Widgets_VERSION VERSION_LESS 5.3.0) 20 list(APPEND autouic_options -include klocalizedstring.h) 21endif() 22 23set_property(TARGET KI18n APPEND PROPERTY 24 INTERFACE_AUTOUIC_OPTIONS ${autouic_options} 25) 26 27set(domainProp $<TARGET_PROPERTY:TRANSLATION_DOMAIN>) 28set(nameLower $<LOWER_CASE:$<MAKE_C_IDENTIFIER:$<TARGET_PROPERTY:NAME>>>) 29set(domain_logic 30 $<$<BOOL:${domainProp}>:${domainProp}>$<$<NOT:$<BOOL:${domainProp}>>:${nameLower}> 31) 32set_property(TARGET KI18n APPEND PROPERTY 33 INTERFACE_COMPILE_DEFINITIONS "TRANSLATION_DOMAIN=${domain_logic}" 34) 35 36# END upstream 37 38get_property(_isMultiConfig GLOBAL PROPERTY GENERATOR_IS_MULTI_CONFIG) 39if(_isMultiConfig) 40set(INC_DIR "include_$<CONFIG>" ) 41else() 42set(INC_DIR "include" ) 43endif() 44 45add_library(LibWidget libwidget.cpp) 46target_link_libraries(LibWidget KI18n ${QT_LIBRARIES}) 47set_property(TARGET LibWidget PROPERTY NO_KUIT_SEMANTIC ON) 48set_property(TARGET LibWidget PROPERTY TRANSLATION_DOMAIN customdomain) 49 50add_library(MyWidget mywidget.cpp) 51target_link_libraries(MyWidget KI18n ${QT_LIBRARIES}) 52 53add_executable(QtAutoUicInterface main.cpp) 54target_compile_definitions(QtAutoUicInterface 55 PRIVATE 56 UI_LIBWIDGET_H="${CMAKE_CURRENT_BINARY_DIR}/LibWidget_autogen/${INC_DIR}/ui_libwidget.h" 57 UI_MYWIDGET_H="${CMAKE_CURRENT_BINARY_DIR}/MyWidget_autogen/${INC_DIR}/ui_mywidget.h" 58) 59