cmake에는 ExternalProject가 있고 git에는 submodule이 있고 쉘 스크립트로도 관리할 수 있을거 같은데 다들 어떻게 관리하냐?