Skip to content

Commit 83940f2

Browse files
author
Thiago Macieira
committed
Use LIBS_PRIVATE on Mac and X11.
On the Mac, it means "-framework ApplicationServices -framework Carbon -framework AppKit" are no longer part of the default LIBS in Qt applications. This required a lot of fixes where we used Mac-specific code in Qt. On X11, it was very straightforward, because we apparently use very little of X11 outside QtGui. I haven't changed the Windows-specific LIBS paths, because I don't know how Windows behaves. Windows has DLLs, but it links to static "import" libraries. So is it static linking or dynamic linking? Reviewed-By: Marius Storm-Olsen
1 parent 5bc8c27 commit 83940f2

File tree

34 files changed

+68
-52
lines changed

34 files changed

+68
-52
lines changed
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,2 @@
11
# clock_gettime() is implemented in librt on these systems
2-
linux-*|hpux-*|solaris-*:LIBS *= -lrt
2+
linux-*|hpux-*|solaris-*:LIBS_PRIVATE *= -lrt

demos/macmainwindow/macmainwindow.pro

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ build_all:!build_pass {
1212
CONFIG += release
1313
}
1414

15-
LIBS += -framework Cocoa
15+
LIBS += -framework Cocoa -framework Carbon
1616

1717
# install
1818
mac {

mkspecs/features/unix/dylib.prf

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
LIBS += $$QMAKE_LIBS_DYNLOAD
1+

mkspecs/features/unix/opengl.prf

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
11
INCLUDEPATH += $$QMAKE_INCDIR_OPENGL
22
!isEmpty(QMAKE_LIBDIR_OPENGL):QMAKE_LIBDIR += $$QMAKE_LIBDIR_OPENGL
3-
target_qt:LIBS += $$QMAKE_LIBS_OPENGL_QT
3+
target_qt:LIBS_PRIVATE += $$QMAKE_LIBS_OPENGL_QT
44
else:LIBS += $$QMAKE_LIBS_OPENGL

mkspecs/features/unix/x11lib.prf

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,2 @@
11
!isEmpty(QMAKE_LIBDIR_X11):QMAKE_LIBDIR += $$QMAKE_LIBDIR_X11
2-
LIBS += $$QMAKE_LIBS_X11
2+
LIBS_PRIVATE += $$QMAKE_LIBS_X11

mkspecs/features/unix/x11sm.prf

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,2 @@
11
!isEmpty(QMAKE_LIBDIR_X11):QMAKE_LIBDIR += $$QMAKE_LIBDIR_X11
2-
LIBS += $$QMAKE_LIBS_X11SM
2+
LIBS_PRIVATE += $$QMAKE_LIBS_X11SM

src/3rdparty/webkit/WebCore/WebCore.pro

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2165,6 +2165,7 @@ SOURCES += \
21652165
SOURCES += \
21662166
platform/text/cf/StringCF.cpp \
21672167
platform/text/cf/StringImplCF.cpp
2168+
LIBS_PRIVATE += -framework Carbon -framework AppKit
21682169
}
21692170

