60 lines
2.1 KiB
CMake
60 lines
2.1 KiB
CMake
include(CMakeParseArguments)
|
|
|
|
# qt5_wrap_ui_custom(outfiles inputfile ... )
|
|
|
|
function(QT5_WRAP_UI_CUSTOM outfiles )
|
|
set(options)
|
|
set(oneValueArgs)
|
|
set(multiValueArgs OPTIONS)
|
|
|
|
cmake_parse_arguments(_WRAP_UI "${options}" "${oneValueArgs}" "${multiValueArgs}" ${ARGN})
|
|
|
|
set(ui_files ${_WRAP_UI_UNPARSED_ARGUMENTS})
|
|
set(ui_options ${_WRAP_UI_OPTIONS})
|
|
|
|
foreach(it ${ui_files})
|
|
get_filename_component(outfile ${it} NAME_WE)
|
|
get_filename_component(infile ${it} ABSOLUTE)
|
|
set(outfile ${CMAKE_CURRENT_BINARY_DIR}/generated/ui_${outfile}.h)
|
|
add_custom_command(OUTPUT ${outfile}
|
|
COMMAND ${Qt5Widgets_UIC_EXECUTABLE}
|
|
ARGS ${ui_options} -o ${outfile} ${infile}
|
|
MAIN_DEPENDENCY ${infile} VERBATIM)
|
|
list(APPEND ${outfiles} ${outfile})
|
|
endforeach()
|
|
set(${outfiles} ${${outfiles}} PARENT_SCOPE)
|
|
endfunction()
|
|
|
|
# qt5_add_resources_custom(outfiles inputfile ... )
|
|
|
|
function(QT5_ADD_RESOURCES_CUSTOM outfiles )
|
|
|
|
set(options)
|
|
set(oneValueArgs)
|
|
set(multiValueArgs OPTIONS)
|
|
|
|
cmake_parse_arguments(_RCC "${options}" "${oneValueArgs}" "${multiValueArgs}" ${ARGN})
|
|
|
|
set(rcc_files ${_RCC_UNPARSED_ARGUMENTS})
|
|
set(rcc_options ${_RCC_OPTIONS})
|
|
|
|
if("${rcc_options}" MATCHES "-binary")
|
|
message(WARNING "Use qt5_add_binary_resources for binary option")
|
|
endif()
|
|
|
|
foreach(it ${rcc_files})
|
|
get_filename_component(outfilename ${it} NAME_WE)
|
|
get_filename_component(infile ${it} ABSOLUTE)
|
|
set(outfile ${CMAKE_CURRENT_BINARY_DIR}/generated/qrc_${outfilename}.cc)
|
|
|
|
_QT5_PARSE_QRC_FILE(${infile} _out_depends _rc_depends)
|
|
|
|
add_custom_command(OUTPUT ${outfile}
|
|
COMMAND ${Qt5Core_RCC_EXECUTABLE}
|
|
ARGS ${rcc_options} --name ${outfilename} --output ${outfile} ${infile}
|
|
MAIN_DEPENDENCY ${infile}
|
|
DEPENDS ${_rc_depends} "${out_depends}" VERBATIM)
|
|
list(APPEND ${outfiles} ${outfile})
|
|
endforeach()
|
|
set(${outfiles} ${${outfiles}} PARENT_SCOPE)
|
|
endfunction() |