Add OS-specific prelude to qt-cmake-standalone-test

This makes sure the executable is run as a shell script
with the proper interpreter on Unix systems.
Otherwise it will fail in some shells, like fish.

On windows, it prevents all commands in the batch file
from displaying on the screen.

Change-Id: If554262f172b035b9661b3e2ff26a96789fa707b
Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
This commit is contained in:
Jonas Karlsson 2020-06-19 13:34:48 +02:00 committed by Alexandru Croitor
parent 124590850b
commit a99bc30e1e
2 changed files with 4 additions and 0 deletions

View File

@ -1 +1,3 @@
@__qt_cmake_standalone_test_os_prelude@
@__qt_cmake_private_path@ @__qt_cmake_standalone_test_path@ -DQT_STANDALONE_TEST_PATH=@__qt_cmake_standalone_passed_args@

View File

@ -239,9 +239,11 @@ if(QT_WILL_INSTALL)
"${__qt_cmake_standalone_test_path}")
endif()
if(UNIX)
set(__qt_cmake_standalone_test_os_prelude "#!/bin/sh")
string(PREPEND __qt_cmake_private_path "exec ")
set(__qt_cmake_standalone_passed_args "\"$@\" -DPWD=\"$PWD\"")
else()
set(__qt_cmake_standalone_test_os_prelude "@echo off")
string(APPEND __qt_cmake_standalone_test_bin_name ".bat")
string(APPEND __qt_cmake_private_path ".bat")
set(__qt_cmake_standalone_passed_args "%* -DPWD=\"%CD%\"")