diff options
author | dundargoc <gocdundar@gmail.com> | 2024-03-18 12:23:53 +0100 |
---|---|---|
committer | dundargoc <33953936+dundargoc@users.noreply.github.com> | 2024-03-23 13:36:12 +0100 |
commit | 2c1e8f7e96926f70151d737ea32f1e6ff3589263 (patch) | |
tree | b15ec6229fcbb724f18a7a7d5db3d10676fd42b7 /cmake | |
parent | 881f5e59173a4f1b9a4cb16e425709e40d79d0e9 (diff) | |
download | rneovim-2c1e8f7e96926f70151d737ea32f1e6ff3589263.tar.gz rneovim-2c1e8f7e96926f70151d737ea32f1e6ff3589263.tar.bz2 rneovim-2c1e8f7e96926f70151d737ea32f1e6ff3589263.zip |
build: use `GIT_REPOSITORY` for local URLs
`GIT_REPOSITORY` will cause cmake to rebuild if local dependency
changes, which isn't the case for `URL`.
Also document how to test a different commits of a dependency.
Diffstat (limited to 'cmake')
-rw-r--r-- | cmake/Deps.cmake | 25 |
1 files changed, 19 insertions, 6 deletions
diff --git a/cmake/Deps.cmake b/cmake/Deps.cmake index 4700d08427..2e9a78ee22 100644 --- a/cmake/Deps.cmake +++ b/cmake/Deps.cmake @@ -19,7 +19,6 @@ if(APPLE) endif() set(DEPS_CMAKE_CACHE_ARGS -DCMAKE_OSX_ARCHITECTURES:STRING=${CMAKE_OSX_ARCHITECTURES}) -set(EXTERNALPROJECT_OPTIONS DOWNLOAD_NO_PROGRESS TRUE) # MAKE_PRG if(UNIX) @@ -55,10 +54,24 @@ if(CMAKE_OSX_ARCHITECTURES) endforeach() endif() -function(get_sha name ignore) - unset(EXTERNALPROJECT_URL_HASH) - if(NOT ${ignore}) - string(TOUPPER ${name} name_allcaps) - set(EXTERNALPROJECT_URL_HASH URL_HASH SHA256=${${name_allcaps}_SHA256} PARENT_SCOPE) +function(get_externalproject_options name DEPS_IGNORE_SHA) + string(TOUPPER ${name} name_allcaps) + set(url ${${name_allcaps}_URL}) + + set(EXTERNALPROJECT_OPTIONS DOWNLOAD_NO_PROGRESS TRUE) + + if(EXISTS ${url}) + list(APPEND EXTERNALPROJECT_OPTIONS + GIT_REPOSITORY ${${name_allcaps}_URL}) + if(${CMAKE_VERSION} VERSION_GREATER_EQUAL 3.18) + list(APPEND EXTERNALPROJECT_OPTIONS GIT_REMOTE_UPDATE_STRATEGY CHECKOUT) + endif() + else() + list(APPEND EXTERNALPROJECT_OPTIONS URL ${${name_allcaps}_URL}) + if(NOT ${DEPS_IGNORE_SHA}) + list(APPEND EXTERNALPROJECT_OPTIONS URL_HASH SHA256=${${name_allcaps}_SHA256}) + endif() endif() + + set(EXTERNALPROJECT_OPTIONS ${EXTERNALPROJECT_OPTIONS} PARENT_SCOPE) endfunction() |