# $NetBSD: Makefile.common,v 1.38 2023/11/11 10:34:33 adam Exp $ # used by audio/qt6-qtspeech/Makefile # used by comms/qt6-qtconnectivity/Makefile # used by databases/qt6-odbc/Makefile # used by databases/qt6-psql/Makefile # used by devel/qt6-qt5compat/Makefile # used by devel/qt6-qttools/Makefile # used by devel/qt6-qtwayland/Makefile # used by geography/qt6-qtlocation/Makefile # used by geography/qt6-qtpositioning/Makefile # used by graphics/qt6-qt3d/Makefile # used by graphics/qt6-qtcharts/Makefile # used by graphics/qt6-qtdatavis3d/Makefile # used by graphics/qt6-qtimageformats/Makefile # used by graphics/qt6-qtlottie/Makefile # used by graphics/qt6-qtquick3d/Makefile # used by graphics/qt6-qtquicktimeline/Makefile # used by graphics/qt6-qtshadertools/Makefile # used by graphics/qt6-qtsvg/Makefile # used by inputmethod/qt6-qtvirtualkeyboard/Makefile # used by lang/qt6-qtdeclarative/Makefile # used by lang/qt6-qtlanguageserver/Makefile # used by lang/qt6-qtscxml/Makefile # used by misc/qt6-qtsensors/Makefile # used by multimedia/qt6-qtmultimedia/Makefile # used by net/qt6-qtgrpc/Makefile # used by net/qt6-qtremoteobjects/Makefile # used by net/qt6-qtwebsockets/Makefile # used by security/qt6-qtnetworkauth/Makefile # used by www/qt6-qthttpserver/Makefile # used by www/qt6-qtwebchannel/Makefile # used by x11/qt6-qtbase/Makefile # used by x11/qt6-qtserialport/Makefile .include "../../meta-pkgs/qt6/Makefile.common" .include "../../mk/dlopen.buildlink3.mk" BUILDLINK_TRANSFORM+= opt:-ldl:${BUILDLINK_LDADD.dl:Q} USE_LANGUAGES= c c++ USE_TOOLS+= cmake gmake perl:build pkg-config #TOOL_DEPENDS+= ninja-build-[0-9]*:../../devel/ninja-build # https://doc.qt.io/qt-6/supported-platforms.html GCC_REQD+= 9 # required for -msse2 .if ${MACHINE_ARCH} == "i386" CFLAGS+= -mstackrealign .endif # Avoid failures to due 'register' usage in X11 headers. CXXFLAGS+= -Wno-register # wcstof(3) etc. is used in C++ code. CFLAGS.NetBSD+= -D_NETBSD_SOURCE # ld: undefined symbol qt_version_tag CFLAGS.SunOS+= -DQT_NO_VERSION_TAGGING # include/openssl/e_os2.h:283:25: error: '_Noreturn' does not name a type CXXFLAGS.SunOS+= -D_Noreturn="" # for GL_GLEXT_LEGACY with GL/gl.h error, GL_ARB_shader_objects is not defined. BUILDLINK_TRANSFORM+= rm:-Wundef MAKE_ENV+= QTPREFIX=${QTPREFIX:Q} # pkgsrc does not set rpath during build # but qdbuscpp2xml and qdbuscpp2xml are # executed during build, # some libs also link to libs in lib so # this is needed by some ld:s to not # cause linking errors. .if ${OPSYS} == "Darwin" CMAKE_INSTALL_NAME_DIR= ${QTPREFIX}/lib MAKE_ENV+= DYLD_LIBRARY_PATH=${WRKSRC}/lib .else MAKE_ENV+= LD_LIBRARY_PATH=${WRKSRC}/lib .endif # avoid creating a .qt directory in the users home directory SCRIPTS_ENV+= HOME=${WRKDIR} .if "${PKGPATH}" != "x11/qt6-qtbase" CMAKE_INSTALL_PREFIX= ${QTPREFIX} .include "../../devel/cmake/configure-settings.mk" CONFIGURE_ARGS+= -- ${CMAKE_CONFIGURE_ARGS} QTCONFDIR?= . do-configure: cd ${WRKSRC} && ${SETENV} ${CONFIGURE_ENV} ${QTPREFIX}/bin/qt-configure-module ${QTCONFDIR} ${CONFIGURE_ARGS} .endif #do-build: # cd ${WRKSRC}/${QTCONFDIR} && ${SETENV} ${MAKE_ENV} ninja ${BUILD_TARGET} #do-install: # cd ${WRKSRC}/${QTCONFDIR} && ${SETENV} ${INSTALL_ENV} ninja ${INSTALL_TARGET} INSTALLATION_DIRS+= lib/pkgconfig PKGCONFIG_OVERRIDE_STAGE= post-build .PHONY: pkgconfig-link post-install: pkgconfig-link pkgconfig-link: ${RUN} if ${TEST} -d ${DESTDIR}${QTPREFIX}/lib/pkgconfig; then \ ${ECHO} -- Linking pkg-config files to pkgconfig dir in prefix; \ ${FIND} ${DESTDIR}${QTPREFIX}/lib/pkgconfig -name "*.pc" -print | \ while read pcpath; do \ pcfile=`basename $${pcpath}`; \ cd ${DESTDIR}${PREFIX}/lib/pkgconfig && \ ${LN} -f -s ${QTPREFIX}/lib/pkgconfig/$${pcfile} $${pcfile}; \ done \ fi