CMakeLists.txt 1.7 KB

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