Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[SR-15304] Incorrect parsing of the `-framework' flag from the pkg-config (.pc) file. #4382

Closed
swift-ci opened this issue Oct 11, 2021 · 2 comments
Labels

Comments

@swift-ci
Copy link
Contributor

Previous ID SR-15304
Radar None
Original Reporter DimaRU (JIRA User)
Type Bug
Status Resolved
Resolution Done
Environment
  • Swift Package Manager - Swift 5.5.0

  • iMac with Intel processor.

  • Xcode 13.0 Build version 13A233

  • macOS: 11.6 BuildVersion: 20G165

  • qt@5: stable 5.15.2 (bottled) [keg-only]

Additional Detail from JIRA
Votes 0
Component/s Package Manager
Labels Bug
Assignee None
Priority Medium

md5: e88f4466d4e317579fbafb8b8705b2af

Issue Description:

When parsing the pkg-config file, the `-framework` flag from the `libs:` section is handled incorrectly, which leads to an error at the link stage of the package build. The -framework flag must have an associated value which is mistakenly filtered out.

Steps to reproduce:

brew install qt@5
export PKG_CONFIG_PATH=/usr/local/lib/pkgconfig:/usr/local/opt/qt5/lib/pkgconfig
git clone https://github.com/DimaRU/QliftExample.git
cd QliftExample
swift build

Build log

i-dmitry:~/…/qlift/QliftExample% swift --version
swift-driver version: 1.26.9 Apple Swift version 5.5 (swiftlang-1300.0.31.1 clang-1300.0.29.1)
Target: x86_64-apple-macosx11.0
i-dmitry:~/…/qlift/QliftExample% PKG_CONFIG_PATH=/usr/local/lib/pkgconfig:/usr/local/opt/qt5/lib/pkgconfig
i-dmitry:~/…/qlift/QliftExample% swift build
'CQt5Widgets' Qt5Widgets.pc: warning: prohibited flag(s): -DQT_WIDGETS_LIB, -DQT_CORE_LIB, -DQT_GUI_LIB, -DQT_CORE_LIB
ld: framework not found -F/usr/local/Cellar/qt@5/5.15.2/lib
[120/121] Linking QliftExample
i-dmitry:~/…/qlift/QliftExample% swift build -v
/usr/bin/xcrun --sdk macosx --show-sdk-platform-path
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/swiftc -print-target-info
/usr/bin/xcrun --sdk macosx --find xctest
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/swiftc -print-target-info
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/swift-frontend -frontend -print-target-info -sdk /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX11.3.sdk
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/swift-frontend -frontend -print-target-info
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/swift-frontend -frontend -emit-supported-features /var/folders/gs/_3vlw5xn2nq9ksrb_nflh0jw0000gn/T/TemporaryDirectory.slr48f/dummyInput-1.swift
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/swiftc -sdk /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX11.3.sdk -F /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/Library/Frameworks -I /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/usr/lib -L /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/usr/lib -F/usr/local/Cellar/qt@5/5.15.2/lib -framework -F/usr/local/Cellar/qt@5/5.15.2/lib -framework -F/usr/local/Cellar/qt@5/5.15.2/lib -framework -F/usr/local/Cellar/qt@5/5.15.2/lib -framework -lc++ -L /Users/dmitry/Developer/qlift/QliftExample/.build/x86_64-apple-macosx/debug -o /Users/dmitry/Developer/qlift/QliftExample/.build/x86_64-apple-macosx/debug/QliftExample -module-name QliftExample -emit-executable -Xlinker -rpath -Xlinker @loader_path @/Users/dmitry/Developer/qlift/QliftExample/.build/x86_64-apple-macosx/debug/QliftExample.product/Objects.LinkFileList -Xlinker -rpath -Xlinker /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/swift/macosx -target x86_64-apple-macosx10.13 -framework QtWidgets -framework QtCore -framework QtGui -Xlinker -add_ast_path -Xlinker /Users/dmitry/Developer/qlift/QliftExample/.build/x86_64-apple-macosx/debug/Qlift.swiftmodule -Xlinker -add_ast_path -Xlinker /Users/dmitry/Developer/qlift/QliftExample/.build/x86_64-apple-macosx/debug/QliftExample.build/QliftExample.swiftmodule -L /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib
ld: framework not found -F/usr/local/Cellar/qt@5/5.15.2/lib
i-dmitry:~/…/qlift/QliftExample%

Contents of `Qt5Widgets.pc`

prefix=/usr/local/Cellar/qt@5/5.15.2
exec_prefix=${prefix}
libdir=${prefix}/lib
includedir=${prefix}/lib/QtWidgets.framework/Headers


Name: Qt5 Widgets
Description: Qt Widgets module
Version: 5.15.2
Libs: -F${libdir} -framework QtWidgets
Cflags: -DQT_WIDGETS_LIB -I${includedir} -F${libdir}
Requires: Qt5Core Qt5Gui
@swift-ci
Copy link
Contributor Author

Comment by Dmitriy Borovikov (JIRA)

Pull request: #3801

@swift-ci
Copy link
Contributor Author

Comment by Dmitriy Borovikov (JIRA)

Pull request accepted.

@swift-ci swift-ci transferred this issue from apple/swift-issues Apr 25, 2022
@shahmishal shahmishal transferred this issue from apple/swift May 4, 2022
This issue was closed.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

1 participant