configure: error out on activating conflicting libraries

Change-Id: I5d7dbeb3b3a653f7151279c7eba9387c107f9c42
Reviewed-by: Lars Knoll <lars.knoll@qt.io>
bb10
Oswald Buddenhagen 2017-02-09 12:11:55 +01:00
parent 59a3abd1f1
commit 632b1c1345
1 changed files with 14 additions and 0 deletions

View File

@ -612,6 +612,9 @@ defineReplace(qtConfLibraryArgs) {
defineTest(qtConfExportLibrary) {
lpfx = $${currentConfig}.libraries.$$1
alias = $$eval($${lpfx}.alias)
$${currentConfig}.found.$$alias = $$1
export($${currentConfig}.found.$$alias)
name = $$eval($${lpfx}.export)
isEmpty(name): return()
spfx = $${lpfx}.sources.$$eval($${lpfx}.source)
@ -658,6 +661,17 @@ defineTest(qtConfHandleLibrary) {
lpfx = $${currentConfig}.libraries.$$1
defined($${lpfx}.result, var): return()
alias = $$eval($${lpfx}.alias)
!isEmpty($${currentConfig}.found.$$alias) {
# this happening indicates a logic error in the conditions
# of the feature(s) referring to this library.
# note that this does not look across module boundaries, as
# multiple modules may know the same libraries; de-duplication
# happens via the cache (obviously, this assumes identical
# definitions and logic).
error("A library exporting '$$alias' was already found.")
}
qtConfEnsureTestTypeDeps("library")
qtConfTestPrepare_compile($$lpfx)
use_args = $$eval($${lpfx}.literal_args)