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