| cmake_minimum_required(VERSION 3.29) |
| cmake_policy(SET CMP0168 ${CMP0168}) |
| |
| include(FetchContent) |
| |
| file(WRITE tmpFile.txt "Generated contents, not important") |
| |
| FetchContent_Populate( |
| t1 |
| DOWNLOAD_COMMAND ${CMAKE_COMMAND} -E copy |
| ${CMAKE_CURRENT_BINARY_DIR}/tmpFile.txt |
| <SOURCE_DIR>/done1.txt |
| ) |
| if(NOT EXISTS ${CMAKE_CURRENT_BINARY_DIR}/t1-src/done1.txt) |
| message(FATAL_ERROR "Default SOURCE_DIR doesn't contain done1.txt") |
| endif() |
| if(CMP0168 STREQUAL "NEW" AND EXISTS ${CMAKE_CURRENT_BINARY_DIR}/t1-subbuild) |
| message(FATAL_ERROR "t1 sub-build used when expected direct population") |
| elseif(CMP0168 STREQUAL "OLD" AND NOT EXISTS ${CMAKE_CURRENT_BINARY_DIR}/t1-subbuild) |
| message(FATAL_ERROR "t1 used direct population when a sub-build was expected") |
| endif() |
| |
| FetchContent_Populate( |
| t2 |
| SOURCE_DIR ${CMAKE_CURRENT_BINARY_DIR}/mysrc |
| DOWNLOAD_COMMAND ${CMAKE_COMMAND} -E copy |
| ${CMAKE_CURRENT_BINARY_DIR}/tmpFile.txt |
| <SOURCE_DIR>/done2.txt |
| ) |
| if(NOT EXISTS ${CMAKE_CURRENT_BINARY_DIR}/mysrc/done2.txt) |
| message(FATAL_ERROR "Specified SOURCE_DIR doesn't contain done2.txt") |
| endif() |
| if(CMP0168 STREQUAL "NEW" AND EXISTS ${CMAKE_CURRENT_BINARY_DIR}/t2-subbuild) |
| message(FATAL_ERROR "t2 sub-build used when expected direct population") |
| elseif(CMP0168 STREQUAL "OLD" AND NOT EXISTS ${CMAKE_CURRENT_BINARY_DIR}/t2-subbuild) |
| message(FATAL_ERROR "t2 used direct population when a sub-build was expected") |
| endif() |
| |
| FetchContent_Populate( |
| t3 |
| SOURCE_DIR myrelsrc |
| DOWNLOAD_COMMAND ${CMAKE_COMMAND} -E copy |
| ${CMAKE_CURRENT_BINARY_DIR}/tmpFile.txt |
| <SOURCE_DIR>/done3.txt |
| ) |
| if(NOT EXISTS ${CMAKE_CURRENT_BINARY_DIR}/myrelsrc/done3.txt) |
| message(FATAL_ERROR "Relative SOURCE_DIR doesn't contain done3.txt") |
| endif() |
| if(CMP0168 STREQUAL "NEW" AND EXISTS ${CMAKE_CURRENT_BINARY_DIR}/t3-subbuild) |
| message(FATAL_ERROR "t3 sub-build used when expected direct population") |
| elseif(CMP0168 STREQUAL "OLD" AND NOT EXISTS ${CMAKE_CURRENT_BINARY_DIR}/t3-subbuild) |
| message(FATAL_ERROR "t3 used direct population when a sub-build was expected") |
| endif() |