diff options
author | Aki <please@ignore.pl> | 2024-03-02 22:57:02 +0100 |
---|---|---|
committer | Aki <please@ignore.pl> | 2024-03-03 00:59:45 +0100 |
commit | ca18c5b1b5004ffa88b6b3b85cd038d1217c09c6 (patch) | |
tree | 1ba5a8734c96f892322cd65af7cf33041ba4cb68 /cmake/modules/MakeAvailable.cmake | |
parent | e70158ea57302e2fa2d588b67fc8dc18265192eb (diff) | |
download | starshatter-ca18c5b1b5004ffa88b6b3b85cd038d1217c09c6.zip starshatter-ca18c5b1b5004ffa88b6b3b85cd038d1217c09c6.tar.gz starshatter-ca18c5b1b5004ffa88b6b3b85cd038d1217c09c6.tar.bz2 |
zlib sources removed from this tree
This, for whatever reason, breaks std::fs exception handling.
All remaining external projects will be moved to use this approach soon.
This is to prepare it for more new libraries which would otherwise make
the tree grow even further.
Diffstat (limited to 'cmake/modules/MakeAvailable.cmake')
-rw-r--r-- | cmake/modules/MakeAvailable.cmake | 16 |
1 files changed, 16 insertions, 0 deletions
diff --git a/cmake/modules/MakeAvailable.cmake b/cmake/modules/MakeAvailable.cmake new file mode 100644 index 0000000..16e976c --- /dev/null +++ b/cmake/modules/MakeAvailable.cmake @@ -0,0 +1,16 @@ +# Populates all declared FetchContent projects. Use this once after everything is set up: +# +# FetchContent_Declare(zlib ...) +# FetchContent_Declare(libpng ...) +# make_available(zlib libpng) + +function(make_available) + foreach(DEPNAME IN LISTS ARGN) + string(TOLOWER "${DEPNAME}" DEPNAME) + FetchContent_GetProperties(${DEPNAME}) + if(NOT ${DEPNAME}_POPULATED) + FetchContent_Populate(${DEPNAME}) + add_subdirectory(${${DEPNAME}_SOURCE_DIR} ${${DEPNAME}_BINARY_DIR} EXCLUDE_FROM_ALL) + endif() + endforeach() +endfunction() |