11include (FetchContent )
22
3+
4+ # Utility for fetching Langulus libraries using FetchContent
35function (fetch_langulus_module NAME GIT_TAG TAG )
6+ if (LANGULUS)
7+ message (FATAL_ERROR "You can't fetch Langulus::${NAME} , because this build \
8+ indicates LANGULUS is being build along your project. The library you're \
9+ trying to fetch should already be available locally." )
10+ endif ()
11+
412 if (NOT DEFINED LANGULUS_EXTERNAL_DIRECTORY)
513 set (LANGULUS_EXTERNAL_DIRECTORY "${CMAKE_SOURCE_DIR} /external" CACHE PATH
614 "Place where external dependencies will be downloaded" )
7- message (WARNING "LANGULUS_EXTERNAL_DIRECTORY not defined, using default: ${LANGULUS_EXTERNAL_DIRECTORY} " )
15+ message (WARNING "LANGULUS_EXTERNAL_DIRECTORY not defined, using default: \
16+ ${LANGULUS_EXTERNAL_DIRECTORY} " )
817 endif ()
918
10- # Completely avoid downloading or updating anything, once the appropriate folder exists
19+ # Completely avoid downloading or updating anything, once the appropriate
20+ # folder exists
1121 string (TOUPPER ${NAME} UPPERCASE_NAME)
1222 if (EXISTS "${LANGULUS_EXTERNAL_DIRECTORY} /${NAME} -src" )
1323 set (FETCHCONTENT_SOURCE_DIR_LANGULUS${UPPERCASE_NAME} "${LANGULUS_EXTERNAL_DIRECTORY} /${NAME} -src" CACHE INTERNAL "" FORCE )
14- message (STATUS "Reusing external library Langulus::${NAME} ... (delete ${LANGULUS_EXTERNAL_DIRECTORY} /${NAME} -src manually in order to redownload)" )
24+ message (STATUS "Reusing external library Langulus::${NAME} ... \
25+ (delete ${LANGULUS_EXTERNAL_DIRECTORY} /${NAME} -src manually in order to redownload)" )
1526 else ()
1627 unset (FETCHCONTENT_SOURCE_DIR_LANGULUS${UPPERCASE_NAME} CACHE )
1728 message (STATUS "Downloading external library Langulus::${NAME} ..." )
@@ -28,18 +39,23 @@ function(fetch_langulus_module NAME GIT_TAG TAG)
2839 FetchContent_MakeAvailable (Langulus${NAME} )
2940endfunction ()
3041
42+
43+ # Utility for fetching external libraries using FetchContent
3144function (fetch_external_module NAME GIT_REPOSITORY REPO GIT_TAG TAG )
3245 if (NOT DEFINED LANGULUS_EXTERNAL_DIRECTORY)
3346 set (LANGULUS_EXTERNAL_DIRECTORY "${CMAKE_SOURCE_DIR} /external" CACHE PATH
3447 "Place where external dependencies will be downloaded" )
35- message (WARNING "LANGULUS_EXTERNAL_DIRECTORY not defined, using default: ${LANGULUS_EXTERNAL_DIRECTORY} " )
48+ message (WARNING "LANGULUS_EXTERNAL_DIRECTORY not defined, \
49+ using default: ${LANGULUS_EXTERNAL_DIRECTORY} " )
3650 endif ()
3751
38- # Completely avoid downloading or updating anything, once the appropriate folder exists
52+ # Completely avoid downloading or updating anything, once the appropriate
53+ # folder exists
3954 string (TOUPPER ${NAME} UPPERCASE_NAME)
4055 if (EXISTS "${LANGULUS_EXTERNAL_DIRECTORY} /${NAME} -src" )
4156 set (FETCHCONTENT_SOURCE_DIR_${UPPERCASE_NAME} "${LANGULUS_EXTERNAL_DIRECTORY} /${NAME} -src" CACHE INTERNAL "" FORCE )
42- message (STATUS "Reusing external library ${NAME} ... (delete ${LANGULUS_EXTERNAL_DIRECTORY} /${NAME} -src manually in order to redownload)" )
57+ message (STATUS "Reusing external library ${NAME} ... \
58+ (delete ${LANGULUS_EXTERNAL_DIRECTORY} /${NAME} -src manually in order to redownload)" )
4359 else ()
4460 unset (FETCHCONTENT_SOURCE_DIR_${UPPERCASE_NAME} CACHE )
4561 message (STATUS "Downloading external library ${NAME} ..." )
@@ -59,4 +75,4 @@ function(fetch_external_module NAME GIT_REPOSITORY REPO GIT_TAG TAG)
5975 string (TOLOWER ${NAME} LOWERCASE_NAME)
6076 set (${NAME} _SOURCE_DIR "${${LOWERCASE_NAME} _SOURCE_DIR}" CACHE INTERNAL "${NAME} source directory" )
6177 set (${NAME} _BINARY_DIR "${${LOWERCASE_NAME} _BINARY_DIR}" CACHE INTERNAL "${NAME} binary directory" )
62- endfunction ()
78+ endfunction ()
0 commit comments