21702171
win32-* {

src/corelib/codecs/codecs.pri

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@ unix {
2929
SOURCES += codecs/qiconvcodec.cpp
3030

3131
DEFINES += GNU_LIBICONV
32-
!mac:LIBS *= -liconv
32+
!mac:LIBS_PRIVATE *= -liconv
3333
} else {
3434
# no iconv, so we put all plugins in the library
3535
HEADERS += \

src/corelib/corelib.pro

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ include(codecs/codecs.pri)
1818
include(statemachine/statemachine.pri)
1919
include(xml/xml.pri)
2020

21-
mac|darwin:LIBS += -framework ApplicationServices
21+
mac|darwin:LIBS_PRIVATE += -framework ApplicationServices
2222

2323
mac:lib_bundle:DEFINES += QT_NO_DEBUG_PLUGIN_CHECK
2424
win32:DEFINES-=QT_NO_CAST_TO_ASCII

src/corelib/kernel/kernel.pri

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -103,7 +103,7 @@ unix {
103103
HEADERS += \
104104
kernel/qeventdispatcher_glib_p.h
105105
QMAKE_CXXFLAGS += $$QT_CFLAGS_GLIB
106-
LIBS +=$$QT_LIBS_GLIB
106+
LIBS_PRIVATE +=$$QT_LIBS_GLIB
107107
}
108108
SOURCES += \
109109
kernel/qeventdispatcher_unix.cpp

src/corelib/plugin/plugin.pri

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,3 +22,5 @@ win32 {
2222
unix {
2323
SOURCES += plugin/qlibrary_unix.cpp
2424
}
25+
26+
LIBS_PRIVATE += $$QMAKE_LIBS_DYNLOAD

src/corelib/tools/tools.pri

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -91,7 +91,7 @@ contains(QT_CONFIG, zlib) {
9191
../3rdparty/zlib/uncompr.c \
9292
../3rdparty/zlib/zutil.c
9393
} else:!contains(QT_CONFIG, no-zlib) {
94-
unix:LIBS += -lz
94+
unix:LIBS_PRIVATE += -lz
9595
# win32:LIBS += libz.lib
9696
}
9797

@@ -109,4 +109,5 @@ SOURCES += ../3rdparty/harfbuzz/src/harfbuzz-buffer.c \
109109
tools/qharfbuzz.cpp
110110
HEADERS += tools/qharfbuzz_p.h
111111

112-
!macx-icc:!vxworks:unix:LIBS += -lm
112+
# Note: libm should be present by default becaue this is C++
113+
!macx-icc:!vxworks:unix:LIBS_PRIVATE += -lm

src/dbus/dbus.pro

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -6,8 +6,8 @@ DEFINES += QDBUS_MAKEDLL DBUS_API_SUBJECT_TO_CHANGE
66
QMAKE_CXXFLAGS += $$QT_CFLAGS_DBUS
77

88
contains(QT_CONFIG, dbus-linked) {
9-
LIBS += $$QT_LIBS_DBUS
10-
DEFINES += QT_LINKED_LIBDBUS
9+
LIBS_PRIVATE += $$QT_LIBS_DBUS
10+
DEFINES += QT_LINKED_LIBDBUS
1111
}
1212

1313
#INCLUDEPATH += .
@@ -18,9 +18,9 @@ unix {
1818
}
1919

2020
win32 {
21-
LIBS += -lws2_32 -ladvapi32 -lnetapi32 -luser32
22-
CONFIG(debug, debug|release):LIBS += -ldbus-1d
23-
else:LIBS += -ldbus-1
21+
LIBS_PRIVATE += -lws2_32 -ladvapi32 -lnetapi32 -luser32
22+
CONFIG(debug, debug|release):LIBS_PRIVATE += -ldbus-1d
23+
else:LIBS_PRIVATE += -ldbus-1
2424
}
2525

2626
include(../qbase.pri)

src/gui/egl/egl.pri

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,4 +25,4 @@ for(p, QMAKE_LIBDIR_EGL) {
2525
}
2626

2727
!isEmpty(QMAKE_INCDIR_EGL): INCLUDEPATH += $$QMAKE_INCDIR_EGL
28-
!isEmpty(QMAKE_LIBS_EGL): LIBS += $$QMAKE_LIBS_EGL
28+
!isEmpty(QMAKE_LIBS_EGL): LIBS_PRIVATE += $$QMAKE_LIBS_EGL

src/gui/embedded/embedded.pri

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -189,7 +189,7 @@ embedded {
189189
}
190190

191191
contains( mouse-drivers, tslib ) {
192-
LIBS += -lts
192+
LIBS_PRIVATE += -lts
193193
HEADERS +=embedded/qmousetslib_qws.h
194194
SOURCES +=embedded/qmousetslib_qws.cpp
195195
}

src/gui/image/image.pri

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -89,7 +89,7 @@ SOURCES += \
8989
SOURCES += image/qpnghandler.cpp
9090

9191
contains(QT_CONFIG, system-png) {
92-
unix:LIBS += -lpng
92+
unix:LIBS_PRIVATE += -lpng
9393
win32:LIBS += libpng.lib
9494
} else {
9595
!isEqual(QT_ARCH, i386):!isEqual(QT_ARCH, x86_64):DEFINES += PNG_NO_ASSEMBLER_CODE

src/gui/kernel/kernel.pri

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -124,7 +124,7 @@ unix:x11 {
124124
HEADERS += \
125125
kernel/qguieventdispatcher_glib_p.h
126126
QMAKE_CXXFLAGS += $$QT_CFLAGS_GLIB
127-
LIBS +=$$QT_LIBS_GLIB
127+
LIBS_PRIVATE +=$$QT_LIBS_GLIB
128128
}
129129
SOURCES += \
130130
kernel/qeventdispatcher_x11.cpp
@@ -205,7 +205,7 @@ embedded {
205205
QMAKE_BUNDLE_DATA += MENU_NIB
206206
RESOURCES += mac/macresources.qrc
207207

208-
LIBS += -framework AppKit
208+
LIBS_PRIVATE += -framework AppKit
209209
}
210210

211211
wince*: {

src/gui/kernel/mac.pri

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
11
!x11:!embedded:mac {
2-
LIBS += -framework Carbon -lz
2+
LIBS_PRIVATE += -framework Carbon -lz
33
*-mwerks:INCLUDEPATH += compat
44
}

src/gui/kernel/x11.pri

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
11
x11 {
2-
contains(QT_CONFIG, nas): LIBS += -laudio -lXt
2+
contains(QT_CONFIG, nas): LIBS_PRIVATE += -laudio -lXt
33
}
44

src/gui/painting/painting.pri

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -352,4 +352,9 @@ embedded {
352352
SOURCES += painting/qwindowsurface_qws.cpp
353353
}
354354

355-
355+
contains(QT_CONFIG, zlib) {
356+
INCLUDEPATH += ../3rdparty/zlib
357+
} else:!contains(QT_CONFIG, no-zlib) {
358+
unix:LIBS_PRIVATE += -lz
359+
# win32:LIBS += libz.lib
360+
}

src/gui/styles/styles.pri

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,7 @@ x11|embedded|!macx-*:styles -= mac
3737

3838
x11{
3939
QMAKE_CXXFLAGS += $$QT_CFLAGS_QGTKSTYLE
40-
LIBS += $$QT_LIBS_QGTKSTYLE
40+
LIBS_PRIVATE += $$QT_LIBS_QGTKSTYLE
4141
styles += gtk
4242
}
4343

src/gui/text/text.pri

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -164,7 +164,7 @@ contains(QT_CONFIG, freetype) {
164164
embedded:CONFIG += opentype
165165
# pull in the proper freetype2 include directory
166166
include($$QT_SOURCE_TREE/config.tests/unix/freetype/freetype.pri)
167-
LIBS += -lfreetype
167+
LIBS_PRIVATE += -lfreetype
168168
} else {
169169
DEFINES *= QT_NO_FREETYPE
170170
}

src/multimedia/audio/audio.pri

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@ mac {
3131
$$PWD/qaudioinput_mac_p.cpp \
3232
$$PWD/qaudio_mac.cpp
3333

34-
LIBS += -framework CoreAudio -framework AudioUnit -framework AudioToolbox
34+
LIBS += -framework ApplicationServices -framework CoreAudio -framework AudioUnit -framework AudioToolbox
3535

3636
} else:win32 {
3737

@@ -50,7 +50,7 @@ mac {
5050
SOURCES += $$PWD/qaudiodeviceinfo_alsa_p.cpp \
5151
$$PWD/qaudiooutput_alsa_p.cpp \
5252
$$PWD/qaudioinput_alsa_p.cpp
53-
LIBS += -lasound
53+
LIBS_PRIVATE += -lasound
5454
}
5555
}
5656
}

src/network/access/access.pri

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -59,6 +59,6 @@ SOURCES += access/qftp.cpp \
5959
contains(QT_CONFIG, zlib) {
6060
INCLUDEPATH += ../3rdparty/zlib
6161
} else:!contains(QT_CONFIG, no-zlib) {
62-
unix:LIBS += -lz
62+
unix:LIBS_PRIVATE += -lz
6363
# win32:LIBS += libz.lib
6464
}

src/network/kernel/kernel.pri

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@ SOURCES += kernel/qauthenticator.cpp \
2323
unix:SOURCES += kernel/qhostinfo_unix.cpp kernel/qnetworkinterface_unix.cpp
2424
win32:SOURCES += kernel/qhostinfo_win.cpp kernel/qnetworkinterface_win.cpp
2525

26-
mac:LIBS+= -framework SystemConfiguration
26+
mac:LIBS_PRIVATE += -framework SystemConfiguration -framework CoreFoundation
2727
mac:SOURCES += kernel/qnetworkproxy_mac.cpp
2828
else:win32:SOURCES += kernel/qnetworkproxy_win.cpp
2929
else:SOURCES += kernel/qnetworkproxy_generic.cpp

src/network/ssl/ssl.pri

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -29,5 +29,5 @@ contains(QT_CONFIG, openssl) | contains(QT_CONFIG, openssl-linked) {
2929
RESOURCES += network.qrc
3030

3131
# Add optional SSL libs
32-
LIBS += $$OPENSSL_LIBS
32+
LIBS_PRIVATE += $$OPENSSL_LIBS
3333
}

src/opengl/opengl.pro

Lines changed: 12 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -73,16 +73,26 @@ x11 {
7373
}
7474

7575
contains(QT_CONFIG, fontconfig) {
76+
contains(QT_CONFIG, system-freetype) {
77+
embedded:CONFIG += opentype
78+
# pull in the proper freetype2 include directory
7679
include($$QT_SOURCE_TREE/config.tests/unix/freetype/freetype.pri)
80+
LIBS_PRIVATE += -lfreetype
81+
} else {
82+
### Note: how does this compile with a non-system freetype?
83+
# This probably doesn't compile
84+
}
7785
} else {
7886
DEFINES *= QT_NO_FREETYPE
7987
}
88+
89+
LIBS_PRIVATE += $$QMAKE_LIBS_DYNLOAD
8090
}
8191

8292
mac {
8393
OBJECTIVE_SOURCES += qgl_mac.mm \
8494
qglpixelbuffer_mac.mm
85-
LIBS += -framework AppKit
95+
LIBS_PRIVATE += -framework AppKit -framework Carbon
8696
}
8797
win32:!wince*: {
8898
SOURCES += qgl_win.cpp \
@@ -131,5 +141,5 @@ wince*: {
131141
}
132142

133143
} else {
134-
QMAKE_LIBS += $$QMAKE_LIBS_OPENGL
144+
LIBS_PRIVATE += $$QMAKE_LIBS_OPENGL
135145
}

src/openvg/openvg.pro

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -36,19 +36,19 @@ include(../qbase.pri)
3636
unix:QMAKE_PKGCONFIG_REQUIRES = QtCore QtGui
3737

3838
!isEmpty(QMAKE_INCDIR_OPENVG): INCLUDEPATH += $$QMAKE_INCDIR_OPENVG
39-
!isEmpty(QMAKE_LIBDIR_OPENVG): LIBS += -L$$QMAKE_LIBDIR_OPENVG
40-
!isEmpty(QMAKE_LIBS_OPENVG): LIBS += $$QMAKE_LIBS_OPENVG
39+
!isEmpty(QMAKE_LIBDIR_OPENVG): LIBS_PRIVATE += -L$$QMAKE_LIBDIR_OPENVG
40+
!isEmpty(QMAKE_LIBS_OPENVG): LIBS_PRIVATE += $$QMAKE_LIBS_OPENVG
4141

4242
contains(QT_CONFIG, egl) {
4343
!isEmpty(QMAKE_INCDIR_EGL): INCLUDEPATH += $$QMAKE_INCDIR_EGL
44-
!isEmpty(QMAKE_LIBDIR_EGL): LIBS += -L$$QMAKE_LIBDIR_EGL
45-
!isEmpty(QMAKE_LIBS_EGL): LIBS += $$QMAKE_LIBS_EGL
44+
!isEmpty(QMAKE_LIBDIR_EGL): LIBS_PRIVATE += -L$$QMAKE_LIBDIR_EGL
45+
!isEmpty(QMAKE_LIBS_EGL): LIBS_PRIVATE += $$QMAKE_LIBS_EGL
4646
}
4747

4848
contains(QT_CONFIG, openvg_on_opengl) {
4949
!isEmpty(QMAKE_INCDIR_OPENGL): INCLUDEPATH += $$QMAKE_INCDIR_OPENGL
50-
!isEmpty(QMAKE_LIBDIR_OPENGL): LIBS += -L$$QMAKE_LIBDIR_OPENGL
51-
!isEmpty(QMAKE_LIBS_OPENGL): LIBS += $$QMAKE_LIBS_OPENGL
50+
!isEmpty(QMAKE_LIBDIR_OPENGL): LIBS_PRIVATE += -L$$QMAKE_LIBDIR_OPENGL
51+
!isEmpty(QMAKE_LIBS_OPENGL): LIBS_PRIVATE += $$QMAKE_LIBS_OPENGL
5252
}
5353

5454
INCLUDEPATH += ../3rdparty/harfbuzz/src

src/plugins/phonon/qt7/qt7.pro

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ contains(QMAKE_MAC_XARCH, no) {
1212
LIBS += -Xarch_i386 -framework QuickTime -Xarch_ppc -framework QuickTime
1313
}
1414

15-
LIBS += -framework AudioUnit \
15+
LIBS += -framework AppKit -framework AudioUnit \
1616
-framework AudioToolbox -framework CoreAudio \
1717
-framework QuartzCore -framework QTKit
1818

src/qt3support/network/network.pri

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,5 +26,5 @@ SOURCES += network/q3dns.cpp \
2626

2727
win32:SOURCES += network/q3socketdevice_win.cpp
2828
unix:SOURCES += network/q3socketdevice_unix.cpp
29-
mac:LIBS += -lresolv
29+
mac:LIBS_PRIVATE += -lresolv
3030

src/qt3support/qt3support.pro

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@ unix {
2525
QMAKE_PKGCONFIG_CFLAGS += -DQT3_SUPPORT
2626
QMAKE_PKGCONFIG_REQUIRES = QtCore QtGui QtNetwork QtSql
2727
}
28-
mac:LIBS += -framework Carbon
28+
mac:LIBS_PRIVATE += -framework Carbon
2929

3030
QMAKE_LIBS += $$QMAKE_LIBS_COMPAT $$QMAKE_LIBS_NETWORK
3131
DEFINES -= QT3_SUPPORT_WARNINGS

src/svg/svg.pro

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -44,5 +44,5 @@ INCLUDEPATH += ../3rdparty/harfbuzz/src
4444
contains(QT_CONFIG, zlib) {
4545
INCLUDEPATH += ../3rdparty/zlib
4646
} else:!contains(QT_CONFIG, no-zlib) {
47-
unix:LIBS += -lz
47+
unix:LIBS_PRIVATE += -lz
4848
}

src/testlib/testlib.pro

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -57,10 +57,9 @@ wince*::LIBS += libcmt.lib \
5757
commctrl.lib \
5858
coredll.lib \
5959
winsock.lib
60-
mac:LIBS += -framework \
61-
IOKit \
62-
-framework \
63-
Security
60+
mac:LIBS += -framework IOKit \
61+
-framework ApplicationServices \
62+
-framework Security
6463
include(../qbase.pri)
6564
QMAKE_TARGET_PRODUCT = QTestLib
6665
QMAKE_TARGET_DESCRIPTION = Qt \

tools/assistant/lib/lib.pro

Lines changed: 3 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -18,14 +18,12 @@ if(!debug_and_release|build_pass):CONFIG(debug, debug|release) {
1818
mac:qclucene = $${qclucene}_debug
1919
win32:qclucene = $${qclucene}d
2020
}
21-
linux-lsb-g++:LIBS += --lsb-shared-libs=$$qclucene
22-
unix:QMAKE_PKGCONFIG_REQUIRES += QtNetwork \
23-
QtSql \
24-
QtXml
25-
LIBS += -l$$qclucene
21+
linux-lsb-g++:LIBS_PRIVATE += --lsb-shared-libs=$$qclucene
2622
unix:QMAKE_PKGCONFIG_REQUIRES += QtNetwork \
2723
QtSql \
2824
QtXml
25+
LIBS_PRIVATE += -l$$qclucene
26+
2927
RESOURCES += helpsystem.qrc
3028
SOURCES += qhelpenginecore.cpp \
3129
qhelpengine.cpp \

0 commit comments

Comments
 (0)