Commit Graph

18 Commits

Author SHA1 Message Date
Orkun Tokdemir
c074f5c81e Autogen: Revert "AUTO*_EXECUTABLE: add support for per-config values"
Changing the `timestamp` file to `timestamp_$<CONFIG>` causes some user
projects to break when using Qt versions older than 6.6.

Revert commit fddd0f0443 (Autogen: AUTO*_EXECUTABLE: add support for
per-config values, 2023-06-14, v3.28.0-rc1~96^2~1) pending further
investigation.

Issue: #20074
2023-10-13 14:16:26 -04:00
Orkun Tokdemir
bac468ddfd AutoGen: Fix regression in timestamps on multi-config generators
Since commit fddd0f0443 (Autogen: AUTO*_EXECUTABLE: add support for
per-config values, 2023-06-14) we do not correctly generate outputs
for one configuration after another configuration has been built.
Fix this:

- Revert some config based stuff for `Xcode` due to the `$<CONFIG>`
  genex usage limitation in source files with `Xcode`.
- For multi-config generators use a per-config `timestamp_$<CONFIG>`
  file instead of one `timestamp` file.

Fixes: #25261
2023-09-26 11:54:26 -04:00
Orkun Tokdemir
c3f0825d3c Tests/RunCMake/Autogen: Factor out test setup 2023-09-26 11:54:16 -04:00
Orkun Tokdemir
9654835b4f Tests/RunCMake/Autogen: Add expect_n_times() function 2023-09-26 11:54:09 -04:00
Orkun Tokdemir
fddd0f0443 Autogen: AUTO*_EXECUTABLE: add support for per-config values
* Per-config values were added to `AUTO*_EXECUTABLE`.
* Dependency order was refactored for `cmake_autogen` and `cmake_autorcc` to
  avoid unnecessary rebuilds.
* A new parameter was added for `cmake_autogen` and `cmake_autorcc` to specify the config name of the `auto*_executable` to be used.
* The timestamp target was split into three targets for per-config to avoid redundant `mocs_compilation` builds.
* Per-config `DEP_FILE_RULE_NAME` values were added to `AutogenInfo.json` for `CMAKE_CROSS_CONFIG` usage.
* Some functions were refactored to avoid code duplication.

Fixes: #20074
2023-09-13 18:23:56 +02:00
Orkun Tokdemir
09b650d000 Autogen: Move QtAutoMocDeps tests to RunCMake/Autogen 2023-09-11 14:51:58 +02:00
Orkun Tokdemir
2bb3d9b644 Autogen: Fix multi-config generated file issue
The default config was an empty string when a `multi-config`
generator is used. An if check was added for those situations.
If a source file has a specific config configuration,
it is used with `$<CONFIG>` in the `multi-config` generator usage.

Fixes: #24848
2023-05-27 12:55:21 +02:00
Orkun Tokdemir
775c369420 Autogen: set SKIP_LINTING ON for generated files
Fixes: #19772
2023-05-16 10:56:25 -04:00
Orkun Tokdemir
7bf4e30090 Autogen: Default AUTOGEN_USE_SYSTEM_INCLUDE to ON if it is not set
Add policy CMP0151 to preserve the old behavior by default.
2023-05-03 09:03:46 -04:00
Orkun Tokdemir
033dc7ee2f Autogen: Add AUTOGEN_USE_SYSTEM_INCLUDE target property
`AUTOGEN_USE_SYSTEM_INCLUDE` was added. `AUTOGEN_USE_SYSTEM_INCLUDE`
is a boolean property that can be set on a target to indicate that the
autogen target include directory should be added as a system include
directory or normal include directory to the target.
2023-05-03 09:03:46 -04:00
Brad King
9fd0ecdedb Tests: Fix RunCMake infrastructure for LCC and CMP0129
Since commit 3958ed878f (LCC: Add policy CMP0129 regarding interpreting
LCC as GNU, 2021-10-19, v3.23.0-rc1~508^2) we intended to enable policy
`CMP0129` in RunCMake tests via `-DCMAKE_POLICY_DEFAULT_CMP0129=NEW`.
Fix the condition activating that to check `CMAKE_C_COMPILER_ID` where
it is always available.

Remove now-unnecessary CMP0129 settings in RunCMake cases.
2023-04-03 09:42:22 -04:00
Orkun Tokdemir
429a452705 Autogen: Add target's C++ standard to moc_predef.h
Generate `moc_predef.h` using the same C++ standard level that will be
used to compile the target so that the compiler's predefined macros can
be more accurately recovered.

Fixes: #24624
Qt-Issue: https://bugreports.qt.io/browse/QTBUG-110847
2023-03-30 06:41:51 -04:00
Craig Scott
a742088472 Tests: Add support for testing Qt6
The minimum CMake version for Qt6 is 3.16, so all the calls to
cmake_minimum_required() are updated here to enforce that
minimum. This will avoid any CMake version-related warnings
from Qt.

Avoid hard-coding Qt5 where the tests could now be using
Qt5 or Qt6.

Fixes: #22188
2021-10-04 22:10:57 +11:00
Ben Boeckel
354c1f5628 Tests/RunCMake/Autogen: test CMP0111 behavior
On Windows, imported shared libraries which only have an
`IMPORTED_IMPLIB` set fail if they are depended upon by a target using
automoc. Add a test for the behavior of depending upon all imported
target types from an automoc-using target.
2021-09-24 11:29:54 -04:00
Ben Boeckel
17ac7c4024 Tests: add cases for providing Qt5Core_VERSION manually 2019-01-30 11:30:18 -05:00
Sebastian Holtermann
5fe18eee13 Autogen: Adaptive missing Qt warning
This makes the warning message for a missing Qt use
the requested Qt version in the message text.
2019-01-15 10:15:03 +01:00
Sebastian Holtermann
f2f1661334 Autogen: Add and use QtAutoGen::Tools method 2019-01-15 09:52:35 +01:00
Brad King
dd39da5518 Tests: Add case for warning when AUTOMOC/UIC/RCC gets disabled 2019-01-11 08:28:42 -05:00