Commit Graph

21 Commits

Author SHA1 Message Date
Simon Hausmann
5488c380d1 Fix symmetry between test artifact handling
The module yaml file provides the instruction for creating and upload
the test artifacts, it might as well provide the instruction for
downloading it. Coin sets the corresponding environment variable for the
storage path now.

Change-Id: I4aabe60e28c0c1a6d5934b3b7b797835a793a7fe
Reviewed-by: Jędrzej Nowacki <jedrzej.nowacki@qt.io>
2019-07-01 11:33:26 +00:00
Simon Hausmann
dea8520bf1 Run tests using ctest
As an initial way this allows running tests. Coin does not yet collect
the results and the logic for re-running is inside ctest.

Change-Id: Ieab619d5f8f4ebdd8cd1293489db36d0bbd7c74a
Reviewed-by: Jędrzej Nowacki <jedrzej.nowacki@qt.io>
Reviewed-by: Liang Qi <liang.qi@qt.io>
2019-07-01 11:29:45 +00:00
Simon Hausmann
f8c52530f7 Simplify test compilation
We don't need the full cmake invocation as when configuring, instead we
can use the qt-cmake wrapper script that uses the generated toolchain
file.

Change-Id: Ie0d554fbf8543d950112108d6a3f8a7c3a58a6a6
Reviewed-by: Qt CMake Build Bot
Reviewed-by: Jędrzej Nowacki <jedrzej.nowacki@qt.io>
2019-06-26 13:26:27 +00:00
Simon Hausmann
ebfd09e7d6 Fix early warning system
Remove dummy test instructions that don't work right now and cause
failures.

Change-Id: I30195fe605419a8eb462e8315f71718dd86df412
Reviewed-by: Liang Qi <liang.qi@qt.io>
2019-06-25 08:28:52 +00:00
Liang Qi
cccc9fc59b SplitAfterVariableSubstitution is also needed for building tests
Just follow da7f40f7c2.

Change-Id: Iac0e96a42fa97bc002e3f11b6a6317ddc6e4187b
Reviewed-by: Jędrzej Nowacki <jedrzej.nowacki@qt.io>
2019-06-24 08:13:49 +00:00
Jędrzej Nowacki
ebbf4a1d96 Move ICC compiler name setup to instructions level
That way we can simplify product level configuration.

Change-Id: I6825a10e4652dc7a730d23aaa7d4e7db9c079e50
Reviewed-by: Qt CMake Build Bot
Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
2019-06-24 06:23:25 +00:00
Jędrzej Nowacki
da7f40f7c2 Update the instructions after CI changed way of splitting arguments
Now execute command can directly specified how the arguments should
be divided. The default option doesn't work well for CONFIGURE_ARGS,
because we want to pass it's result as a separate subprocess
arguments.

Change-Id: I6b7adb04164f5568d9ad2f45e3334d7a7a49bc79
Reviewed-by: Jędrzej Nowacki <jedrzej.nowacki@qt.io>
2019-06-24 06:13:04 +00:00
Simon Hausmann
d0183527d4 Change cmake generator selection mechanism
By using the new environment variable for the generator selection
introduced in 3.15, we can later select the visual studio generator once
the qtbase build is fixed. This will simplify the VS selection code in
this file and allow getting rid of the ENV_PREFIX and .bat file.

Change-Id: I9f76b5714450ffa60b496aef0ce5a0c21e843bef
Reviewed-by: Jędrzej Nowacki <jedrzej.nowacki@qt.io>
2019-06-21 12:50:49 +00:00
Simon Hausmann
b0bd50d339 Prepare for running tests with cmake
This is just a small step towards the situation where we build the tests
during the module build phase and later extract and merely run them.

The general steps we need are:

    * build tests separately, which includes the cmake test plan
    * let coin archive the tests (build) directory
    * in the test VM unpack everything
    * run ctest on the test plan that was part of the tests archive

This patch implements the first two steps.

Change-Id: Ifb8321015d0d18ad20e8cf20bb8b746030202daf
Reviewed-by: Jędrzej Nowacki <jedrzej.nowacki@qt.io>
2019-06-21 12:00:13 +00:00
Jędrzej Nowacki
06a552eab0 Port ICC specific instructions
Coin implicitly was exporting some variables if ICC was used.

This patch is just a first step to enable ICC in CI. To make
it really working one would need to fix the QtBase code and
enable ICC in qt5 repository.

Change-Id: I2fca19ff10d7390fa013f511f167c0c1c2fba427
Reviewed-by: Jędrzej Nowacki <jedrzej.nowacki@qt.io>
2019-06-17 09:21:20 +00:00
Jędrzej Nowacki
d489400448 Simple typo fixup
Change-Id: Ifd2c6c3eef5aea4decdbe1fc6221139bf3447ba6
Reviewed-by: Qt CMake Build Bot
Reviewed-by: Liang Qi <liang.qi@qt.io>
2019-06-17 09:14:14 +00:00
Simon Hausmann
4de70ce952 Avoid hardcoding the underlying build tool
Since 3.15, not only --build can call the low-level build tool,
--install can also be used to run the installation. There's also an
environment variable that can be used to control the backend at cmake
time, but that may only be useful later.

