Skip to content
Snippets Groups Projects
  • Nikolay Shirokovskiy's avatar
    14f93aee
    libunwind: improve incremental build/rebuild · 14f93aee
    Nikolay Shirokovskiy authored
    Currently we use ExternalProject_Add to build libunwind subproject. The
    usecases it supports are not quite aligned with our. Configuration and
    build steps are rerun in case download step sees updated sources. But
    we use git submodules to fetch third-party projects and thus subproject
    is not rebuild when it's files are changed on disk. Either because of
    we doing some sort of experiments locally or because the new sources
    are brought by git pull.
    
    Actually libunwind has a CMakeList.txt so that we could try to build it
    just as project subdirectory. But it requires quite a fresh CMake
    version, currently supports only build on Visual Studio and probably is
    not up to date given it's package version variables. Keeping
    CMakeLists.txt in sync with main autotools build is additional
    maintenance burden. So I'd like to use main autotools build.
    
    So ext_project_autotools function is added to provide nicer build
    integration with third-party projects which are build using autotools.
    Actually incremental rebuild works only if CMake is at least 3.12 but
    I think this should be true for developer installations.
    
    Hopefully we can reuse the function in case we need to bundle more
    subprojects with autotools builds.
    
    Follow-up #5665
    
    NO_DOC=build improvement
    NO_TEST=build improvement
    NO_CHANGELOG=build improvement
    14f93aee
    History
    libunwind: improve incremental build/rebuild
    Nikolay Shirokovskiy authored
    Currently we use ExternalProject_Add to build libunwind subproject. The
    usecases it supports are not quite aligned with our. Configuration and
    build steps are rerun in case download step sees updated sources. But
    we use git submodules to fetch third-party projects and thus subproject
    is not rebuild when it's files are changed on disk. Either because of
    we doing some sort of experiments locally or because the new sources
    are brought by git pull.
    
    Actually libunwind has a CMakeList.txt so that we could try to build it
    just as project subdirectory. But it requires quite a fresh CMake
    version, currently supports only build on Visual Studio and probably is
    not up to date given it's package version variables. Keeping
    CMakeLists.txt in sync with main autotools build is additional
    maintenance burden. So I'd like to use main autotools build.
    
    So ext_project_autotools function is added to provide nicer build
    integration with third-party projects which are build using autotools.
    Actually incremental rebuild works only if CMake is at least 3.12 but
    I think this should be true for developer installations.
    
    Hopefully we can reuse the function in case we need to bundle more
    subprojects with autotools builds.
    
    Follow-up #5665
    
    NO_DOC=build improvement
    NO_TEST=build improvement
    NO_CHANGELOG=build improvement