43 lines
1.1 KiB
CMake
43 lines
1.1 KiB
CMake
|
include_guard(GLOBAL)
|
||
|
|
||
|
function(myx_qt5_target_setup)
|
||
|
set(options)
|
||
|
set(oneValueArgs)
|
||
|
set(multiValueArgs COMPONENTS PRIVATE SOURCES MOC UI QRC LANGS)
|
||
|
cmake_parse_arguments(arg "${options}" "${oneValueArgs}" "${multiValueArgs}" ${ARGN})
|
||
|
|
||
|
if(arg_COMPONENTS)
|
||
|
find_package(Qt5 COMPONENTS ${arg_COMPONENTS} REQUIRED)
|
||
|
foreach(iter ${arg_COMPONENTS})
|
||
|
target_include_directories(${PROJECT_NAME} PRIVATE ${Qt5${iter}_INCLUDE_DIRS})
|
||
|
endforeach()
|
||
|
endif()
|
||
|
|
||
|
if(arg_PRIVATE)
|
||
|
foreach(iter ${arg_PRIVATE})
|
||
|
find_package(Qt5${iter} COMPONENTS Private REQUIRED)
|
||
|
endforeach()
|
||
|
endif()
|
||
|
|
||
|
qt5_wrap_cpp(moc_cpp ${arg_MOC})
|
||
|
qt5_wrap_ui(ui_h ${arg_UI})
|
||
|
qt5_add_resources(qrc_cpp ${arg_QRC})
|
||
|
|
||
|
if("LinguistTools" IN_LIST arg_COMPONENTS)
|
||
|
set(ts)
|
||
|
foreach(iter ${arg_LANGS})
|
||
|
list(APPEND ts ${PROJECT_SOURCE_DIR}/l10n/${PROJECT_NAME}_${iter}.ts)
|
||
|
endforeach()
|
||
|
|
||
|
qt5_create_translation(qm
|
||
|
${PROJECT_SOURCE_DIR}/include
|
||
|
${PROJECT_SOURCE_DIR}/src
|
||
|
${ts}
|
||
|
)
|
||
|
endif()
|
||
|
|
||
|
target_sources(${PROJECT_NAME}
|
||
|
PRIVATE
|
||
|
${arg_SOURCES} ${moc_cpp} ${ui_h} ${qrc_cpp} ${qm})
|
||
|
endfunction()
|