diff options
author | Orkun Tokdemir <ilhanorkuntokdemir@gmail.com> | 2024-01-26 11:17:14 (GMT) |
---|---|---|
committer | Brad King <brad.king@kitware.com> | 2024-01-28 14:40:47 (GMT) |
commit | d0bedb217046e4fb79bff2c24b581d97451d0fd4 (patch) | |
tree | f746848de5a6c80f181c9bd59a7c48f9a6a5f82c /Tests/QtAutogen | |
parent | 4deb9c41b88d53247c7929de660e0cafe8d8d25c (diff) | |
download | CMake-d0bedb217046e4fb79bff2c24b581d97451d0fd4.zip CMake-d0bedb217046e4fb79bff2c24b581d97451d0fd4.tar.gz CMake-d0bedb217046e4fb79bff2c24b581d97451d0fd4.tar.bz2 |
Autogen: Forward dependencies when both Makefile and DEPFILE are used
Since commit ebc9e448b3 (Autogen: Add depfile support for Makefiles,
2023-09-07, v3.28.0-rc1~101^2~1) CMake does not generate the correct
dependency graph when both `Makefile` and `DEPFILE` are used.
The build of `<target_name>_autogen_timestamp_deps` fails due to
missing dependencies. To tackle that problem, forward target
dependencies to both `<target_name>_autogen_timestamp_deps` and
`<target_name>_autogen` instead of just `<target_name>_autogen`.
Fixes: #25600
Diffstat (limited to 'Tests/QtAutogen')
6 files changed, 29 insertions, 0 deletions
diff --git a/Tests/QtAutogen/AutogenTimestampDeps/CMakeLists.txt b/Tests/QtAutogen/AutogenTimestampDeps/CMakeLists.txt new file mode 100644 index 0000000..3470a02 --- /dev/null +++ b/Tests/QtAutogen/AutogenTimestampDeps/CMakeLists.txt @@ -0,0 +1,11 @@ +cmake_minimum_required(VERSION 3.28) +project(AutogenTimestampDeps) +include("../AutogenCoreTest.cmake") + +set(CMAKE_AUTOMOC ON) + +add_custom_target(ProjectInfo + COMMAND ${CMAKE_COMMAND} -P ${CMAKE_CURRENT_SOURCE_DIR}/cmake/UpdateProjectInfo.cmake + BYPRODUCTS ${CMAKE_BINARY_DIR}/ProjectInfo.hpp) + +add_subdirectory(src) diff --git a/Tests/QtAutogen/AutogenTimestampDeps/ProjectInfo.hpp.in b/Tests/QtAutogen/AutogenTimestampDeps/ProjectInfo.hpp.in new file mode 100644 index 0000000..abaa66c --- /dev/null +++ b/Tests/QtAutogen/AutogenTimestampDeps/ProjectInfo.hpp.in @@ -0,0 +1,6 @@ +#ifndef PROJECTINFO_HPP +#define PROJECTINFO_HPP + +extern int VersionMajor; + +#endif // PROJECTINFO_HPP diff --git a/Tests/QtAutogen/AutogenTimestampDeps/cmake/UpdateProjectInfo.cmake b/Tests/QtAutogen/AutogenTimestampDeps/cmake/UpdateProjectInfo.cmake new file mode 100644 index 0000000..8dd8d55 --- /dev/null +++ b/Tests/QtAutogen/AutogenTimestampDeps/cmake/UpdateProjectInfo.cmake @@ -0,0 +1,2 @@ + +configure_file(${CMAKE_CURRENT_LIST_DIR}/../ProjectInfo.hpp.in ${CMAKE_BINARY_DIR}/ProjectInfo.hpp @ONLY) diff --git a/Tests/QtAutogen/AutogenTimestampDeps/src/CMakeLists.txt b/Tests/QtAutogen/AutogenTimestampDeps/src/CMakeLists.txt new file mode 100644 index 0000000..e931248 --- /dev/null +++ b/Tests/QtAutogen/AutogenTimestampDeps/src/CMakeLists.txt @@ -0,0 +1,4 @@ +add_executable(Exe main.cpp ${CMAKE_BINARY_DIR}/ProjectInfo.hpp) +add_dependencies(Exe ProjectInfo) +target_include_directories(Exe PRIVATE ${CMAKE_BINARY_DIR}) +target_link_libraries(Exe PRIVATE ${QT_QTCORE_TARGET}) diff --git a/Tests/QtAutogen/AutogenTimestampDeps/src/main.cpp b/Tests/QtAutogen/AutogenTimestampDeps/src/main.cpp new file mode 100644 index 0000000..f3c4c4b --- /dev/null +++ b/Tests/QtAutogen/AutogenTimestampDeps/src/main.cpp @@ -0,0 +1,5 @@ +#include "ProjectInfo.hpp" +int main(int argc, char* argv[]) +{ + return 0; +} diff --git a/Tests/QtAutogen/Tests.cmake b/Tests/QtAutogen/Tests.cmake index d676abd..80f7329 100644 --- a/Tests/QtAutogen/Tests.cmake +++ b/Tests/QtAutogen/Tests.cmake @@ -2,6 +2,7 @@ ADD_AUTOGEN_TEST(AutogenOriginDependsOff autogenOriginDependsOff) ADD_AUTOGEN_TEST(AutogenOriginDependsOn) ADD_AUTOGEN_TEST(AutogenTargetDepends) +ADD_AUTOGEN_TEST(AutogenTimestampDeps) ADD_AUTOGEN_TEST(AutoMocGeneratedFile) ADD_AUTOGEN_TEST(Complex QtAutogen) ADD_AUTOGEN_TEST(GlobalAutogenSystemUseInclude) |