diff --git a/CMakeLists.txt b/CMakeLists.txt index 2b5f11345f863dcc84994261da7bce168da3004f..d2adb2555bf28cd43d368bcb35f4d860849df2a5 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -60,6 +60,10 @@ if(BUILD_STATIC_WITH_BUNDLED_LIBS) set(BUILD_STATIC ON) endif() +if(NOT BUNDLED_LIBS_INSTALL_DIR) + set(BUNDLED_LIBS_INSTALL_DIR ${PROJECT_BINARY_DIR}/build) +endif() + include(cmake/utils.cmake) include(cmake/pod2man.cmake) # the order is significant: we need to know os and compiler to configure libs diff --git a/cmake/BuildICONV.cmake b/cmake/BuildICONV.cmake index ebd71bc1b159e8cb02f6e9577ed5ab6dc6838145..5a417aabe68070df0918bd14921c9a12bc576f01 100644 --- a/cmake/BuildICONV.cmake +++ b/cmake/BuildICONV.cmake @@ -1,6 +1,6 @@ set(ICONV_VERSION 1.17) set(ICONV_HASH d718cd5a59438be666d1575855be72c3) -set(ICONV_INSTALL_DIR ${PROJECT_BINARY_DIR}/build/iconv) +set(ICONV_INSTALL_DIR ${BUNDLED_LIBS_INSTALL_DIR}/iconv-prefix) set(ICONV_INCLUDE_DIR ${ICONV_INSTALL_DIR}/include) set(ICONV_LIBRARY ${ICONV_INSTALL_DIR}/lib/libiconv.a) set(ICONV_CFLAGS "${DEPENDENCY_CFLAGS} -O2") @@ -14,6 +14,9 @@ endif() ExternalProject_Add(bundled-iconv-project PREFIX ${ICONV_INSTALL_DIR} + SOURCE_DIR ${ICONV_INSTALL_DIR}/src/iconv + BINARY_DIR ${ICONV_INSTALL_DIR}/src/iconv-build + STAMP_DIR ${ICONV_INSTALL_DIR}/src/iconv-stamp URL URL ${BACKUP_STORAGE}/libiconv/libiconv-${ICONV_VERSION}.tar.gz URL_MD5 ${ICONV_HASH} CONFIGURE_COMMAND <SOURCE_DIR>/configure diff --git a/cmake/BuildICU.cmake b/cmake/BuildICU.cmake index 4810a414537526609f2a540dc75bb38ae8d84d1c..dcfe1bc32c1ad0e11122cb3af20bf3b9831c797f 100644 --- a/cmake/BuildICU.cmake +++ b/cmake/BuildICU.cmake @@ -1,7 +1,7 @@ set(ICU_VERSION release-71-1/icu4c-71_1) set(ICU_HASH e06ffc96f59762bd3c929b217445aaec) set(ICU_PATCHES_DIR ${PROJECT_SOURCE_DIR}/patches) -set(ICU_INSTALL_DIR ${PROJECT_BINARY_DIR}/build/icu) +set(ICU_INSTALL_DIR ${BUNDLED_LIBS_INSTALL_DIR}/icu-prefix) set(ICU_INCLUDE_DIR ${ICU_INSTALL_DIR}/include) set(ICU_I18N_LIBRARY ${ICU_INSTALL_DIR}/lib/libicui18n.a) set(ICU_UC_LIBRARY ${ICU_INSTALL_DIR}/lib/libicuuc.a) @@ -19,6 +19,9 @@ endif() ExternalProject_Add(bundled-icu-project PREFIX ${ICU_INSTALL_DIR} + SOURCE_DIR ${ICU_INSTALL_DIR}/src/icu + BINARY_DIR ${ICU_INSTALL_DIR}/src/icu-build + STAMP_DIR ${ICU_INSTALL_DIR}/src/icu-stamp URL https://github.com/unicode-org/icu/releases/download/${ICU_VERSION}-src.tgz URL_MD5 ${ICU_HASH} CONFIGURE_COMMAND <SOURCE_DIR>/source/configure diff --git a/cmake/BuildOpenSSL.cmake b/cmake/BuildOpenSSL.cmake index 4c440e5692c2376bf22290da855dc79d0e367e25..015e14220bf9fda4eccd59ecea42a3165fb69d6b 100644 --- a/cmake/BuildOpenSSL.cmake +++ b/cmake/BuildOpenSSL.cmake @@ -1,7 +1,7 @@ set(OPENSSL_VERSION 1.1.1q) set(OPENSSL_HASH c685d239b6a6e1bd78be45624c092f51) set(OPENSSL_PATCHES_DIR ${PROJECT_SOURCE_DIR}/patches) -set(OPENSSL_INSTALL_DIR ${PROJECT_BINARY_DIR}/build/openssl) +set(OPENSSL_INSTALL_DIR ${BUNDLED_LIBS_INSTALL_DIR}/openssl-prefix) set(OPENSSL_INCLUDE_DIR ${OPENSSL_INSTALL_DIR}/include) set(OPENSSL_CRYPTO_LIBRARY ${OPENSSL_INSTALL_DIR}/lib/libcrypto.a) set(OPENSSL_SSL_LIBRARY ${OPENSSL_INSTALL_DIR}/lib/libssl.a) @@ -16,6 +16,9 @@ endif() ExternalProject_Add(bundled-openssl-project PREFIX ${OPENSSL_INSTALL_DIR} + SOURCE_DIR ${OPENSSL_INSTALL_DIR}/src/openssl + BINARY_DIR ${OPENSSL_INSTALL_DIR}/src/openssl-build + STAMP_DIR ${OPENSSL_INSTALL_DIR}/src/openssl-stamp URL ${BACKUP_STORAGE}/openssl/openssl-${OPENSSL_VERSION}.tar.gz URL_MD5 ${OPENSSL_HASH} CONFIGURE_COMMAND <SOURCE_DIR>/config diff --git a/cmake/BuildReadline.cmake b/cmake/BuildReadline.cmake index 1516efc491e66fdd03051e6149d27d086612f078..ef3e501c1fbad0cf13126771089035efc579c8e2 100644 --- a/cmake/BuildReadline.cmake +++ b/cmake/BuildReadline.cmake @@ -1,6 +1,6 @@ set(NCURSES_VERSION 6.3-20220716) set(NCURSES_HASH 2b7a0e31ebbd8144680f985d61f5bbd5) -set(NCURSES_INSTALL_DIR ${PROJECT_BINARY_DIR}/build/ncurses) +set(NCURSES_INSTALL_DIR ${BUNDLED_LIBS_INSTALL_DIR}/ncurses-prefix) set(NCURSES_LIBRARY ${NCURSES_INSTALL_DIR}/lib/libncurses.a) set(NCURSES_TINFO_LIBRARY ${NCURSES_INSTALL_DIR}/lib/libtinfo.a) set(NCURSES_CFLAGS "${DEPENDENCY_CFLAGS} -O2") @@ -11,7 +11,7 @@ set(NCURSES_LDFLAGS "") set(READLINE_VERSION 8.0) set(READLINE_HASH 7e6c1f16aee3244a69aba6e438295ca3) set(READLINE_PATCHES_DIR ${PROJECT_SOURCE_DIR}/patches) -set(READLINE_INSTALL_DIR ${PROJECT_BINARY_DIR}/build/readline) +set(READLINE_INSTALL_DIR ${BUNDLED_LIBS_INSTALL_DIR}/readline-prefix) set(READLINE_INCLUDE_DIR ${READLINE_INSTALL_DIR}/include) set(READLINE_LIBRARY ${READLINE_INSTALL_DIR}/lib/libreadline.a) set(READLINE_CFLAGS "${DEPENDENCY_CFLAGS} -O2") @@ -29,6 +29,9 @@ endif() ExternalProject_Add(bundled-ncurses-project PREFIX ${NCURSES_INSTALL_DIR} + SOURCE_DIR ${NCURSES_INSTALL_DIR}/src/ncurses + BINARY_DIR ${NCURSES_INSTALL_DIR}/src/ncurses-build + STAMP_DIR ${NCURSES_INSTALL_DIR}/src/ncurses-stamp URL ${BACKUP_STORAGE}/ncurses/ncurses-${NCURSES_VERSION}.tgz URL_MD5 ${NCURSES_HASH} CONFIGURE_COMMAND <SOURCE_DIR>/configure @@ -73,6 +76,9 @@ add_dependencies(bundled-ncurses-tinfo bundled-ncurses-project) ExternalProject_Add(bundled-readline-project PREFIX ${READLINE_INSTALL_DIR} + SOURCE_DIR ${READLINE_INSTALL_DIR}/src/readline + BINARY_DIR ${READLINE_INSTALL_DIR}/src/readline-build + STAMP_DIR ${READLINE_INSTALL_DIR}/src/readline-stamp URL ${BACKUP_STORAGE}/readline/readline-${READLINE_VERSION}.tar.gz URL_MD5 ${READLINE_HASH} CONFIGURE_COMMAND <SOURCE_DIR>/configure diff --git a/cmake/BuildZLIB.cmake b/cmake/BuildZLIB.cmake index f813102ac0239bf283373a322cb36072433c5eee..b4aeec84ec6f5faca50e5511eaccf0ace0e8cdf8 100644 --- a/cmake/BuildZLIB.cmake +++ b/cmake/BuildZLIB.cmake @@ -1,6 +1,6 @@ set(ZLIB_VERSION 1.2.12) set(ZLIB_HASH 5fc414a9726be31427b440b434d05f78) -set(ZLIB_INSTALL_DIR ${PROJECT_BINARY_DIR}/build/zlib) +set(ZLIB_INSTALL_DIR ${BUNDLED_LIBS_INSTALL_DIR}/zlib-prefix) set(ZLIB_INCLUDE_DIR ${ZLIB_INSTALL_DIR}/include) set(ZLIB_LIBRARY ${ZLIB_INSTALL_DIR}/lib/libz.a) set(ZLIB_CFLAGS "${DEPENDENCY_CFLAGS} -O2") @@ -14,6 +14,9 @@ endif() ExternalProject_Add(bundled-zlib-project PREFIX ${ZLIB_INSTALL_DIR} + SOURCE_DIR ${ZLIB_INSTALL_DIR}/src/zlib + BINARY_DIR ${ZLIB_INSTALL_DIR}/src/zlib-build + STAMP_DIR ${ZLIB_INSTALL_DIR}/src/zlib-stamp URL ${BACKUP_STORAGE}/zlib/zlib-${ZLIB_VERSION}.tar.gz URL_MD5 ${ZLIB_HASH} CONFIGURE_COMMAND env diff --git a/cmake/BuildZZIP.cmake b/cmake/BuildZZIP.cmake index 884787352541a7722cbc87d1952a6cee312c4477..b819351e29c52b20c8e40e22ce732e3dd1a54349 100644 --- a/cmake/BuildZZIP.cmake +++ b/cmake/BuildZZIP.cmake @@ -1,6 +1,6 @@ set(ZZIP_VERSION v0.13.71) set(ZZIP_HASH 1aa094186cf2222e4cda1b91b8fb8f60) -set(ZZIP_INSTALL_DIR ${PROJECT_BINARY_DIR}/build/zzip) +set(ZZIP_INSTALL_DIR ${BUNDLED_LIBS_INSTALL_DIR}/zzip-prefix) set(ZZIP_INCLUDE_DIR ${ZZIP_INSTALL_DIR}/include) set(ZZIP_LIBRARY ${ZZIP_INSTALL_DIR}/lib/libzzip-0.a) set(ZZIP_CFLAGS "${DEPENDENCY_CFLAGS} -O2") @@ -33,6 +33,9 @@ endif() ExternalProject_Add(bundled-zzip-project PREFIX ${ZZIP_INSTALL_DIR} + SOURCE_DIR ${ZZIP_INSTALL_DIR}/src/zzip + BINARY_DIR ${ZZIP_INSTALL_DIR}/src/zzip-build + STAMP_DIR ${ZZIP_INSTALL_DIR}/src/zzip-stamp URL https://github.com/gdraheim/zziplib/archive/${ZZIP_VERSION}.tar.gz URL_MD5 ${ZZIP_HASH} CMAKE_ARGS ${ZZIP_CMAKE_FLAGS} diff --git a/static-build/cmake/AddTarantoolProject.cmake b/static-build/cmake/AddTarantoolProject.cmake index afd7f093b678dc372b8836a1c7e962824fe54303..09b9717cb2f7e8627999cf7828e0e9dfada7f865 100644 --- a/static-build/cmake/AddTarantoolProject.cmake +++ b/static-build/cmake/AddTarantoolProject.cmake @@ -10,6 +10,7 @@ ExternalProject_Add(tarantool -DCMAKE_INSTALL_LOCALSTATEDIR=<INSTALL_DIR>/var -DCMAKE_INSTALL_PREFIX=<INSTALL_DIR> -DBUILD_STATIC_WITH_BUNDLED_LIBS=TRUE + -DBUNDLED_LIBS_INSTALL_DIR=${PROJECT_BINARY_DIR} -DENABLE_DIST=TRUE -DENABLE_HARDENING=${ENABLE_HARDENING} -DCMAKE_C_COMPILER=${CMAKE_C_COMPILER}