mirror of
git://code.qt.io/qt/qt5.git
synced 2026-04-27 15:16:59 +08:00
init-repository: Route help output to stdout
CMake's message() writes to stderr, making it unnecessarily cumbersome to pipe -help output. Write output via a temp file and cmake -E cat to send it to stdout instead. Change-Id: I71710aeb503076586609a69cada94c8a5e30e3be Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
This commit is contained in:
@@ -5,6 +5,37 @@
|
|||||||
# with renamed functions, because we need similar logic for init-repository, but
|
# with renamed functions, because we need similar logic for init-repository, but
|
||||||
# we can't access qtbase before we clone it.
|
# we can't access qtbase before we clone it.
|
||||||
|
|
||||||
|
function(qt_ir_print_to_stdout text)
|
||||||
|
set(tmp_candidates
|
||||||
|
"${CMAKE_CURRENT_BINARY_DIR}"
|
||||||
|
"$ENV{TMPDIR}"
|
||||||
|
"$ENV{TEMP}"
|
||||||
|
"/tmp"
|
||||||
|
)
|
||||||
|
set(tmp "")
|
||||||
|
foreach(dir IN LISTS tmp_candidates)
|
||||||
|
if(dir STREQUAL "")
|
||||||
|
continue()
|
||||||
|
endif()
|
||||||
|
set(candidate "${dir}/.qt_configure_stdout_tmp")
|
||||||
|
execute_process(
|
||||||
|
COMMAND "${CMAKE_COMMAND}" -E touch "${candidate}"
|
||||||
|
RESULT_VARIABLE touch_result
|
||||||
|
)
|
||||||
|
if(touch_result EQUAL 0)
|
||||||
|
set(tmp "${candidate}")
|
||||||
|
break()
|
||||||
|
endif()
|
||||||
|
endforeach()
|
||||||
|
if(tmp STREQUAL "")
|
||||||
|
message("${text}") # last resort fallback (stderr)
|
||||||
|
return()
|
||||||
|
endif()
|
||||||
|
file(WRITE "${tmp}" "${text}")
|
||||||
|
execute_process(COMMAND "${CMAKE_COMMAND}" -E cat "${tmp}")
|
||||||
|
file(REMOVE "${tmp}")
|
||||||
|
endfunction()
|
||||||
|
|
||||||
# Call a function with the given arguments.
|
# Call a function with the given arguments.
|
||||||
function(qt_ir_call_function func)
|
function(qt_ir_call_function func)
|
||||||
set(call_code "${func}(")
|
set(call_code "${func}(")
|
||||||
@@ -368,16 +399,17 @@ endfunction()
|
|||||||
|
|
||||||
# Shows help for the command line options.
|
# Shows help for the command line options.
|
||||||
function(qt_ir_show_help)
|
function(qt_ir_show_help)
|
||||||
|
set(help "")
|
||||||
set(help_file "${CMAKE_CURRENT_LIST_DIR}/QtIRHelp.txt")
|
set(help_file "${CMAKE_CURRENT_LIST_DIR}/QtIRHelp.txt")
|
||||||
if(EXISTS "${help_file}")
|
if(EXISTS "${help_file}")
|
||||||
file(READ "${help_file}" content)
|
file(READ "${help_file}" content)
|
||||||
message("${content}")
|
string(APPEND help "${content}")
|
||||||
endif()
|
endif()
|
||||||
|
string(APPEND help [[
|
||||||
message([[
|
|
||||||
General Options:
|
General Options:
|
||||||
-help, -h ............ Display this help screen
|
-help, -h ............ Display this help screen
|
||||||
]])
|
]])
|
||||||
|
qt_ir_print_to_stdout("${help}")
|
||||||
endfunction()
|
endfunction()
|
||||||
|
|
||||||
# Gets the unhandled command line args.
|
# Gets the unhandled command line args.
|
||||||
|
|||||||
Reference in New Issue
Block a user