/devel/p5-Inline-ASM/

ome' title='freebsd-ports-gnome Git repository'/>
aboutsummaryrefslogtreecommitdiffstats
path: root/Mk/Uses/qmake.mk
Commit message (Collapse)AuthorAgeFilesLines
* Adjust TEST_WRKSRC for USES=[cq]make:outsourcejbeich2016-10-181-0/+1
| | | | | Approved by: rakuco Differential Revision: https://reviews.freebsd.org/D8274
* Mk/Uses/qmake.mk: revert latest changepi2016-05-291-2/+1
| | | | | PR: 209326 Requested by: mat
* Mk/Uses/qmake.mk: add empty do-configure targetpi2016-05-291-1/+2
| | | | | PR: 209326 Submitted by: rakuco, T.C.Berner <tcberner@gmail.com>, Ralf Nolden <nolden@kde.org>
* Make all the targets in USES use the _USES_* helpers.mat2016-04-221-2/+1
| | | | | | | | | It is left as an exercise to the reader to reorder some of those targets to fix some small problems, and to add a comment about why each target is ran when it is ran. Sponsored by: Absolight Differential Revision: https://reviews.freebsd.org/D5717
* Make sure ${WRKSRC}/lib is passed before /usr/local/lib when linking.rakuco2015-12-291-13/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This is another shot at fixing the linkage problems that have plagued our users particularly when upgrading from Qt 5.x to 5.(x+1). Quick recap: in Qt5, qmake will by default pass QMAKE_LIBDIR to the linker before other directories such as ${WRKSRC}/lib, which is where the port's libraries are built. When a user is upgrading Qt, we can end up with the following linker line: c++ -o SomeBinary -lfoo1 -L/usr/local/lib -L${WRKSRC}/lib -lfoo2 -lfoo3 If libfoo2.so is being built by the port and an older version is currently installed on the system, /usr/local/lib/libfoo2.so will be picked up instead of the newly-built ${WRKSRC}/lib/libfoo2.so. At best things just work, at worst SomeBinary needs some new symbol that is not present in the old libfoo2.so and linking fails. Case in point: bug 198720. The previous approach, adopted when fixing bug 194088, was to stop setting QMAKE_{INC,LIB}DIR in the FreeBSD mkspecs and set the CPATH and LIBRARY_PATH environment variables in Uses/qmake.mk. This way we just did not pass -L/usr/local/lib to the linker at all and things mostly worked. However, people using Qt to build their own software without the ports tree were out of luck, as they would then need need to deal with passing /usr/local/{include,lib} to the compiler/linker themselves (bug 195105). Not only that, but if a dependency mentioned /usr/local/lib we would still have problems anyway (in bug 198720, the GStreamer pkg-config files contain -L/usr/local/lib, for example). We now solve the issue by setting the QMAKE_LIBDIR_FLAGS variable in .qmake.cache to ${WRKSRC}/lib instead. qmake appends the value of QMAKE_LIBDIR to QMAKE_LIBDIR_FLAGS, so we are always sure -L${WRKSRC}/lib will come before -L/usr/local/lib in the linker options. Moreover, qmake is smart enough to automatically call sed(1) and remove references to ${WRKSRC}/lib from .prl and .pc files when installing them. PR: 194088 PR: 195105 PR: 198720 MFH: 2015Q4
* Update the Qt4 ports to 4.8.7.rakuco2015-09-161-0/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | According to upstream, this is the last planned Qt4 release. A list of changes since 4.8.6 can be found here: <http://download.qt.io/official_releases/qt/4.8/4.8.7/changes-4.8.7> Porting notes and changes: - Remove several patches that have been upstreamed. - Make Uses/qmake.mk pass the contents of LIBS to the qmake environment. [1] - Repurpose devel/qt4/files/extrapatch-src-corelib-global-qglobal.h now the original patch is part of the release (curiously enough, the original patch was never actually used, as the ?= assignment in r362837 after r362770 was never possible). This works around the way compiler support for C++11 features is detected in Qt 4.8.7: while it originally only uses the compiler to determine if something is supported or not, the initializer lists feature also depends on the C++ standard library being used. It's a problem in FreeBSD 9.x, where USES=compiler:c++0x or USES=compiler:c++11-lang means we will use clang to build a port but use libstdc++ from base (GCC 4.2). The latter obviously does not support initializer lists, and the build fails because Qt tries to include headers that do not exist (<initializer_list>). Since detecting libstdc++'s version is not trivial (we need to include a non-lightweight header like cstdio and then check for __GLIBCXX__), we just enable Q_COMPILER_INITIALIZER_LISTS support only when libc++ is used (there should be no reason for someone to be using clang with GCC 4.8's libstdc++, for example). x11/kdelibs4's FindQt4.cmake had to include a backported change from the upstream FindQt4.cmake in CMake itself to use a C++ compiler to detect flags like Q_WS_X11, otherwise the inclusion of <ciso646> in qglobal.h makes the build fail. This patch contains changes by me, makc@ and alonso@. PR: 202552 [1] PR: 202808 [exp-run] Submitted by: pawel@ [1]
* Update Qt5 ports to 5.3.2.rakuco2014-11-051-0/+13
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Proudly presented by the KDE on FreeBSD team, with several guest stars. This update took way longer than initially expected due to us previously accumulating assumptions and changes to Qt's build system that finally bit us back with the 5.3 release series, so we had to do a fair amount of cleanup. New ports: - comms/qt5-serialport: Qt functions to access serial ports, originally based on work by Fernando Apesteguia. [1] - devel/qt5-qdoc: Qt documentation generator, the Qt5 equivalent of devel/qt4-qdoc3. Originally worked on by Tobias Berner. It had already been half-split from devel/qt5-buildtools, we just needed to finish the work. Dead ports: - devel/qt5-qmldevtools: Merged into lang/qt5-qml. Minor changes: - devel/qt5: Add x11/qt5-x11extras and the new ports to the dependency list. - graphics/qt5-imageformats: The port now supports the JPEG2000, WEBP, Direct Draw Surface and ICNS formats. - multimedia/qt5-multimedia: The ALSA and PULSEAUDIO options are now mutually exclusive due to changes introduced in Qt 5.3.0 (the ALSA code is now a proper plugin that is only built if PulseAudio is not used). - x11/qt5-x11extras: Add USE_LDCONFIG since the port installs a shared library. The big changes: - bsd.qt.mk: Set QMAKESPEC instead of QMAKEPATH. [3] QMAKEPATH does much more than we want now that we call qmake from the top of ${WRKSRC}. qmake uses QMAKEPATH when evaluating the QMAKE_MKSPECS property, which is in turn used by qt_config.pri to load the .pri files in mkspecs/modules. In practice, this means that if people have an older Qt installation those files will be used and QT_CONFIG will have values such as "gui" even if one is building a port like textproc/qt5-xml, which passes -no-gui to the configure script. Consequently, unintended code paths may be enabled or the configuration step can just fail if the .pro files expect values that are not present in the system-wide, older .pri files. We avoid all those problems if we use QMAKESPEC, as qmake does not take its value into account when evaluating the QMAKE_MKSPECS property and will only parse the files in the mkspec's directory (mkspecs/freebsd-clang, for example, instead of all the files in mkspecs). - Stop explicitly passing ${LOCALBASE} to the compiler. [3] qmake's behavior has changed in Qt 5, and the paths set in QMAKE_INCDIR and QMAKE_LIBDIR in the mkspecs are passed before any others, such as the ones in the build directory themselves. In practice, this means that we end up with linker calls like this: c++ -o libfoo.so foo.o bar.o -L/usr/local/lib -L/wrkdir/build/lib -lQt5Gui -lQt5Core So if one already has Qt installed in the system, the older, already present version of the libraries in /usr/local/lib will be used instead of the newly-built ones in /wrkdir/build/lib. QTBUG-40825 discusses this behavior upstream, but there has been no agreement on a solution yet. For now, the solution adopted is to make the compiler and the linker aware of those paths but only try them last after all others, and this is achieved by setting the CPATH and LIBRARY_PATH environment variables when qmake is being used. In addition to setting them in CONFIGURE_ENV and MAKE_ENV, we also need to stop changing QMAKE_INCDIR and QMAKE_LIBDIR as well as filter those paths from the pkg-config calls qtbase's configure script makes. - Call qmake from the root of the ${WRKSRC}. In Qt 5.3, Qt's build infrastructure has undergone some changes that make our previous approach of calling qmake from the directories we want to build stop working. Things would break even more in Qt 5.4, in which qtbase's configure script does not accept the -process, -fully-process and -dont-process arguments anymore (it always behaves as if -process had been used). Bite the bullet and start calling qmake from ${WRKSRC}. The largest part of this change involves changing lines in Makefiles from WRKSRC_SUBDIR= foo/bar to BUILD_WRKSRC= ${WRKSRC}/foo/bar INSTALL_WRKSRC= ${WRKSRC}/foo/bar as well as adding patches to .pro files to avoid entering other subdirectories and removing post-configure targets that are not necessary anymore. Since qmake needs to be called from the top of ${WRKSRC} anyway, we can also simplify the configuration process for the qtbase ports a little. Looking at r10019 it is not clear why we started calling qmake in the pre-configure target in addition to the post-configure one (while also skipping it in do-configure), but we can now drop this call since letting configure behave as if -process had been passed means it will call qmake on its own and overwrite the files generated by the pre-configure call. We still need to call qmake in post-configure though, as the configure script does not pass -recursive when calling qmake and we need to be able to call make from any subdirectory when building. PR: 194762 [1] PR: 194566 # exp-run with base GCC and clang PR: 194088 [3]
* Change the way USES is handled:tijl2014-09-291-10/+7
| | | | | | | | | | | | | | | | | | | | | | | - Loop over USES twice, once to define all *_ARGS variables and once to include Uses/*.mk. This allows all Uses/*.mk to examine arguments given to other USES entries. - Always define *_ARGS (possibly empty) and replace commas with spaces. Similar for _USES_POST. Adjust all Uses/*.mk: - defined(u_ARGS) becomes !empty(u_ARGS) - Eliminate helper variables like _*_ARGS=${*_ARGS:C/,/ /g} - Some Uses/*.mk used ":" as argument separator instead of ",", but no port used this form - Uses/cran.mk: remove unused variable VALID_ARGS and USES+=fortran which has no effect - Uses/twisted.mk: simplify handling of the case where neither "build" nor "run" arguments have been specified PR: 193931 Exp-run by: antoine Approved by: portmgr (antoine)
* Remove support for NO_STAGEbapt2014-09-011-1/+1
| | | | | | | | Mark all current non staged ports as BROKEN Reviewed by: antoine Exp-run: antoine Differential Revision: https://reviews.freebsd.org/D693
* Reset default qmake flags so that they don't taint ourpawel2014-04-101-0/+4
| | | | | | | | globally set CFLAGS, CXXFLAGS PR: ports/188287 Submitted by: myself Approved by: kde (makc)
* Move MAINTAINER lines to the end of the initial comment block andgerald2014-03-151-2/+1
| | | | | | make things a bit more consistent. Approved by: portmgr (bapt)
* In preparation for Qt 5 ports:makc2014-01-071-20/+70
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Mk/Uses/qmake.mk: - Add support for out-of-source builds - Add support for Qt 5 ports - Respect WITH_DEBUG Mk/bsd.qt.mk: - Massive rework for Qt 5 ports - Remove '-phonon' from global configure args, thus allow qt4-designer and qt4-qtconfig to be built without Phonon support [1] devel/qmake4: - Improve mkspecs for gcc (mainly sync with linux version) and clang devel/qt4-corelib: - Convert to USES=iconv - Remove ancient patch devel/qt4-designer: - Remove reference to WRKSRC from installed pkgconfig files [2] - Don't build Qt Designer plugin for Phonon from outdated Qt sources. Separate port for plugin will be committed later devel/qt4-assistant-adp, devel/qt4-libqtassistantclient: - Convert to USES=qmake Clean up Qt4 ports: - Update comments - Update description; use common description - Consistently use QT_INCDIR, QT_LIBDIR, etc. - Use options helpers - Convert to new LIB_DEPENDS syntax - Update DESKTOP_ENTRIES to avoid conflicts with Qt 5 ports - Rename/move several ports for unification with Qt 5 ports PR: ports/184620 [1] Reported by: Kevin Zheng <kevinz5000@gmail.com> PR: ports/181141 [2] Reported by: thierry PR: ports/185101 Exp-run by: bdrewery This is mostly solely avilla's work in area51, kudos to him! And a couple commits from myself, so you know who's collecting pointyhats :)
* In preparation for Qt 5 ports:makc2013-11-211-14/+10
| | | | | | | | | | bsd.qt.mk: - Deprecate QMAKEFLAGS, QMAKE_ARGS should be used instead - define LRELEASE/LUPDATE commands for general use Uses/qmake.mk: - USES=qmake now implies build dependency on qmake - Deprecate QMAKE_PRO (QMAKE_SOURCE_PATH should be used if required) - move QMAKE_ARGS definition to bsd.qt.mk
* Pass CONFIGURE_ENV to qmakemakc2013-10-091-0/+1
|