Browse Source

Tests: Add test for early source lookup of file(GENERATE)

The output file structures of file(GENERATE) have to be created early to
be able to use the generated files in source lists.

This was not done correctly for subdirectories which has been fixed
in commit aee2c51224 (file(GENERATE): Create output file structures for
all directories first, 2020-09-10).

Add a test case to address issue #21144.
Josef Angstenberger 5 years ago
parent
commit
e02f677f61

+ 3 - 0
Tests/RunCMake/File_Generate/GenerateSource.cmake

@@ -10,3 +10,6 @@ file(GENERATE
 )
 
 add_executable(mn "${CMAKE_CURRENT_BINARY_DIR}/main.cpp")
+
+add_subdirectory(GenerateSource)
+target_link_libraries(mn PRIVATE ObjLib)

+ 8 - 0
Tests/RunCMake/File_Generate/GenerateSource/CMakeLists.txt

@@ -0,0 +1,8 @@
+add_library(ObjLib OBJECT)
+
+target_sources(ObjLib PRIVATE "${CMAKE_CURRENT_BINARY_DIR}/ObjLib.cpp")
+
+# Ensure re-generation
+file(REMOVE "${CMAKE_CURRENT_BINARY_DIR}/ObjLib.cpp")
+
+file(GENERATE OUTPUT "${CMAKE_CURRENT_BINARY_DIR}/ObjLib.cpp" CONTENT "")