Skip to content

Commit fe1882b

Browse files
committed
tooling: Streamline in-source builds
1 parent f93a949 commit fe1882b

File tree

1 file changed

+10
-8
lines changed

1 file changed

+10
-8
lines changed

Makefile.package

+10-8
Original file line numberDiff line numberDiff line change
@@ -97,16 +97,20 @@ endif
9797
# These options can be set to influence package and configure.
9898
CONAN_OPTIONS :=
9999

100-
.PHONY: ${BUILD_LOCKFILE}
101100
ifneq "${LOCKFILE_SOURCE}" ""
101+
.PHONY: ${BUILD_LOCKFILE}
102102
ifeq "$(realpath ${LOCKFILE_SOURCE})" "$(realpath ${SOURCE_CONANFILE})"
103103
$(error "LOCKFILE_SOURCE must contain superset of SOURCE_CONANFILE package and dependencies")
104104
endif
105105
LOCKFILE_OPTION := --lockfile="${BUILD_LOCKFILE}"
106-
${BUILD_LOCKFILE}: ${LOCKFILE_SOURCE} | ${BUILD_DIR} export
106+
${BUILD_LOCKFILE}: ${LOCKFILE_SOURCE} export
107107
# Create lockfile from LOCKFILE_SOURCE.
108108
#
109+
mkdir -p "${BUILD_DIR}"
109110
conan lock create --lockfile-out "${BUILD_LOCKFILE}" ${BUILD_TYPE_OPTION} ${CONAN_OPTIONS} --build -- "${LOCKFILE_SOURCE}" >/dev/null
111+
else
112+
# Lockfile will be created automatically by conan install command.
113+
${BUILD_LOCKFILE}:
110114
endif
111115

112116
# When using a --lockfile option, we cannot use profile, settings, options, env
@@ -330,7 +334,7 @@ list: parse-info
330334

331335
# IN-SOURCE TARGETS -----------------------------------------------------------
332336
.PHONY: all clean conan configure test export-pkg
333-
all: ${SOURCE_DIR} ${BUILD_CONANINFO}
337+
all: ${BUILD_CONANINFO} | ${SOURCE_DIR}
334338
# Build the package in-source.
335339
#
336340
conan build . --source-folder="${SOURCE_DIR}" --build-folder="${BUILD_DIR}"
@@ -379,14 +383,12 @@ ${SOURCE_DIR}:
379383
[ "$(shell readlink -f "${SOURCE_DIR}")" != "$(shell readlink -f .)" ]
380384
conan source . --source-folder="${SOURCE_DIR}"
381385

382-
${BUILD_DIR}:
383-
mkdir -p "${BUILD_DIR}"
384-
385-
${SOURCE_CMAKELISTS}: ${SOURCE_DIR}
386+
${SOURCE_CMAKELISTS}: | ${SOURCE_DIR}
386387

387-
${BUILD_CONANINFO}: ${SOURCE_CONANFILE} ${BUILD_DIR} ${BUILD_LOCKFILE}
388+
${BUILD_CONANINFO}: ${SOURCE_CONANFILE} ${BUILD_LOCKFILE}
388389
# Install package dependencies and prepare in-source build.
389390
#
391+
mkdir -p "${BUILD_DIR}"
390392
conan install . ${PACKAGE_FQN} --install-folder="${BUILD_DIR}" --build=${BUILD_POLICY} ${ALL_OPTIONS}
391393
touch ${BUILD_CONANINFO}
392394

0 commit comments

Comments
 (0)