mirror of
https://github.com/moonlight-stream/moonlight-qt.git
synced 2026-02-16 10:40:59 +00:00
This allows disabling the DRM master hooks for environments where getting DRM master is impossible (such as sandboxes like Flatpak), but leave the DRM renderer itself enabled for usecases like V4L2 which require the DRM renderer to export DMA-BUFs to EGL.
580 lines
17 KiB
Prolog
580 lines
17 KiB
Prolog
QT += core quick network quickcontrols2 svg
|
|
CONFIG += c++11
|
|
|
|
unix:!macx {
|
|
TARGET = moonlight
|
|
} else {
|
|
# On macOS, this is the name displayed in the global menu bar
|
|
TARGET = Moonlight
|
|
}
|
|
|
|
include(../globaldefs.pri)
|
|
|
|
# Precompile QML files to avoid writing qmlcache on portable versions.
|
|
# Since this binds the app against the Qt runtime version, we will only
|
|
# do this for Windows and Mac (when disable-prebuilts is not defined),
|
|
# since they always ship with the matching build of the Qt runtime.
|
|
!disable-prebuilts {
|
|
win32|macx {
|
|
CONFIG(release, debug|release) {
|
|
CONFIG += qtquickcompiler
|
|
}
|
|
}
|
|
}
|
|
|
|
TEMPLATE = app
|
|
|
|
# The following define makes your compiler emit warnings if you use
|
|
# any feature of Qt which has been marked as deprecated (the exact warnings
|
|
# depend on your compiler). Please consult the documentation of the
|
|
# deprecated API in order to know how to port your code away from it.
|
|
DEFINES += QT_DEPRECATED_WARNINGS
|
|
|
|
# You can also make your code fail to compile if you use deprecated APIs.
|
|
# In order to do so, uncomment the following line.
|
|
# You can also select to disable deprecated APIs only up to a certain version of Qt.
|
|
DEFINES += QT_DISABLE_DEPRECATED_BEFORE=0x060000 # disables all the APIs deprecated before Qt 6.0.0
|
|
|
|
win32 {
|
|
contains(QT_ARCH, i386) {
|
|
LIBS += -L$$PWD/../libs/windows/lib/x86
|
|
INCLUDEPATH += $$PWD/../libs/windows/include/x86
|
|
}
|
|
contains(QT_ARCH, x86_64) {
|
|
LIBS += -L$$PWD/../libs/windows/lib/x64
|
|
INCLUDEPATH += $$PWD/../libs/windows/include/x64
|
|
}
|
|
contains(QT_ARCH, arm64) {
|
|
LIBS += -L$$PWD/../libs/windows/lib/arm64
|
|
INCLUDEPATH += $$PWD/../libs/windows/include/arm64
|
|
}
|
|
|
|
INCLUDEPATH += $$PWD/../libs/windows/include
|
|
LIBS += ws2_32.lib winmm.lib dxva2.lib ole32.lib gdi32.lib user32.lib d3d9.lib dwmapi.lib dbghelp.lib
|
|
|
|
# Work around a conflict with math.h inclusion between SDL and Qt 6
|
|
DEFINES += _USE_MATH_DEFINES
|
|
}
|
|
macx:!disable-prebuilts {
|
|
INCLUDEPATH += $$PWD/../libs/mac/include
|
|
INCLUDEPATH += $$PWD/../libs/mac/Frameworks/SDL2.framework/Versions/A/Headers
|
|
INCLUDEPATH += $$PWD/../libs/mac/Frameworks/SDL2_ttf.framework/Versions/A/Headers
|
|
LIBS += -L$$PWD/../libs/mac/lib -F$$PWD/../libs/mac/Frameworks
|
|
|
|
# QMake doesn't handle framework-style includes correctly on its own
|
|
QMAKE_CFLAGS += -F$$PWD/../libs/mac/Frameworks
|
|
QMAKE_CXXFLAGS += -F$$PWD/../libs/mac/Frameworks
|
|
QMAKE_OBJECTIVE_CFLAGS += -F$$PWD/../libs/mac/Frameworks
|
|
}
|
|
|
|
unix:if(!macx|disable-prebuilts) {
|
|
CONFIG += link_pkgconfig
|
|
PKGCONFIG += openssl sdl2 SDL2_ttf
|
|
|
|
# We have our own optimized libopus.a for Steam Link
|
|
if(!config_SL|disable-prebuilts) {
|
|
PKGCONFIG += opus
|
|
}
|
|
|
|
!disable-ffmpeg {
|
|
packagesExist(libavcodec) {
|
|
PKGCONFIG += libavcodec libavutil libswscale
|
|
CONFIG += ffmpeg
|
|
|
|
!disable-libva {
|
|
packagesExist(libva) {
|
|
!disable-x11 {
|
|
packagesExist(libva-x11) {
|
|
CONFIG += libva-x11
|
|
}
|
|
}
|
|
!disable-wayland {
|
|
packagesExist(libva-wayland) {
|
|
CONFIG += libva-wayland
|
|
}
|
|
}
|
|
!disable-libdrm {
|
|
packagesExist(libva-drm) {
|
|
CONFIG += libva-drm
|
|
}
|
|
}
|
|
CONFIG += libva
|
|
}
|
|
}
|
|
|
|
!disable-libvdpau {
|
|
packagesExist(vdpau) {
|
|
CONFIG += libvdpau
|
|
}
|
|
}
|
|
|
|
!disable-mmal {
|
|
packagesExist(mmal) {
|
|
PKGCONFIG += mmal
|
|
CONFIG += mmal
|
|
}
|
|
}
|
|
|
|
!disable-libdrm {
|
|
packagesExist(libdrm) {
|
|
PKGCONFIG += libdrm
|
|
CONFIG += libdrm
|
|
}
|
|
}
|
|
|
|
!disable-cuda {
|
|
packagesExist(ffnvcodec) {
|
|
PKGCONFIG += ffnvcodec
|
|
CONFIG += cuda
|
|
}
|
|
}
|
|
|
|
!disable-libplacebo {
|
|
packagesExist(libplacebo) {
|
|
PKGCONFIG += libplacebo
|
|
CONFIG += libplacebo
|
|
}
|
|
}
|
|
}
|
|
|
|
!disable-wayland {
|
|
packagesExist(wayland-client) {
|
|
CONFIG += wayland
|
|
PKGCONFIG += wayland-client
|
|
}
|
|
}
|
|
|
|
!disable-x11 {
|
|
packagesExist(x11) {
|
|
DEFINES += HAS_X11
|
|
PKGCONFIG += x11
|
|
}
|
|
}
|
|
}
|
|
}
|
|
win32 {
|
|
LIBS += -llibssl -llibcrypto -lSDL2 -lSDL2_ttf -lavcodec -lavutil -lswscale -lopus -ldxgi -ld3d11 -llibplacebo
|
|
CONFIG += ffmpeg libplacebo
|
|
}
|
|
win32:!winrt {
|
|
CONFIG += discord-rpc
|
|
}
|
|
macx {
|
|
!disable-prebuilts {
|
|
LIBS += -lssl.3 -lcrypto.3 -lavcodec.62 -lavutil.60 -lswscale.9 -lopus -framework SDL2 -framework SDL2_ttf
|
|
CONFIG += discord-rpc
|
|
}
|
|
|
|
LIBS += -lobjc -framework VideoToolbox -framework AVFoundation -framework CoreVideo -framework CoreGraphics -framework CoreMedia -framework AppKit -framework Metal -framework QuartzCore
|
|
CONFIG += ffmpeg
|
|
}
|
|
|
|
SOURCES += \
|
|
backend/nvaddress.cpp \
|
|
backend/nvapp.cpp \
|
|
cli/pair.cpp \
|
|
main.cpp \
|
|
backend/computerseeker.cpp \
|
|
backend/identitymanager.cpp \
|
|
backend/nvcomputer.cpp \
|
|
backend/nvhttp.cpp \
|
|
backend/nvpairingmanager.cpp \
|
|
backend/computermanager.cpp \
|
|
backend/boxartmanager.cpp \
|
|
backend/richpresencemanager.cpp \
|
|
cli/commandlineparser.cpp \
|
|
cli/listapps.cpp \
|
|
cli/quitstream.cpp \
|
|
cli/startstream.cpp \
|
|
settings/compatfetcher.cpp \
|
|
settings/mappingfetcher.cpp \
|
|
settings/streamingpreferences.cpp \
|
|
streaming/input/abstouch.cpp \
|
|
streaming/input/gamepad.cpp \
|
|
streaming/input/input.cpp \
|
|
streaming/input/keyboard.cpp \
|
|
streaming/input/mouse.cpp \
|
|
streaming/input/reltouch.cpp \
|
|
streaming/session.cpp \
|
|
streaming/audio/audio.cpp \
|
|
streaming/audio/renderers/sdlaud.cpp \
|
|
gui/computermodel.cpp \
|
|
gui/appmodel.cpp \
|
|
streaming/streamutils.cpp \
|
|
backend/autoupdatechecker.cpp \
|
|
path.cpp \
|
|
settings/mappingmanager.cpp \
|
|
gui/sdlgamepadkeynavigation.cpp \
|
|
streaming/video/overlaymanager.cpp \
|
|
backend/systemproperties.cpp \
|
|
wm.cpp
|
|
|
|
HEADERS += \
|
|
SDL_compat.h \
|
|
backend/nvaddress.h \
|
|
backend/nvapp.h \
|
|
cli/pair.h \
|
|
settings/compatfetcher.h \
|
|
settings/mappingfetcher.h \
|
|
utils.h \
|
|
backend/computerseeker.h \
|
|
backend/identitymanager.h \
|
|
backend/nvcomputer.h \
|
|
backend/nvhttp.h \
|
|
backend/nvpairingmanager.h \
|
|
backend/computermanager.h \
|
|
backend/boxartmanager.h \
|
|
backend/richpresencemanager.h \
|
|
cli/commandlineparser.h \
|
|
cli/listapps.h \
|
|
cli/quitstream.h \
|
|
cli/startstream.h \
|
|
settings/streamingpreferences.h \
|
|
streaming/input/input.h \
|
|
streaming/session.h \
|
|
streaming/audio/renderers/renderer.h \
|
|
streaming/audio/renderers/sdl.h \
|
|
gui/computermodel.h \
|
|
gui/appmodel.h \
|
|
streaming/video/decoder.h \
|
|
streaming/streamutils.h \
|
|
backend/autoupdatechecker.h \
|
|
path.h \
|
|
settings/mappingmanager.h \
|
|
gui/sdlgamepadkeynavigation.h \
|
|
streaming/video/overlaymanager.h \
|
|
backend/systemproperties.h
|
|
|
|
# Platform-specific renderers and decoders
|
|
ffmpeg {
|
|
message(FFmpeg decoder selected)
|
|
|
|
DEFINES += HAVE_FFMPEG
|
|
SOURCES += \
|
|
streaming/video/ffmpeg.cpp \
|
|
streaming/video/ffmpeg-renderers/genhwaccel.cpp \
|
|
streaming/video/ffmpeg-renderers/sdlvid.cpp \
|
|
streaming/video/ffmpeg-renderers/swframemapper.cpp \
|
|
streaming/video/ffmpeg-renderers/pacer/pacer.cpp
|
|
|
|
HEADERS += \
|
|
streaming/video/ffmpeg.h \
|
|
streaming/video/ffmpeg-renderers/renderer.h \
|
|
streaming/video/ffmpeg-renderers/genhwaccel.h \
|
|
streaming/video/ffmpeg-renderers/sdlvid.h \
|
|
streaming/video/ffmpeg-renderers/swframemapper.h \
|
|
streaming/video/ffmpeg-renderers/pacer/pacer.h
|
|
}
|
|
libva {
|
|
message(VAAPI renderer selected)
|
|
|
|
PKGCONFIG += libva
|
|
DEFINES += HAVE_LIBVA
|
|
SOURCES += streaming/video/ffmpeg-renderers/vaapi.cpp
|
|
HEADERS += streaming/video/ffmpeg-renderers/vaapi.h
|
|
}
|
|
libva-x11 {
|
|
message(VAAPI X11 support enabled)
|
|
|
|
PKGCONFIG += libva-x11
|
|
DEFINES += HAVE_LIBVA_X11
|
|
}
|
|
libva-wayland {
|
|
message(VAAPI Wayland support enabled)
|
|
|
|
PKGCONFIG += libva-wayland
|
|
DEFINES += HAVE_LIBVA_WAYLAND
|
|
}
|
|
libva-drm {
|
|
message(VAAPI DRM support enabled)
|
|
|
|
PKGCONFIG += libva-drm
|
|
DEFINES += HAVE_LIBVA_DRM
|
|
}
|
|
libvdpau {
|
|
message(VDPAU renderer selected)
|
|
|
|
DEFINES += HAVE_LIBVDPAU
|
|
SOURCES += streaming/video/ffmpeg-renderers/vdpau.cpp
|
|
HEADERS += streaming/video/ffmpeg-renderers/vdpau.h
|
|
}
|
|
mmal {
|
|
message(MMAL renderer selected)
|
|
|
|
DEFINES += HAVE_MMAL
|
|
SOURCES += streaming/video/ffmpeg-renderers/mmal.cpp
|
|
HEADERS += streaming/video/ffmpeg-renderers/mmal.h
|
|
|
|
# We suppress EGL usage when MMAL is available because MMAL has
|
|
# significantly better performance than EGL on the Pi. Setting
|
|
# this option allows EGL usage even if built with MMAL support.
|
|
#
|
|
# It is highly recommended to also build with 'gpuslow' to avoid
|
|
# EGL being preferred if direct DRM rendering is available.
|
|
allow-egl-with-mmal {
|
|
message(Allowing EGL usage with MMAL enabled)
|
|
|
|
DEFINES += ALLOW_EGL_WITH_MMAL
|
|
}
|
|
}
|
|
libdrm {
|
|
message(DRM renderer selected)
|
|
|
|
DEFINES += HAVE_DRM
|
|
SOURCES += streaming/video/ffmpeg-renderers/drm.cpp
|
|
HEADERS += streaming/video/ffmpeg-renderers/drm.h
|
|
|
|
linux {
|
|
!disable-masterhooks {
|
|
message(Master hooks enabled)
|
|
SOURCES += masterhook.c masterhook_internal.c
|
|
LIBS += -ldl -pthread
|
|
}
|
|
}
|
|
}
|
|
cuda {
|
|
message(CUDA support enabled)
|
|
|
|
DEFINES += HAVE_CUDA
|
|
SOURCES += streaming/video/ffmpeg-renderers/cuda.cpp
|
|
HEADERS += streaming/video/ffmpeg-renderers/cuda.h
|
|
|
|
# ffnvcodec uses libdl in cuda_load_functions()/cuda_free_functions()
|
|
LIBS += -ldl
|
|
}
|
|
libplacebo {
|
|
message(Vulkan support enabled via libplacebo)
|
|
|
|
DEFINES += HAVE_LIBPLACEBO_VULKAN
|
|
SOURCES += \
|
|
streaming/video/ffmpeg-renderers/plvk.cpp \
|
|
streaming/video/ffmpeg-renderers/plvk_c.c
|
|
HEADERS += \
|
|
streaming/video/ffmpeg-renderers/plvk.h
|
|
}
|
|
config_EGL {
|
|
message(EGL renderer selected)
|
|
|
|
CONFIG += egl
|
|
DEFINES += HAVE_EGL
|
|
SOURCES += \
|
|
streaming/video/ffmpeg-renderers/eglvid.cpp \
|
|
streaming/video/ffmpeg-renderers/egl_extensions.cpp \
|
|
streaming/video/ffmpeg-renderers/eglimagefactory.cpp
|
|
HEADERS += \
|
|
streaming/video/ffmpeg-renderers/eglvid.h \
|
|
streaming/video/ffmpeg-renderers/eglimagefactory.h
|
|
}
|
|
config_SL {
|
|
message(Steam Link build configuration selected)
|
|
|
|
!disable-prebuilts {
|
|
# Link against our NEON-optimized libopus build
|
|
LIBS += -L$$PWD/../libs/steamlink/lib
|
|
INCLUDEPATH += $$PWD/../libs/steamlink/include
|
|
LIBS += -lopus -larmasm -lNE10
|
|
}
|
|
|
|
DEFINES += EMBEDDED_BUILD STEAM_LINK HAVE_SLVIDEO HAVE_SLAUDIO
|
|
LIBS += -lSLVideo -lSLAudio
|
|
|
|
SOURCES += \
|
|
streaming/video/slvid.cpp \
|
|
streaming/audio/renderers/slaud.cpp
|
|
HEADERS += \
|
|
streaming/video/slvid.h \
|
|
streaming/audio/renderers/slaud.h
|
|
}
|
|
win32 {
|
|
HEADERS += streaming/video/ffmpeg-renderers/dxutil.h
|
|
}
|
|
win32:!winrt {
|
|
message(DXVA2 and D3D11VA renderers selected)
|
|
|
|
SOURCES += \
|
|
streaming/video/ffmpeg-renderers/dxva2.cpp \
|
|
streaming/video/ffmpeg-renderers/d3d11va.cpp \
|
|
streaming/video/ffmpeg-renderers/pacer/dxvsyncsource.cpp
|
|
|
|
HEADERS += \
|
|
streaming/video/ffmpeg-renderers/dxva2.h \
|
|
streaming/video/ffmpeg-renderers/d3d11va.h \
|
|
streaming/video/ffmpeg-renderers/pacer/dxvsyncsource.h
|
|
}
|
|
macx {
|
|
message(VideoToolbox renderer selected)
|
|
|
|
SOURCES += \
|
|
streaming/video/ffmpeg-renderers/vt_base.mm \
|
|
streaming/video/ffmpeg-renderers/vt_avsamplelayer.mm \
|
|
streaming/video/ffmpeg-renderers/vt_metal.mm
|
|
|
|
HEADERS += \
|
|
streaming/video/ffmpeg-renderers/vt.h
|
|
}
|
|
discord-rpc {
|
|
message(Discord integration enabled)
|
|
|
|
LIBS += -ldiscord-rpc
|
|
DEFINES += HAVE_DISCORD
|
|
}
|
|
embedded {
|
|
message(Embedded build)
|
|
|
|
DEFINES += EMBEDDED_BUILD
|
|
}
|
|
glslow {
|
|
message(GL slow build)
|
|
|
|
DEFINES += GL_IS_SLOW
|
|
}
|
|
vkslow {
|
|
message(Vulkan slow build)
|
|
|
|
DEFINES += VULKAN_IS_SLOW
|
|
}
|
|
gpuslow {
|
|
message(GPU slow build)
|
|
|
|
DEFINES += GL_IS_SLOW VULKAN_IS_SLOW
|
|
}
|
|
wayland {
|
|
message(Wayland extensions enabled)
|
|
|
|
DEFINES += HAS_WAYLAND
|
|
SOURCES += streaming/video/ffmpeg-renderers/pacer/waylandvsyncsource.cpp
|
|
HEADERS += streaming/video/ffmpeg-renderers/pacer/waylandvsyncsource.h
|
|
}
|
|
|
|
RESOURCES += \
|
|
resources.qrc \
|
|
qml.qrc
|
|
|
|
TRANSLATIONS += \
|
|
languages/qml_zh_CN.ts \
|
|
languages/qml_de.ts \
|
|
languages/qml_fr.ts \
|
|
languages/qml_nb_NO.ts \
|
|
languages/qml_ru.ts \
|
|
languages/qml_es.ts \
|
|
languages/qml_ja.ts \
|
|
languages/qml_vi.ts \
|
|
languages/qml_th.ts \
|
|
languages/qml_ko.ts \
|
|
languages/qml_hu.ts \
|
|
languages/qml_nl.ts \
|
|
languages/qml_sv.ts \
|
|
languages/qml_tr.ts \
|
|
languages/qml_uk.ts \
|
|
languages/qml_zh_TW.ts \
|
|
languages/qml_el.ts \
|
|
languages/qml_hi.ts \
|
|
languages/qml_it.ts \
|
|
languages/qml_pt.ts \
|
|
languages/qml_pt_BR.ts \
|
|
languages/qml_pl.ts \
|
|
languages/qml_cs.ts \
|
|
languages/qml_he.ts \
|
|
languages/qml_ckb.ts \
|
|
languages/qml_lt.ts \
|
|
languages/qml_et.ts \
|
|
languages/qml_bg.ts \
|
|
languages/qml_eo.ts \
|
|
languages/qml_ta.ts
|
|
|
|
# Additional import path used to resolve QML modules in Qt Creator's code model
|
|
QML_IMPORT_PATH =
|
|
|
|
# Additional import path used to resolve QML modules just for Qt Quick Designer
|
|
QML_DESIGNER_IMPORT_PATH =
|
|
|
|
win32:CONFIG(release, debug|release): LIBS += -L$$OUT_PWD/../moonlight-common-c/release/ -lmoonlight-common-c
|
|
else:win32:CONFIG(debug, debug|release): LIBS += -L$$OUT_PWD/../moonlight-common-c/debug/ -lmoonlight-common-c
|
|
else:unix: LIBS += -L$$OUT_PWD/../moonlight-common-c/ -lmoonlight-common-c
|
|
|
|
INCLUDEPATH += $$PWD/../moonlight-common-c/moonlight-common-c/src
|
|
DEPENDPATH += $$PWD/../moonlight-common-c/moonlight-common-c/src
|
|
|
|
win32:CONFIG(release, debug|release): LIBS += -L$$OUT_PWD/../qmdnsengine/release/ -lqmdnsengine
|
|
else:win32:CONFIG(debug, debug|release): LIBS += -L$$OUT_PWD/../qmdnsengine/debug/ -lqmdnsengine
|
|
else:unix: LIBS += -L$$OUT_PWD/../qmdnsengine/ -lqmdnsengine
|
|
|
|
INCLUDEPATH += $$PWD/../qmdnsengine/qmdnsengine/src/include $$PWD/../qmdnsengine
|
|
DEPENDPATH += $$PWD/../qmdnsengine/qmdnsengine/src/include $$PWD/../qmdnsengine
|
|
|
|
win32:CONFIG(release, debug|release): LIBS += -L$$OUT_PWD/../h264bitstream/release/ -lh264bitstream
|
|
else:win32:CONFIG(debug, debug|release): LIBS += -L$$OUT_PWD/../h264bitstream/debug/ -lh264bitstream
|
|
else:unix: LIBS += -L$$OUT_PWD/../h264bitstream/ -lh264bitstream
|
|
|
|
INCLUDEPATH += $$PWD/../h264bitstream/h264bitstream
|
|
DEPENDPATH += $$PWD/../h264bitstream/h264bitstream
|
|
|
|
!winrt {
|
|
win32:CONFIG(release, debug|release): LIBS += -L$$OUT_PWD/../AntiHooking/release/ -lAntiHooking
|
|
else:win32:CONFIG(debug, debug|release): LIBS += -L$$OUT_PWD/../AntiHooking/debug/ -lAntiHooking
|
|
|
|
INCLUDEPATH += $$PWD/../AntiHooking
|
|
DEPENDPATH += $$PWD/../AntiHooking
|
|
}
|
|
|
|
unix:!macx: {
|
|
isEmpty(PREFIX) {
|
|
PREFIX = /usr/local
|
|
}
|
|
isEmpty(BINDIR) {
|
|
BINDIR = bin
|
|
}
|
|
isEmpty(DATADIR) {
|
|
DATADIR = share
|
|
}
|
|
|
|
target.path = $$PREFIX/$$BINDIR/
|
|
|
|
desktop.files = deploy/linux/com.moonlight_stream.Moonlight.desktop
|
|
desktop.path = $$PREFIX/$$DATADIR/applications/
|
|
|
|
icons.files = res/moonlight.svg
|
|
icons.path = $$PREFIX/$$DATADIR/icons/hicolor/scalable/apps/
|
|
|
|
appstream.files = deploy/linux/com.moonlight_stream.Moonlight.appdata.xml
|
|
appstream.path = $$PREFIX/$$DATADIR/metainfo/
|
|
|
|
INSTALLS += target desktop icons appstream
|
|
}
|
|
win32 {
|
|
RC_ICONS = moonlight.ico
|
|
QMAKE_TARGET_COMPANY = Moonlight Game Streaming Project
|
|
QMAKE_TARGET_DESCRIPTION = Moonlight Game Streaming Client
|
|
QMAKE_TARGET_PRODUCT = Moonlight
|
|
|
|
CONFIG -= embed_manifest_exe
|
|
QMAKE_LFLAGS += /MANIFEST:embed /MANIFESTINPUT:$${PWD}/Moonlight.exe.manifest
|
|
}
|
|
macx {
|
|
# Create Info.plist in object dir with the correct version string
|
|
system(cp $$PWD/Info.plist $$OUT_PWD/Info.plist)
|
|
system(sed -i -e 's/VERSION/$$cat(version.txt)/g' $$OUT_PWD/Info.plist)
|
|
|
|
QMAKE_INFO_PLIST = $$OUT_PWD/Info.plist
|
|
|
|
APP_BUNDLE_RESOURCES.files = moonlight.icns
|
|
APP_BUNDLE_RESOURCES.path = Contents/Resources
|
|
|
|
APP_BUNDLE_PLIST.files = $$OUT_PWD/Info.plist
|
|
APP_BUNDLE_PLIST.path = Contents
|
|
|
|
QMAKE_BUNDLE_DATA += APP_BUNDLE_RESOURCES APP_BUNDLE_PLIST
|
|
|
|
!disable-prebuilts {
|
|
APP_BUNDLE_FRAMEWORKS.files = $$files(../libs/mac/Frameworks/*.framework, true) $$files(../libs/mac/lib/*.dylib, true)
|
|
APP_BUNDLE_FRAMEWORKS.path = Contents/Frameworks
|
|
|
|
QMAKE_BUNDLE_DATA += APP_BUNDLE_FRAMEWORKS
|
|
|
|
QMAKE_RPATHDIR += @executable_path/../Frameworks
|
|
}
|
|
}
|
|
|
|
VERSION = "$$cat(version.txt)"
|
|
DEFINES += VERSION_STR=\\\"$$cat(version.txt)\\\"
|