Tarantool development patches archive
 help / color / mirror / Atom feed
From: Igor Munkin <imun@tarantool.org>
To: HustonMmmavr <huston.mavr@gmail.com>
Cc: alexander.turenko@tarantool.org,
	tarantool-patches@dev.tarantool.org, yaroslav.dynnikov@gmail.com
Subject: Re: [Tarantool-patches] [PATCH v3] build: refactor static build process
Date: Mon, 14 Sep 2020 19:32:45 +0300	[thread overview]
Message-ID: <20200914163245.GI18920@tarantool.org> (raw)
In-Reply-To: <20200909154546.1850-1-huston.mavr@gmail.com>

Hello,

Thanks, the patch is LGTM, except the nits below.

Minor: Do we need a ChangeLog entry for it? I don't know.

On 09.09.20, HustonMmmavr wrote:
> From: Yaroslav Dynnikov <yaroslav.dynnikov@gmail.com>
> 
> Refactored static build process to use static-build/CMakeLists.txt
> instead of Dockerfile.staticbuild (this allows to support static
> build on macOS). Following third-party dependencies for static build
> are installed via cmake `ExternalProject_Add`:
>   - OpenSSL
>   - Zlib
>   - Ncurses
>   - Readline
>   - Unwind
>   - ICU
> 
> * Added support static build for macOS
> * Fixed `CONFIGURE_COMMAND` while building bundled libcurl for static
>   build at file cmake/BuildLibCURL.cmake:
>     - disable building shared libcurl libraries (by setting
>       `--disable-shared` option)
>     - disable hiding libcurl symbols (by setting
>       `--disable-symbol-hiding` option)
>     - prevent linking libcurl with system libz (by setting
>       `--with-zlib=${FOUND_ZLIB_ROOT_DIR}` option)
> * Removed Dockerfile.staticbuild
> * Added new gitlab.ci jobs to test new style static build:
>   - static_build_cmake_linux
>   - static_build_cmake_osx_15
> * Removed static_docker_build gitlab.ci job
> 
> Closes #5095
> ---
> 
> Branch: https://github.com/tarantool/tarantool/tree/rosik/refactor-static-build
> Issue: https://github.com/tarantool/tarantool/issues/5095
> 
> Changes in v3:
> 1. Fixed typos at commit message
> 2. Fixed commentaries at .travis.mk
> 3. Fixed finding libz library at cmake/BuildLibCurl.cmake as at master
>    branch
> 4. Instead of using static-build/.gitignore use the root .gitignore file
> 5. Refactored static-build/CMakeLists.txt:
>    * Project name is set to tarantool-static
>    * Instead of explicitly finding of c/c++ compilers current version uses
>      cmake `project(tarantool-static C CXX)` command. This change requires
>      to manually set CFLAGS/CPPFLAGS/LDFLAGS for all static-build
>      dependencies (because building dependencies at macOS requires path
>      to macOS SDK) the idea was taken from cmake/BuildLibCurl.cmake
>    * Added commentaries about problem with libicu
>    * Removed unused TEST_COMMAND at ExternalProject_Add(zlib ...) also
>      removed unnecessary # STEP_TARGETS at ExternalProject_Add(readline ...)
>    * Deleted doubled whitespaces
> 6. Fixed static-build/README.md:
>    * Added list of required tools
>    * Added example for ubuntu/debian
>    * Fixed indentation and typos
> 7. Refactored tests:
>    * Got rid of test-run
>    * Deleted doubled whitespaces at exports.test.lua
>    * Fixed defining of RTLD_DEFAULT
> 
> 
>  .gitignore                                    |   8 +
>  .gitlab-ci.yml                                |  11 +-
>  .travis.mk                                    |  56 +++-
>  Dockerfile.staticbuild                        |  98 ------
>  cmake/BuildLibCURL.cmake                      |  13 +-
>  cmake/compiler.cmake                          |  24 +-
>  cmake/os.cmake                                |   5 +-
>  static-build/CMakeLists.txt                   | 311 ++++++++++++++++++
>  static-build/README.md                        |  90 +++++
>  static-build/test/CheckDependencies.cmake     |  43 +++
>  .../test/static-build/exports.test.lua        | 142 ++++++++
>  .../test/static-build/traceback.test.lua      |  15 +
>  12 files changed, 692 insertions(+), 124 deletions(-)
>  delete mode 100644 Dockerfile.staticbuild
>  create mode 100644 static-build/CMakeLists.txt
>  create mode 100644 static-build/README.md
>  create mode 100644 static-build/test/CheckDependencies.cmake
>  create mode 100755 static-build/test/static-build/exports.test.lua
>  create mode 100755 static-build/test/static-build/traceback.test.lua
> 

<snipped>

> diff --git a/static-build/CMakeLists.txt b/static-build/CMakeLists.txt
> new file mode 100644
> index 000000000..90029fdd8
> --- /dev/null
> +++ b/static-build/CMakeLists.txt
> @@ -0,0 +1,311 @@
> +cmake_minimum_required(VERSION 2.8)
> +
> +# Detect system compilers for further configuring dependencies to be

Typo: s/configuring dependencies/dependencies configuring/.

> +# builded with these compilers. This is used to build tarantool and

Typo: s/builded/built/.

> +# it's dependencies by usign one compiler system (for example libicu

Typo: s/usign/using/.

> +# by default uses clang if it exists when others uses gcc/g++ on
> +# linux machine).

<snipped>

> -- 
> 2.26.2
> 

-- 
Best regards,
IM

  parent reply	other threads:[~2020-09-14 16:43 UTC|newest]

Thread overview: 7+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-09-09 15:45 HustonMmmavr
2020-09-10 10:00 ` Alexandr Barulev
2020-09-14 16:32 ` Igor Munkin [this message]
2020-09-14 18:31   ` Alexandr Barulev
2020-09-14 18:42     ` Igor Munkin
2020-09-15 13:53 ` Kirill Yukhin
2020-09-15 14:14   ` Igor Munkin

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20200914163245.GI18920@tarantool.org \
    --to=imun@tarantool.org \
    --cc=alexander.turenko@tarantool.org \
    --cc=huston.mavr@gmail.com \
    --cc=tarantool-patches@dev.tarantool.org \
    --cc=yaroslav.dynnikov@gmail.com \
    --subject='Re: [Tarantool-patches] [PATCH v3] build: refactor static build process' \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox