* Disable JSON tests being included in ctest
If `CPMAddPackage` includes json without setting JSON_BuildTests off first then the target's ctest will include lots of json's tests.
* Bump example JSON version to avoid JSON tests
* Added directory inside cache to make it shown more friendly in CLion
* Changed hash generation to omit collision with old cache scheme. Removed moving old directory for compatibility reason.
* Added CPM_USE_NAMED_CACHE_DIRECTORIES option
* Fixed formatting
* Added description of CPM_USE_NAMED_CACHE_DIRECTORIES into README.md
Co-authored-by: Paweł Gorgoń <pgorgon@hem-e.com>
* Check that the cache working directory is clean
* cpm_check_working_dir_is_clean for non git repo will not terminate cmake
* sileneced check for git repo, in case of error
* style(CPM.cmake): fixed indentation for ERROR_QUIET
* refactor(CPM.cmake): added logic to handle a cache folder inside a (not correlated) git repo
this is accomplished by checking if we are in the directory where .git lives
* style(CPM.cmake): stray tab to spaces
* test(dirty-cache-check): added unit test to check cpm_check_working_dir_is_clean
the test creates a file in a folder and then uses git to create a repo in that folder, to check various conditions
* Update test/unit/dirty-cache-check.cmake
added user.name and user.email to comply with test machine where git is not completely configured
Co-authored-by: Lars Melchior <TheLartians@users.noreply.github.com>
* feat(cpm_check_working_dir_is_clean): now it takes a git tag (works with hashes too) to check for uncommitted and commited changes
* refactor(cpm_check_working_dir_is_clean): early return for the most common case of uncommited changes in a repo
* refactor(cpm_check_git_working_dir_is_clean): removed edgecase detection (a non-git folder in an unrelated git repo)
now the contract is that com_check_git_working_dir_is_clean is given the base folder of a git repo
Co-authored-by: Andrew Gribble <ag131012@renishaw.com>
Co-authored-by: Lars Melchior <TheLartians@users.noreply.github.com>
Add fetchcontent_dependency unit test:
* This test should highlight the fact that cpm_add_subdirectory is always called, even when
cpm_fetch_package isn't populating the dependency
* NO_CACHE YES highlight a bug introduced in 32b063eba5 where
cpm_fetch_package was checking undefined ${lower_case_name}_POPULATED variable
https://github.com/cpm-cmake/CPM.cmake/issues/287