QT += core gui printsupport network svg greaterThan(QT_MAJOR_VERSION, 4): QT += widgets CONFIG += c++17 CONFIG += nokey isEmpty(APP_NAME) { APP_NAME = RedPandaCPP } isEmpty(APP_VERSION) { APP_VERSION=1.1.1 } macos: { # This package needs to be installed via homebrew before we can compile it INCLUDEPATH += \ /opt/homebrew/opt/icu4c/include QT += gui-private ICON = ../macos/RedPandaIDE.icns } win32: VERSION = $${APP_VERSION}.0 else: VERSION = $${APP_VERSION} isEmpty(PREFIX) { PREFIX = /usr/local } DEFINES += PREFIX=\\\"$${PREFIX}\\\" DEFINES += APP_NAME=\\\"$${APP_NAME}\\\" DEFINES += REDPANDA_CPP_VERSION=\\\"$${APP_VERSION}\\\" gcc { QMAKE_CXXFLAGS_RELEASE += -Werror=return-type QMAKE_CXXFLAGS_DEBUG += -Werror=return-type } msvc { DEFINES += NOMINMAX } # You can make your code fail to compile if it uses deprecated APIs. # In order to do so, uncomment the following line. #DEFINES += QT_DISABLE_DEPRECATED_BEFORE=0x060000 # disables all the APIs deprecated before Qt 6.0.0 SOURCES += \ HighlighterManager.cpp \ autolinkmanager.cpp \ caretlist.cpp \ codeformatter.cpp \ codesnippetsmanager.cpp \ colorscheme.cpp \ compiler/compilerinfo.cpp \ compiler/ojproblemcasesrunner.cpp \ compiler/projectcompiler.cpp \ compiler/runner.cpp \ customfileiconprovider.cpp \ gdbmiresultparser.cpp \ platform.cpp \ compiler/compiler.cpp \ compiler/compilermanager.cpp \ compiler/executablerunner.cpp \ compiler/filecompiler.cpp \ compiler/stdincompiler.cpp \ cpprefacter.cpp \ parser/cppparser.cpp \ parser/cpppreprocessor.cpp \ parser/cpptokenizer.cpp \ parser/parserutils.cpp \ parser/statementmodel.cpp \ problems/ojproblemset.cpp \ problems/problemcasevalidator.cpp \ project.cpp \ projectoptions.cpp \ projecttemplate.cpp \ qsynedit/Search.cpp \ qsynedit/SearchBase.cpp \ qsynedit/SearchRegex.cpp \ qsynedit/Types.cpp \ settingsdialog/compilerautolinkwidget.cpp \ settingsdialog/debuggeneralwidget.cpp \ settingsdialog/editorautosavewidget.cpp \ settingsdialog/editorcodecompletionwidget.cpp \ settingsdialog/editormiscwidget.cpp \ settingsdialog/editorsnippetwidget.cpp \ settingsdialog/editortooltipswidget.cpp \ settingsdialog/environmentfolderswidget.cpp \ settingsdialog/environmentperformancewidget.cpp \ settingsdialog/environmentshortcutwidget.cpp \ settingsdialog/executorproblemsetwidget.cpp \ settingsdialog/formattergeneralwidget.cpp \ settingsdialog/projectcompileparamaterswidget.cpp \ settingsdialog/projectcompilerwidget.cpp \ settingsdialog/projectdirectorieswidget.cpp \ settingsdialog/projectdllhostwidget.cpp \ settingsdialog/projectfileswidget.cpp \ settingsdialog/projectgeneralwidget.cpp \ settingsdialog/projectmakefilewidget.cpp \ settingsdialog/projectoutputwidget.cpp \ settingsdialog/projectprecompilewidget.cpp \ settingsdialog/toolsgeneralwidget.cpp \ settingsdialog/toolsgitwidget.cpp \ shortcutmanager.cpp \ symbolusagemanager.cpp \ thememanager.cpp \ todoparser.cpp \ toolsmanager.cpp \ vcs/gitbranchdialog.cpp \ vcs/gitfetchdialog.cpp \ vcs/gitlogdialog.cpp \ vcs/gitmanager.cpp \ vcs/gitmergedialog.cpp \ vcs/gitpulldialog.cpp \ vcs/gitpushdialog.cpp \ vcs/gitremotedialog.cpp \ vcs/gitrepository.cpp \ vcs/gitresetdialog.cpp \ vcs/gituserconfigdialog.cpp \ vcs/gitutils.cpp \ widgets/aboutdialog.cpp \ widgets/bookmarkmodel.cpp \ widgets/choosethemedialog.cpp \ widgets/classbrowser.cpp \ widgets/codecompletionlistview.cpp \ widgets/codecompletionpopup.cpp \ widgets/cpudialog.cpp \ debugger.cpp \ editor.cpp \ editorlist.cpp \ iconsmanager.cpp \ main.cpp \ mainwindow.cpp \ qsynedit/CodeFolding.cpp \ qsynedit/Constants.cpp \ qsynedit/KeyStrokes.cpp \ qsynedit/MiscClasses.cpp \ qsynedit/MiscProcs.cpp \ qsynedit/SynEdit.cpp \ qsynedit/TextBuffer.cpp \ qsynedit/TextPainter.cpp \ qsynedit/exporter/synexporter.cpp \ qsynedit/exporter/synhtmlexporter.cpp \ qsynedit/exporter/synrtfexporter.cpp \ qsynedit/highlighter/asm.cpp \ qsynedit/highlighter/base.cpp \ qsynedit/highlighter/composition.cpp \ qsynedit/highlighter/cpp.cpp \ qsynedit/highlighter/glsl.cpp \ settingsdialog/compilersetdirectorieswidget.cpp \ settingsdialog/compilersetoptionwidget.cpp \ settings.cpp \ settingsdialog/editorclipboardwidget.cpp \ settingsdialog/editorcolorschemewidget.cpp \ settingsdialog/editorfontwidget.cpp \ settingsdialog/editorgeneralwidget.cpp \ settingsdialog/editorsymbolcompletionwidget.cpp \ settingsdialog/editorsyntaxcheckwidget.cpp \ settingsdialog/environmentappearencewidget.cpp \ settingsdialog/executorgeneralwidget.cpp \ settingsdialog/settingsdialog.cpp \ settingsdialog/settingswidget.cpp \ systemconsts.cpp \ utils.cpp \ widgets/coloredit.cpp \ widgets/compileargumentswidget.cpp \ widgets/consolewidget.cpp \ widgets/customdisablediconengine.cpp \ widgets/customfilesystemmodel.cpp \ widgets/custommakefileinfodialog.cpp \ widgets/darkfusionstyle.cpp \ widgets/editorstabwidget.cpp \ widgets/filepropertiesdialog.cpp \ widgets/functiontooltipwidget.cpp \ widgets/headercompletionpopup.cpp \ widgets/infomessagebox.cpp \ widgets/issuestable.cpp \ widgets/labelwithmenu.cpp \ widgets/lightfusionstyle.cpp \ widgets/linenumbertexteditor.cpp \ widgets/macroinfomodel.cpp \ widgets/newclassdialog.cpp \ widgets/newheaderdialog.cpp \ widgets/newprojectdialog.cpp \ widgets/newprojectunitdialog.cpp \ widgets/ojproblempropertywidget.cpp \ widgets/ojproblemsetmodel.cpp \ widgets/qconsole.cpp \ widgets/qpatchedcombobox.cpp \ widgets/searchdialog.cpp \ widgets/searchresultview.cpp \ widgets/shortcutinputedit.cpp \ widgets/shrinkabletabwidget.cpp \ widgets/signalmessagedialog.cpp HEADERS += \ HighlighterManager.h \ SimpleIni.h \ autolinkmanager.h \ caretlist.h \ codeformatter.h \ codesnippetsmanager.h \ colorscheme.h \ compiler/compiler.h \ compiler/compilerinfo.h \ compiler/compilermanager.h \ compiler/executablerunner.h \ compiler/filecompiler.h \ compiler/ojproblemcasesrunner.h \ compiler/projectcompiler.h \ compiler/runner.h \ compiler/stdincompiler.h \ cpprefacter.h \ customfileiconprovider.h \ gdbmiresultparser.h \ parser/cppparser.h \ parser/cpppreprocessor.h \ parser/cpptokenizer.h \ parser/parserutils.h \ parser/statementmodel.h \ platform.h \ problems/ojproblemset.h \ problems/problemcasevalidator.h \ project.h \ projectoptions.h \ projecttemplate.h \ qsynedit/Search.h \ qsynedit/SearchBase.h \ qsynedit/SearchRegex.h \ settingsdialog/compilerautolinkwidget.h \ settingsdialog/debuggeneralwidget.h \ settingsdialog/editorautosavewidget.h \ settingsdialog/editorcodecompletionwidget.h \ settingsdialog/editormiscwidget.h \ settingsdialog/editorsnippetwidget.h \ settingsdialog/editortooltipswidget.h \ settingsdialog/environmentfolderswidget.h \ settingsdialog/environmentperformancewidget.h \ settingsdialog/environmentshortcutwidget.h \ settingsdialog/executorproblemsetwidget.h \ settingsdialog/formattergeneralwidget.h \ settingsdialog/projectcompileparamaterswidget.h \ settingsdialog/projectcompilerwidget.h \ settingsdialog/projectdirectorieswidget.h \ settingsdialog/projectdllhostwidget.h \ settingsdialog/projectfileswidget.h \ settingsdialog/projectgeneralwidget.h \ settingsdialog/projectmakefilewidget.h \ settingsdialog/projectoutputwidget.h \ settingsdialog/projectprecompilewidget.h \ settingsdialog/toolsgeneralwidget.h \ settingsdialog/toolsgitwidget.h \ shortcutmanager.h \ symbolusagemanager.h \ thememanager.h \ todoparser.h \ toolsmanager.h \ vcs/gitbranchdialog.h \ vcs/gitfetchdialog.h \ vcs/gitlogdialog.h \ vcs/gitmanager.h \ vcs/gitmergedialog.h \ vcs/gitpulldialog.h \ vcs/gitpushdialog.h \ vcs/gitremotedialog.h \ vcs/gitrepository.h \ vcs/gitresetdialog.h \ vcs/gituserconfigdialog.h \ vcs/gitutils.h \ widgets/aboutdialog.h \ widgets/bookmarkmodel.h \ widgets/choosethemedialog.h \ widgets/classbrowser.h \ widgets/codecompletionlistview.h \ widgets/codecompletionpopup.h \ widgets/cpudialog.h \ debugger.h \ editor.h \ editorlist.h \ iconsmanager.h \ mainwindow.h \ qsynedit/CodeFolding.h \ qsynedit/Constants.h \ qsynedit/KeyStrokes.h \ qsynedit/MiscClasses.h \ qsynedit/MiscProcs.h \ qsynedit/SynEdit.h \ qsynedit/TextBuffer.h \ qsynedit/TextPainter.h \ qsynedit/Types.h \ qsynedit/exporter/synexporter.h \ qsynedit/exporter/synhtmlexporter.h \ qsynedit/exporter/synrtfexporter.h \ qsynedit/highlighter/asm.h \ qsynedit/highlighter/base.h \ qsynedit/highlighter/composition.h \ qsynedit/highlighter/cpp.h \ qsynedit/highlighter/glsl.h \ settingsdialog/compilersetdirectorieswidget.h \ settingsdialog/compilersetoptionwidget.h \ settings.h \ settingsdialog/editorclipboardwidget.h \ settingsdialog/editorcolorschemewidget.h \ settingsdialog/editorfontwidget.h \ settingsdialog/editorgeneralwidget.h \ settingsdialog/editorsymbolcompletionwidget.h \ settingsdialog/editorsyntaxcheckwidget.h \ settingsdialog/environmentappearencewidget.h \ settingsdialog/executorgeneralwidget.h \ settingsdialog/settingsdialog.h \ settingsdialog/settingswidget.h \ systemconsts.h \ utils.h \ common.h \ widgets/coloredit.h \ widgets/compileargumentswidget.h \ widgets/consolewidget.h \ widgets/customdisablediconengine.h \ widgets/customfilesystemmodel.h \ widgets/custommakefileinfodialog.h \ widgets/darkfusionstyle.h \ widgets/editorstabwidget.h \ widgets/filepropertiesdialog.h \ widgets/functiontooltipwidget.h \ widgets/headercompletionpopup.h \ widgets/infomessagebox.h \ widgets/issuestable.h \ widgets/labelwithmenu.h \ widgets/lightfusionstyle.h \ widgets/linenumbertexteditor.h \ widgets/macroinfomodel.h \ widgets/newclassdialog.h \ widgets/newheaderdialog.h \ widgets/newprojectdialog.h \ widgets/newprojectunitdialog.h \ widgets/ojproblempropertywidget.h \ widgets/ojproblemsetmodel.h \ widgets/qconsole.h \ widgets/qpatchedcombobox.h \ widgets/searchdialog.h \ widgets/searchresultview.h \ widgets/shortcutinputedit.h \ widgets/shrinkabletabwidget.h \ widgets/signalmessagedialog.h FORMS += \ settingsdialog/compilerautolinkwidget.ui \ settingsdialog/debuggeneralwidget.ui \ settingsdialog/editorautosavewidget.ui \ settingsdialog/editorcodecompletionwidget.ui \ settingsdialog/editormiscwidget.ui \ settingsdialog/editorsnippetwidget.ui \ settingsdialog/editortooltipswidget.ui \ settingsdialog/environmentfolderswidget.ui \ settingsdialog/environmentperformancewidget.ui \ settingsdialog/environmentshortcutwidget.ui \ settingsdialog/executorproblemsetwidget.ui \ settingsdialog/formattergeneralwidget.ui \ settingsdialog/projectcompileparamaterswidget.ui \ settingsdialog/projectcompilerwidget.ui \ settingsdialog/projectdirectorieswidget.ui \ settingsdialog/projectdllhostwidget.ui \ settingsdialog/projectfileswidget.ui \ settingsdialog/projectgeneralwidget.ui \ settingsdialog/projectmakefilewidget.ui \ settingsdialog/projectoutputwidget.ui \ settingsdialog/projectprecompilewidget.ui \ settingsdialog/toolsgeneralwidget.ui \ settingsdialog/toolsgitwidget.ui \ vcs/gitbranchdialog.ui \ vcs/gitfetchdialog.ui \ vcs/gitlogdialog.ui \ vcs/gitmergedialog.ui \ vcs/gitpulldialog.ui \ vcs/gitpushdialog.ui \ vcs/gitremotedialog.ui \ vcs/gitresetdialog.ui \ vcs/gituserconfigdialog.ui \ widgets/aboutdialog.ui \ widgets/choosethemedialog.ui \ widgets/cpudialog.ui \ mainwindow.ui \ settingsdialog/compilersetdirectorieswidget.ui \ settingsdialog/compilersetoptionwidget.ui \ settingsdialog/editorclipboardwidget.ui \ settingsdialog/editorcolorschemewidget.ui \ settingsdialog/editorfontwidget.ui \ settingsdialog/editorgeneralwidget.ui \ settingsdialog/editorsymbolcompletionwidget.ui \ settingsdialog/editorsyntaxcheckwidget.ui \ settingsdialog/environmentappearencewidget.ui \ settingsdialog/executorgeneralwidget.ui \ settingsdialog/settingsdialog.ui \ widgets/custommakefileinfodialog.ui \ widgets/filepropertiesdialog.ui \ widgets/infomessagebox.ui \ widgets/newclassdialog.ui \ widgets/newheaderdialog.ui \ widgets/newprojectdialog.ui \ widgets/newprojectunitdialog.ui \ widgets/ojproblempropertywidget.ui \ widgets/searchdialog.ui \ widgets/signalmessagedialog.ui win32: { FORMS += \ settingsdialog/projectversioninfowidget.ui \ settingsdialog/environmentfileassociationwidget.ui HEADERS += \ settingsdialog/projectversioninfowidget.h \ settingsdialog/environmentfileassociationwidget.h SOURCES += \ settingsdialog/environmentfileassociationwidget.cpp \ settingsdialog/projectversioninfowidget.cpp } unix: { HEADERS += \ settingsdialog/formatterpathwidget.h \ settingsdialog/environmentprogramswidget.h SOURCES += \ settingsdialog/formatterpathwidget.cpp \ settingsdialog/environmentprogramswidget.cpp FORMS += \ settingsdialog/formatterpathwidget.ui \ settingsdialog/environmentprogramswidget.ui } linux: { LIBS+= \ -lrt } TRANSLATIONS += \ RedPandaIDE_zh_CN.ts \ RedPandaIDE_zh_TW.ts \ RedPandaIDE_pt.ts #CONFIG += lrelease embed_translations win32: { !isEmpty(PREFIX) { target.path = $${PREFIX} } } # Default rules for deployment. qnx: target.path = $${PREFIX}/bin else: unix:!android: target.path = $${PREFIX}/bin !isEmpty(target.path): INSTALLS += target RESOURCES += \ codes.qrc \ defaultconfigs.qrc \ icons.qrc \ projecttemplates.qrc \ translations.qrc RC_ICONS = images/devcpp.ico images/associations/c.ico images/associations/cpp.ico images/associations/dev.ico images/associations/c.ico images/associations/cpp.ico images/associations/h.ico images/associations/hpp.ico # fixed lrelease.prf qtPrepareTool(QMAKE_LRELEASE, lrelease) isEmpty(LRELEASE_DIR): LRELEASE_DIR = .qm isEmpty(QM_FILES_RESOURCE_PREFIX): QM_FILES_RESOURCE_PREFIX = i18n lrelease.name = lrelease lrelease.input = TRANSLATIONS EXTRA_TRANSLATIONS lrelease.output = $$LRELEASE_DIR/${QMAKE_FILE_IN_BASE}.qm lrelease.commands = $$QMAKE_LRELEASE ${QMAKE_FILE_IN} $$QMAKE_LRELEASE_FLAGS -qm ${QMAKE_FILE_OUT} silent: lrelease.commands = @echo lrelease ${QMAKE_FILE_IN} && $$lrelease.commands lrelease.CONFIG = no_link target_predeps QMAKE_EXTRA_COMPILERS += lrelease all_translations = $$TRANSLATIONS $$EXTRA_TRANSLATIONS for (translation, all_translations) { # mirrors $$LRELEASE_DIR/${QMAKE_FILE_IN_BASE}.qm above translation = $$basename(translation) QM_FILES += $$OUT_PWD/$$LRELEASE_DIR/$$replace(translation, \\..*$, .qm) } qmake_qm_files.files = $$QM_FILES qmake_qm_files.base = $$OUT_PWD/$$LRELEASE_DIR qmake_qm_files.prefix = $$QM_FILES_RESOURCE_PREFIX iconsets_files.files += $$files(resources/iconsets/*.svg, true) iconsets_files.files += $$files(resources/iconsets/*.json, true) theme_files.files += $$files(themes/*.json, false) theme_files.files += $$files(themes/*.png, false) colorscheme_files.files += $$files(colorschemes/*.scheme, false) colorscheme_files.prefix = /colorschemes RESOURCES += qmake_qm_files RESOURCES += iconsets_files RESOURCES += theme_files RESOURCES += colorscheme_files macos: { # Add needed executables into the main app bundle bundled_executable.files = \ $$OUT_PWD/../astyle/astyle \ $$OUT_PWD/../consolepauser/consolepauser \ $$OUT_PWD/../redpanda-git-askpass/redpanda-git-askpass.app/Contents/MacOS/redpanda-git-askpass bundled_executable.path = Contents/MacOS # Also bundled templates QMAKE_BUNDLE_DATA += bundled_executable }