nextgis-borsch/borsch

Чрезмерное копирование собранных библиотек

Closed this issue · 0 comments

Сделал в extlib.cmake так:

set(WITH_ZLIB ON CACHE BOOL "zlib on" FORCE)
set(WITH_ZLIB_EXTERNAL ON CACHE BOOL "zlib on" FORCE)

set(WITH_OpenSSL ON CACHE BOOL "OpenSSL on" FORCE)
set(WITH_OpenSSL_EXTERNAL ON CACHE BOOL "OpenSSL external on" FORCE)

set(WITH_CURL ON CACHE BOOL "CURL on" FORCE)
set(WITH_CURL_EXTERNAL ON CACHE BOOL "CURL external on" FORCE)
find_anyproject(CURL REQUIRED SHARED OFF CMAKE_ARGS
-DBUILD_CURL_EXE=OFF
-DHTTP_ONLY=ON
-DUSE_MANUAL=OFF)

Отконфигурировал и собрал (cmake --build .).

В итоге в папке

build-armeabi-v7a/third-party/Install

ZLIB_EP/lib
libz.a

OpenSSL_EP/lib
libcryptostatic.a
libsslstatic.a
libz.a

CURL_EP/lib
libcurlstatic.a
libcryptostatic.a
libsslstatic.a
libz.a

Аналогично для папок include.

То есть каждая последующая библиотека копирует все предыдущие ранее проинсталированные.

Думаю, это не сказывается положительно на скорости сборки. Для некоторых библиотек lib-файлы получаются более 100 МБ. То есть надо просто использовать нужные библиотеки из ранее установленных мест, а не копировать их каждый раз заново.

Как вариант, использовать общую папку для установки всех библиотек, без разделения на подпапки для каждой отдельной библиотеки. То есть чтобы в папке было:

build-armeabi-v7a/third-party/Install
    include/   (тут всё от всех библиотек)
    lib/       (тут всё от всех библиотек)