@@ -132,8 +132,8 @@ endif
132
132
133
133
# INFORMATIONAL TARGETS -------------------------------------------------------
134
134
.DEFAULT_GOAL := help
135
- .SILENT : help status parse-info parse-editable info-name info-version info-channel info-fqn info smoketest smoketest-deps
136
- .PHONY : help status parse-info parse-editable info-name info-version info-channel info-fqn info smoketest smoketest-deps
135
+ .SILENT : help
136
+ .PHONY : help
137
137
help :: parse-info parse-editable
138
138
$(call print_help_usage)
139
139
echo
@@ -193,6 +193,8 @@ endif
193
193
$(call print_help_define_align, GIT_COMMIT_HASH, ${GIT_COMMIT_HASH})
194
194
echo
195
195
196
+ .PHONY : parse-info
197
+ .SILENT : parse-info
196
198
parse-info : ${BUILD_LOCKFILE}
197
199
# Fetch package information from Conan.
198
200
#
@@ -205,9 +207,13 @@ parse-info: ${BUILD_LOCKFILE}
205
207
$(eval PACKAGE_DIR := $(shell echo -e "${PACKAGE_INFO}" | sed -rn 's/^ * package_folder: * (.* ) $$/\1/p') )
206
208
$(eval PACKAGE_DATE := $(shell echo -e "${PACKAGE_INFO}" | sed -rn 's/^ * Creation date: * (.* ) $$/\1/p') )
207
209
210
+ .PHONY : parse-editable
211
+ .SILENT : parse-editable
208
212
parse-editable :
209
213
$(eval PACKAGE_EDITABLE := $(shell [ -e ~/.conan/editable_packages.json ] && jq -r "${JQ_PACKAGE_EDITABLE}" ~/.conan/editable_packages.json || echo "not-editable") )
210
214
215
+ .PHONY : status
216
+ .SILENT : status
211
217
status : parse-info parse-editable
212
218
# Show the *approximate* status of each package in the cloe workspace.
213
219
#
@@ -226,42 +232,54 @@ status: parse-info parse-editable
226
232
fi \
227
233
fi
228
234
235
+ .PHONY : info-name
236
+ .SILENT : info-name
229
237
info-name :
230
238
echo ${PACKAGE_NAME}
231
239
240
+ .PHONY : info-version
241
+ .SILENT : info-version
232
242
info-version :
233
243
echo ${PACKAGE_VERSION}
234
244
245
+ .PHONY : info-channel
246
+ .SILENT : info-channel
235
247
info-channel :
236
248
echo ${PACKAGE_CHANNEL}
237
249
250
+ .PHONY : info-fqn
251
+ .SILENT : info-fqn
238
252
info-fqn :
239
253
echo ${PACKAGE_FQN}
240
254
255
+ .PHONY : info
256
+ .SILENT : info
241
257
info : parse-info
242
258
if [ -z " ${PACKAGE_INFO} " ]; then \
243
259
echo " Errors occurred, no output available." ; \
244
260
else \
245
261
echo ${PACKAGE_INFO} ; \
246
262
fi
247
263
264
+ .PHONY : smoketest
248
265
smoketest :
266
+ # Ensure that you have built all smoketest dependencies!
249
267
@for profile in tests/profile_* .py; do \
250
268
test -f " $$ {profile}" || continue ; \
251
269
printf " Running BATS tests with profile: $$ {profile}\n\n" ; \
252
270
SHELL=/bin/bash ${CLOE_LAUNCH} shell -P " $$ {profile}" -- -c " source ${PROJECT_ROOT} /tests/setup_testname.bash; bats tests" ; \
253
271
done
254
272
255
273
smoketest-deps :
274
+ # Ensure that you have exported all relevant packages!
256
275
@for profile in tests/profile_* .py; do \
257
276
test -f " $$ {profile}" || continue ; \
258
277
echo " Building dependencies for profile: $$ {profile}" ; \
259
278
${CLOE_LAUNCH} prepare -P " $$ {profile}" ; \
260
279
done
261
280
262
281
# CONFIGURATION TARGETS -------------------------------------------------------
263
- .PHONY : editable uneditable
264
-
282
+ .PHONY : editable
265
283
editable :
266
284
# Conan will now resolve references to the in-source build.
267
285
#
@@ -274,6 +292,7 @@ editable:
274
292
#
275
293
conan editable add . --layout " ${BUILD_LAYOUT} " ${PACKAGE_FQN}
276
294
295
+ .PHONY : uneditable
277
296
uneditable :
278
297
# Conan will now resolve references to the package in the cache.
279
298
#
@@ -283,8 +302,7 @@ uneditable:
283
302
conan editable remove ${PACKAGE_FQN}
284
303
285
304
# CONAN TARGETS ---------------------------------------------------------------
286
- .PHONY : export package package-all package-missing package-outdated purge list
287
-
305
+ .PHONY : export
288
306
export : parse-editable
289
307
# Export sources to Conan cache.
290
308
#
@@ -293,6 +311,7 @@ export: parse-editable
293
311
#
294
312
if [ " ${PACKAGE_EDITABLE} " = " not-editable" ] || [ " ${PACKAGE_EDITABLE} " = " editable-other-name" ]; then conan export . ${PACKAGE_FQN} ; fi
295
313
314
+ .PHONY : download
296
315
download :
297
316
# Try to download the package to Conan cache.
298
317
#
@@ -307,6 +326,7 @@ download:
307
326
conan create . ${PACKAGE_FQN} --build=never ${ALL_OPTIONS} || \
308
327
conan create . ${PACKAGE_FQN} --build=${BUILD_POLICY} --build=${PACKAGE_NAME} ${ALL_OPTIONS}
309
328
329
+ .PHONY : package
310
330
package : ${BUILD_LOCKFILE}
311
331
# Build the package in Conan cache unconditionally.
312
332
#
@@ -318,6 +338,7 @@ package: ${BUILD_LOCKFILE}
318
338
conan create . ${PACKAGE_FQN} \
319
339
--build=${BUILD_POLICY} --build=${PACKAGE_NAME} ${ALL_OPTIONS}
320
340
341
+ .PHONY : package-all
321
342
package-all : ${BUILD_LOCKFILE}
322
343
# Build the package in Conan cache unconditionally.
323
344
#
@@ -326,6 +347,7 @@ package-all: ${BUILD_LOCKFILE}
326
347
#
327
348
conan create . ${PACKAGE_FQN} --build ${ALL_OPTIONS}
328
349
350
+ .PHONY : package-outdated
329
351
package-outdated : ${BUILD_LOCKFILE}
330
352
# Build the package in Conan cache if it is outdated.
331
353
#
@@ -335,6 +357,7 @@ package-outdated: ${BUILD_LOCKFILE}
335
357
#
336
358
conan create . ${PACKAGE_FQN} --build=outdated ${ALL_OPTIONS}
337
359
360
+ .PHONY : purge
338
361
purge :
339
362
# Remove all instances of this package in the Conan cache.
340
363
#
@@ -344,14 +367,14 @@ purge:
344
367
#
345
368
-conan remove -f ${PACKAGE_FQN}
346
369
370
+ .PHONY : list
347
371
list : parse-info
348
372
# List all files in the Conan cache package directory.
349
373
#
350
374
@tree ${PACKAGE_DIR}
351
375
352
376
# IN-SOURCE TARGETS -----------------------------------------------------------
353
- .PHONY : all clean conan configure test export-pkg
354
-
377
+ .PHONY : clean
355
378
clean :
356
379
# Clean the build directory and Python cache files.
357
380
#
@@ -362,20 +385,25 @@ ifeq (${CLEAN_SOURCE_DIR}, true)
362
385
endif
363
386
364
387
ifeq (${BUILD_IN_SOURCE}, false)
388
+ .PHONY : all conan configure test export-pkg
365
389
all conan configure test export-pkg ${SOURCE_DIR} ${SOURCE_CMAKELISTS} ${BUILD_CONANINFO} ${BUILD_CMAKECACHE} :
366
390
@echo " Error: [in-source] targets are not supported for this package."
367
391
@echo " Note: please use [conan-cache] targets, such as 'package'."
368
392
exit 1
369
393
else
394
+ .PHONY : all
370
395
all : ${BUILD_CONANINFO} | ${SOURCE_DIR}
371
396
# Build the package in-source.
372
397
#
373
398
conan build . --source-folder=" ${SOURCE_DIR} " --build-folder=" ${BUILD_DIR} "
374
399
400
+ .PHONY : conan
375
401
conan : ${BUILD_CONANINFO}
376
402
403
+ .PHONY : configure
377
404
configure : ${BUILD_CMAKECACHE}
378
405
406
+ .PHONY : test
379
407
test :
380
408
# Run tests available to CMake ctest.
381
409
#
@@ -387,6 +415,7 @@ test:
387
415
true ; \
388
416
fi
389
417
418
+ .PHONY : export-pkg
390
419
export-pkg :
391
420
# Export in-source build artifacts to Conan cache.
392
421
#
0 commit comments