From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from smtp38.i.mail.ru (smtp38.i.mail.ru [94.100.177.98]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by dev.tarantool.org (Postfix) with ESMTPS id 48C434696C3 for ; Sat, 25 Apr 2020 10:17:37 +0300 (MSK) Date: Sat, 25 Apr 2020 10:17:30 +0300 From: Alexander Turenko Message-ID: <20200425071730.hva3scyfskaraukr@tkn_work_nb> References: MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Disposition: inline In-Reply-To: Subject: Re: [Tarantool-patches] [PATCH v2 2/3] gitlab-ci: add out-of-source build List-Id: Tarantool development patches List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: "Alexander V. Tikhonov" Cc: Oleg Piskunov , tarantool-patches@dev.tarantool.org > index 5f8b15a63..753b7293a 100644 > --- a/cmake/BuildLibCURL.cmake > +++ b/cmake/BuildLibCURL.cmake > @@ -56,10 +56,10 @@ macro(curl_build) > DOWNLOAD_DIR ${LIBCURL_BINARY_DIR} > TMP_DIR ${LIBCURL_BINARY_DIR}/tmp > STAMP_DIR ${LIBCURL_BINARY_DIR}/stamp > - BINARY_DIR ${LIBCURL_BINARY_DIR} > + BINARY_DIR ${LIBCURL_BINARY_DIR}/curl Don't get what is the problem you try to solve here. > CONFIGURE_COMMAND > - cd && ./buildconf && > - cd && /configure > + rm -rf && cp -rf && > + cd && ./buildconf && ./configure Will not it lead to full curl rebuild on each `make` run when something changed within the repo? > # Pass the same toolchain as is used to build > # tarantool itself, because they can be > # incompatible. > diff --git a/cmake/utils.cmake b/cmake/utils.cmake > index 3ab2d3ff2..6044ea7c0 100644 > --- a/cmake/utils.cmake > +++ b/cmake/utils.cmake > @@ -70,9 +70,9 @@ endfunction() > > function(bin_source varname srcfile dstfile) > set(var ${${varname}}) > - set(${varname} ${var} ${dstfile} PARENT_SCOPE) > + set(${varname} ${var} "${CMAKE_BINARY_DIR}/${dstfile}" PARENT_SCOPE) It is better to sink this line down below set(dstfile, ...). > set (srcfile "${CMAKE_CURRENT_SOURCE_DIR}/${srcfile}") > - set (dstfile "${CMAKE_CURRENT_SOURCE_DIR}/${dstfile}") > + set (dstfile "${CMAKE_BINARY_DIR}/${dstfile}") Why not CMAKE_CURRENT_BINARY_DIR? Now path to a source file is calculated relative to a currently processed directory, but path to a destination file is relative to a project binary directory that looks lopsided. > diff --git a/src/box/CMakeLists.txt b/src/box/CMakeLists.txt > index c931ecdfe..51b0006b1 100644 > --- a/src/box/CMakeLists.txt > +++ b/src/box/CMakeLists.txt > @@ -23,7 +23,7 @@ lua_source(lua_sources lua/xlog.lua) > lua_source(lua_sources lua/key_def.lua) > lua_source(lua_sources lua/merger.lua) > set(bin_sources) > -bin_source(bin_sources bootstrap.snap bootstrap.h) > +bin_source(bin_sources bootstrap.snap src/box/bootstrap.h) Note: I guess it will not be needed if we'll use CMAKE_CURRENT_BINARY_DIR in bin_source() function. > > add_custom_target(box_generate_lua_sources > WORKING_DIRECTORY ${CMAKE_BINARY_DIR}/src/box > @@ -32,6 +32,7 @@ set_property(DIRECTORY PROPERTY ADDITIONAL_MAKE_CLEAN_FILES ${lua_sources}) > > include_directories(${ZSTD_INCLUDE_DIRS}) > include_directories(${CMAKE_BINARY_DIR}/src/box/sql) > +include_directories(${CMAKE_BINARY_DIR}/src/box) Generating of bootstrap.h into a binary directory is the nice change!