1PORTNAME= lazarus 2DISTVERSION= 3.4.0 3PKGNAMESUFFIX?= -gtk2 4PORTREVISION?= 0 5CATEGORIES= editors devel 6DIST_SUBDIR= freepascal 7 8MAINTAINER?= ports@MidnightBSD.org 9COMMENT?= Portable Delphi-like IDE for the FreePascal compiler (GTK2) 10WWW= https://www.lazarus-ide.org/ 11 12CONFLICTS?= lazarus-gtk2-devel lazarus-qt5 lazarus-qt5-devel lazarus-qt6 \ 13 lazarus-qt6-devel 14 15BUILD_DEPENDS?= ${LOCALBASE}/bin/as:devel/binutils 16RUN_DEPENDS?= ${LOCALBASE}/bin/as:devel/binutils \ 17 gmake:devel/gmake \ 18 ${LOCALBASE}/share/fpc-source-${FPC_DEFAULT}/Makefile.fpc:lang/fpc${FPC_DEVELSUFFIX}-source 19 20ONLY_FOR_ARCHS= i386 amd64 21 22USE_GITLAB= yes 23GL_ACCOUNT= freepascal.org/lazarus 24GL_PROJECT= ${PORTNAME} 25GL_COMMIT= 34295aa4240319e5179f0ceb7ed86de5104c152a 26 27USES= desktop-file-utils fpc:run gettext gmake iconv shared-mime-info xorg 28USE_XORG= x11 29OPT?= "-Sgic " 30 31MAKE_ENV= OPT=${OPT} 32PLIST= ${WRKDIR}/pkg-plist 33#WRKSRC?= ${WRKDIR}/${PORTNAME} 34DATADIR?= ${PREFIX}/share/${PORTNAME}-${LAZARUS_BASE} 35 36OPTIONS_DEFINE= GDB 37GDB_DESC= Install a newest version of gdb 38OPTIONS_DEFAULT= GDB 39 40.include <bsd.mport.options.mk> 41 42LAZARUS_ARCH= ${ARCH:S,amd64,x86_64,} 43LAZARUS_BASE= 3.4.0 44 45BUILDNAME= ${LAZARUS_ARCH}-${OPSYS:tl} 46LCL_PLATFORM?= gtk2 47 48MAN1S= lazarus-ide.1 lazbuild.1 startlazarus.1 49SUB_FILES= pkg-message 50SUB_LIST+= PORTSDIR="${PORTSDIR}" 51 52.if ${PORT_OPTIONS:MGDB} 53RUN_DEPENDS+= ${LOCALBASE}/bin/gdb:devel/gdb 54.endif 55 56.if ${PKGNAMESUFFIX} == "-gtk2" 57USES+= gnome 58USE_GNOME= cairo gtk20 gdkpixbuf 59.endif 60 61post-extract: 62 @${MKDIR} ${WRKDIR}/man1 63 @${MV} ${WRKSRC}/install/man/man1/lazarus-ide.1 ${WRKDIR}/man1/ 64 @${MV} ${WRKSRC}/install/man/man1/lazbuild.1 ${WRKDIR}/man1/ 65 @${MV} ${WRKSRC}/install/man/man1/startlazarus.1 ${WRKDIR}/man1/ 66 @${MV} ${WRKSRC}/examples ${WRKDIR}/examples 67 @${MV} ${WRKSRC}/docs ${WRKDIR}/docs 68 @${RM} ${WRKSRC}/tools/.gitignore 69 @${RM} ${WRKSRC}/Dockerfile.buildenv 70 @${RM} ${WRKSRC}/buildenv.Dockerfile 71 @${RM} ${WRKSRC}/.git* 72 73post-patch: 74 @${REINPLACE_CMD} -e 's|%%LOCALBASE%%|${LOCALBASE}|g' -e 's|%%DATADIR%%|${DATADIR}|g' ${WRKSRC}/${MAKEFILE} 75 @${REINPLACE_CMD} -e 's|startlazarus|${PORTNAME}|g' ${WRKSRC}/install/${PORTNAME}.desktop 76 77do-build: 78 @cd ${WRKSRC} && \ 79 ${SETENV} ${MAKE_ENV} ${MAKE_CMD} bigide LCL_PLATFORM=${LCL_PLATFORM} 80 81post-build: 82 @cd ${WRKSRC} && \ 83 ${RM} -R COPYING* README* debian localize.bat test *.orig *.bak startlazarus.app \ 84 ide/Makefile*.orig ide/Makefile*.bak lcl/interfaces/qt5/qtobjects.pas.orig \ 85 .git* 86 @cd ${WRKSRC} && \ 87 ${FIND} . -name ".gitignore" -exec ${RM} "{}" \; 88 89pre-install: 90 @${ECHO} "#!/bin/sh" > ${WRKDIR}/lazarus-wrapper 91 @${ECHO} "cd ${DATADIR} || exit 1 " >> ${WRKDIR}/lazarus-wrapper 92 @${ECHO} "exec ./startlazarus" >> ${WRKDIR}/lazarus-wrapper 93 94 @${RM} ${PLIST} 95 @${RM} -r ${WRKSRC}/components/chmhelp/lhelp/lhelp.app/Contents/MacOS \ 96 ${WRKSRC}/lazarus.app/Contents/MacOS \ 97 ${WRKSRC}/lazarus.app/Contents/Resources/startlazarus.app/Contents/MacOS 98 99. for FILE in bin/lazarus bin/lazbuild 100 @${ECHO_CMD} ${FILE} >> ${PLIST} 101. endfor 102. for m in ${MAN1S} 103 @${ECHO_CMD} share/man/man1/${m}.gz >> ${PLIST} 104. endfor 105 106 @${ECHO_CMD} "%%DATADIR%%/docs" >> ${PLIST} 107 @cd ${WRKDIR}/docs && \ 108 ${FIND} * -type f | ${SORT} | ${SED} -e 's|^|%%DOCSDIR%%/|' >> ${PLIST} 109 110 @${ECHO_CMD} "%%DATADIR%%/examples" >> ${PLIST} 111 @cd ${WRKDIR}/examples && \ 112 ${FIND} * -type f | ${SORT} | ${SED} -e 's|^|%%EXAMPLESDIR%%/|' >> ${PLIST} && \ 113 ${FIND} * -type d -empty | ${SORT} | ${SED} -e 's|^|@dir %%EXAMPLESDIR%%/|' >> ${PLIST} 114 115 @cd ${WRKSRC} && \ 116 ${FIND} * -type f | ${SORT} | ${SED} -e 's|^|%%DATADIR%%/|' >> ${PLIST} && \ 117 ${FIND} * -type d -empty | ${SORT} | ${SED} -e 's|^|@dir %%DATADIR%%/|' >> ${PLIST} 118 119 @${ECHO_CMD} "share/applications/lazarus.desktop" >> ${PLIST} 120 121. for RESO in 128 16 256 32 48 64 122 @${ECHO_CMD} share/icons/hicolor/${RESO}x${RESO}/apps/lazarus.png >> ${PLIST} 123. endfor 124 125 @cd ${WRKSRC}/images/mimetypes && \ 126 ${FIND} * -type f -name "*.png" | ${SORT} | ${SED} -e 's|^|share/icons/hicolor/48x48/mimetypes/|' >> ${PLIST} 127 128 @${ECHO_CMD} "share/icons/hicolor/scalable/apps/lazarus.svg" >> ${PLIST} 129 @${ECHO_CMD} "share/mime/packages/lazarus.xml" >> ${PLIST} 130 131do-install: 132.for DIRE in components converter debugger designer doceditor ide images install languages lazarus.app lcl \ 133 packager tools units 134 @${MKDIR} ${DATADIR}/${DIRE} 135 @cd ${WRKSRC}/${DIRE} && \ 136 ${FIND} * -type d -exec ${MKDIR} "${DATADIR}/${DIRE}/{}" \; && \ 137 ${FIND} * -type f -exec ${INSTALL_DATA} -p {} "${DATADIR}/${DIRE}/{}" \; 138.endfor 139 @${CHMOD} +x ${DATADIR}/tools/svn2revisioninc ${DATADIR}/tools/lazres ${DATADIR}/tools/lrstolfm \ 140 ${DATADIR}/tools/updatepofiles 141 142.for FILE in lazarus lazbuild startlazarus 143 ${INSTALL_PROGRAM} ${WRKSRC}/${FILE} ${DATADIR} 144.endfor 145 146 @cd ${WRKDIR}/docs && \ 147 ${FIND} * -type d -exec ${MKDIR} "${DOCSDIR}/{}" \; && \ 148 ${FIND} * -type f -exec ${INSTALL_DATA} {} "${DOCSDIR}/{}" \; 149 @${LN} -sf ${DOCSDIR} ${DATADIR}/docs 150 151 @cd ${WRKDIR}/examples && \ 152 ${FIND} * -type d -exec ${MKDIR} "${EXAMPLESDIR}/{}" \; && \ 153 ${FIND} * -type f -exec ${INSTALL_DATA} {} "${EXAMPLESDIR}/{}" \; 154 @${LN} -sf ${EXAMPLESDIR} ${DATADIR}/examples 155 156.for RESO in 128 16 256 32 48 64 157 @${MKDIR} ${PREFIX}/share/icons/hicolor/${RESO}x${RESO}/apps 158 ${INSTALL_DATA} ${WRKSRC}/images/icons/${PORTNAME}${RESO}x${RESO}.png ${PREFIX}/share/icons/hicolor/${RESO}x${RESO}/apps/${PORTNAME}.png 159.endfor 160 161 @${MKDIR} ${PREFIX}/share/icons/hicolor/48x48/mimetypes 162 @cd ${WRKSRC}/images/mimetypes && \ 163 ${FIND} * -type f -name "*.png" -exec ${INSTALL_DATA} {} ${PREFIX}/share/icons/hicolor/48x48/mimetypes/{} \; 164 165 @${INSTALL_DATA} ${WRKSRC}/install/${PORTNAME}.desktop ${PREFIX}/share/applications/${PORTNAME}.desktop 166 167 @${MKDIR} ${PREFIX}/share/icons/hicolor/scalable/apps 168 @${INSTALL_DATA} ${WRKSRC}/images/icons/${PORTNAME}.svg ${PREFIX}/share/icons/hicolor/scalable/apps/${PORTNAME}.svg 169 170 @${MKDIR} ${PREFIX}/share/mime/packages 171 @${INSTALL_DATA} ${WRKSRC}/install/${PORTNAME}-mime.xml ${PREFIX}/share/mime/packages/${PORTNAME}.xml 172 173 ${INSTALL_SCRIPT} ${WRKSRC}/localize.sh ${DATADIR} 174 ${INSTALL_SCRIPT} ${WRKDIR}/lazarus-wrapper ${PREFIX}/bin/${PORTNAME} 175 ${INSTALL_DATA} ${WRKSRC}/Makefile* ${WRKSRC}/fpmake* ${DATADIR} 176.for FILE in ${MAN1S} 177 ${INSTALL_MAN} ${WRKDIR}/man1/${FILE} ${PREFIX}/share/man/man1 178.endfor 179 ${LN} -sf ${DATADIR}/lazbuild ${PREFIX}/bin/lazbuild 180 181.include <bsd.port.mk> 182