Change-Id: I8c1ee48f946e110af3e824cf8980bbacbb94db99
Reviewed-by: Jędrzej Nowacki <jedrzej.nowacki@qt.io>
Reviewed-by: Qt CMake Build Bot
2019-06-17 09:10:32 +00:00
Jędrzej Nowacki
341cc6e5bb Try to use %ProgramFiles(x86)% instead of custom code
On Windows, we have a problem with locating MSVC. Depending on system
version it can be installed in different directories. Currently
we have a custom logic to handle it, but in theory we could just use
"ProgramFiles(x86)" to abstract it.

Change-Id: Ia94a41d9ef6229de712606f9a9d3d61a0abeb24f
Reviewed-by: Liang Qi <liang.qi@qt.io>
Reviewed-by: Jędrzej Nowacki <jedrzej.nowacki@qt.io>
2019-06-13 11:38:13 +00:00
Jędrzej Nowacki
d59fadb2da Remove double negations
As now the configuration syntax supports enable_if, we can get rid
of double negations.

Change-Id: I5b8b695d4f7a72cd1a836b9b427096fb4e3b85a7
Reviewed-by: Liang Qi <liang.qi@qt.io>
Reviewed-by: Jędrzej Nowacki <jedrzej.nowacki@qt.io>
2019-06-13 11:37:40 +00:00
Jędrzej Nowacki
82840d2660 Implement command prefix
The current CI magically add prefix to every executed command if
target compiler is MSVC. The prefix just calls vcvarsall.bat.
The script has to be called for every command, because of the CI
agent runs every command as a subprocess. It means that script
sourced environment is not passed to subsequent commands,
therefore all changes are lost.

The prefix, as a concept, has known performance issues (COIN-253),
so in long term it would be nice to move to another solution.

CustomModule doesn't support prefix. Therefore the proposed approach
moves the ugliness from CI code to the yaml configuration file.
It has two advantages; nothing needs to be implemented on the CI
level and hopefully someone in future will clean it up as
the problem is more visible and publicly fixable.

Change-Id: Ice3cff89e3a59b2a57e675b7892fde0d04433ba8
Reviewed-by: Liang Qi <liang.qi@qt.io>
2019-06-12 11:16:57 +00:00
Jędrzej Nowacki
ce11410caa Use ninja as default builder
That allows us to skip all the madness of choosing between
make/nmake/jom.

In addition it is actually faster to build with ninja, then other
tools.

Change-Id: I31049a292495800606cede6f15011d97af7c3e41
Reviewed-by: Liang Qi <liang.qi@qt.io>
Reviewed-by: Qt CMake Build Bot
2019-06-12 11:16:11 +00:00
Jędrzej Nowacki
87bb219a72 Move some configure arguments from qt5 configuration file
These arguments are specific to the build and changes to them are _not_
affecting configuration.

Change-Id: I8c46a0dbea8978f13e78c5cb8f41987f4fde09c8
Reviewed-by: Qt CMake Build Bot
Reviewed-by: Liang Qi <liang.qi@qt.io>
2019-05-22 14:52:01 +00:00
Jędrzej Nowacki
d932ac44df Adjust timeouts in module_config.yaml
Signing package may take more then 10s while calling echo really
should take less then 60s ;-)

Change-Id: I1798981492d1467bb8b20099ea705b08ea9b0914
Reviewed-by: Liang Qi <liang.qi@qt.io>
Reviewed-by: Jędrzej Nowacki <jedrzej.nowacki@qt.io>
2019-05-22 14:16:07 +00:00
Jędrzej Nowacki
b611936ca8 Cleanup module_config.yaml
The number of CPUs is set implicitly by MAKEFLAGS and NIJAFLAGS.

Change-Id: Ie9296f9a7872253c696536d7b3d6235c7881d42b
Reviewed-by: Liang Qi <liang.qi@qt.io>
2019-05-22 14:14:54 +00:00
Jędrzej Nowacki
f1d428b643 Fix typo in module_config.yaml
The command executed is jom not nmake.

Change-Id: Ieae487a3b50884d901ca2a431f3c3ea615a80e8b
Reviewed-by: Liang Qi <liang.qi@qt.io>
2019-05-20 11:42:27 +00:00
Liang Qi
263af45b4c Move build and test instructions from coin to qtbase
That way we can update instructions without waiting for
Coin update.

The patch contains invalid test instructions, but as
cmake port is not yet able to run tests it should not
matter.

Change-Id: I86088aefec49ded60af00243b0b8c60c8f16147a
Reviewed-by: Jędrzej Nowacki <jedrzej.nowacki@qt.io>
2019-05-10 13:38:13 +00:00