|
1 | 1 | QT += qml quick widgets sql quickcontrols2 |
2 | | -TARGET = cool-retro-term |
| 2 | +TARGET = cool-retro-term |
| 3 | +APP_VERSION = $$system(git -C $$PWD/.. describe --tags --always --dirty=-dirty) |
| 4 | +isEmpty(APP_VERSION): APP_VERSION = "unknown" |
| 5 | +DEFINES += APP_VERSION=\\\"$$APP_VERSION\\\" |
| 6 | + |
| 7 | +# TODO: When migrating to CMake, use KDSingleApplication's CMakeLists.txt instead of these manual sources. |
| 8 | +INCLUDEPATH += $$PWD/../KDSingleApplication/src |
| 9 | +HEADERS += \ |
| 10 | + $$PWD/../KDSingleApplication/src/kdsingleapplication.h \ |
| 11 | + $$PWD/../KDSingleApplication/src/kdsingleapplication_lib.h \ |
| 12 | + $$PWD/../KDSingleApplication/src/kdsingleapplication_localsocket_p.h |
| 13 | +SOURCES += \ |
| 14 | + $$PWD/../KDSingleApplication/src/kdsingleapplication.cpp \ |
| 15 | + $$PWD/../KDSingleApplication/src/kdsingleapplication_localsocket.cpp |
| 16 | +DEFINES += KDSINGLEAPPLICATION_STATIC_BUILD |
3 | 17 |
|
4 | 18 | DESTDIR = $$OUT_PWD/../ |
5 | 19 |
|
6 | 20 | HEADERS += \ |
7 | 21 | fileio.h \ |
8 | | - monospacefontmanager.h |
| 22 | + fontmanager.h \ |
| 23 | + fontlistmodel.h |
9 | 24 |
|
10 | | -SOURCES = main.cpp \ |
| 25 | +SOURCES += main.cpp \ |
11 | 26 | fileio.cpp \ |
12 | | - monospacefontmanager.cpp |
| 27 | + fontmanager.cpp \ |
| 28 | + fontlistmodel.cpp |
13 | 29 |
|
14 | 30 | macx:ICON = icons/crt.icns |
15 | 31 |
|
16 | 32 | RESOURCES += qml/resources.qrc |
17 | 33 |
|
| 34 | +# Shader compilation (Qt Shader Baker) |
| 35 | +QSB_BIN = $$[QT_HOST_BINS]/qsb |
| 36 | +isEmpty(QSB_BIN): QSB_BIN = $$[QT_INSTALL_BINS]/qsb |
| 37 | + |
| 38 | +SHADERS_DIR = $${_PRO_FILE_PWD_}/shaders |
| 39 | +SHADERS += $$files($$SHADERS_DIR/*.frag) $$files($$SHADERS_DIR/*.vert) |
| 40 | +SHADERS -= $$SHADERS_DIR/terminal_dynamic.frag |
| 41 | +SHADERS -= $$SHADERS_DIR/terminal_static.frag |
| 42 | +SHADERS -= $$SHADERS_DIR/passthrough.vert |
| 43 | + |
| 44 | +qsb.input = SHADERS |
| 45 | +qsb.output = ../../app/shaders/${QMAKE_FILE_NAME}.qsb |
| 46 | +qsb.commands = $$QSB_BIN --glsl \"100 es,120,150\" --hlsl 50 --msl 12 --qt6 -o ${QMAKE_FILE_OUT} ${QMAKE_FILE_IN} |
| 47 | +qsb.clean = $$qsb.output |
| 48 | +qsb.name = qsb ${QMAKE_FILE_IN} |
| 49 | +qsb.variable_out = QSB_FILES |
| 50 | +QMAKE_EXTRA_COMPILERS += qsb |
| 51 | +PRE_TARGETDEPS += $$QSB_FILES |
| 52 | +OTHER_FILES += $$SHADERS $$QSB_FILES |
| 53 | + |
| 54 | +DYNAMIC_SHADER = $$SHADERS_DIR/terminal_dynamic.frag |
| 55 | +STATIC_SHADER = $$SHADERS_DIR/terminal_static.frag |
| 56 | + |
| 57 | +RASTER_MODES = 0 1 2 3 4 |
| 58 | +BINARY_FLAGS = 0 1 |
| 59 | +VARIANT_SHADER_DIR = $$relative_path($$PWD/shaders, $$OUT_PWD) |
| 60 | +VARIANT_OUTPUTS = |
| 61 | + |
| 62 | +for(raster_mode, RASTER_MODES) { |
| 63 | + for(burn_in, BINARY_FLAGS) { |
| 64 | + for(display_frame, BINARY_FLAGS) { |
| 65 | + for(chroma_on, BINARY_FLAGS) { |
| 66 | + dynamic_variant = terminal_dynamic_raster$${raster_mode}_burn$${burn_in}_frame$${display_frame}_chroma$${chroma_on} |
| 67 | + dynamic_output = $${VARIANT_SHADER_DIR}/$${dynamic_variant}.frag.qsb |
| 68 | + dynamic_target = shader_variant_$${dynamic_variant} |
| 69 | + $${dynamic_target}.target = $${dynamic_output} |
| 70 | + $${dynamic_target}.depends = $$DYNAMIC_SHADER |
| 71 | + $${dynamic_target}.commands = $$QSB_BIN --glsl \"100 es,120,150\" --hlsl 50 --msl 12 --qt6 -DCRT_RASTER_MODE=$${raster_mode} -DCRT_BURN_IN=$${burn_in} -DCRT_DISPLAY_FRAME=$${display_frame} -DCRT_CHROMA=$${chroma_on} -o $${dynamic_output} $$DYNAMIC_SHADER |
| 72 | + QMAKE_EXTRA_TARGETS += $${dynamic_target} |
| 73 | + VARIANT_OUTPUTS += $${dynamic_output} |
| 74 | + } |
| 75 | + } |
| 76 | + } |
| 77 | +} |
| 78 | + |
| 79 | +for(rgb_shift, BINARY_FLAGS) { |
| 80 | + for(bloom_on, BINARY_FLAGS) { |
| 81 | + for(curve_on, BINARY_FLAGS) { |
| 82 | + for(shine_on, BINARY_FLAGS) { |
| 83 | + static_variant = terminal_static_rgb$${rgb_shift}_bloom$${bloom_on}_curve$${curve_on}_shine$${shine_on} |
| 84 | + static_output = $${VARIANT_SHADER_DIR}/$${static_variant}.frag.qsb |
| 85 | + static_target = shader_variant_$${static_variant} |
| 86 | + $${static_target}.target = $${static_output} |
| 87 | + $${static_target}.depends = $$STATIC_SHADER |
| 88 | + $${static_target}.commands = $$QSB_BIN --glsl \"100 es,120,150\" --hlsl 50 --msl 12 --qt6 -DCRT_RGB_SHIFT=$${rgb_shift} -DCRT_BLOOM=$${bloom_on} -DCRT_CURVATURE=$${curve_on} -DCRT_FRAME_SHININESS=$${shine_on} -o $${static_output} $$STATIC_SHADER |
| 89 | + QMAKE_EXTRA_TARGETS += $${static_target} |
| 90 | + VARIANT_OUTPUTS += $${static_output} |
| 91 | + } |
| 92 | + } |
| 93 | + } |
| 94 | +} |
| 95 | +PRE_TARGETDEPS += $${VARIANT_OUTPUTS} |
| 96 | + |
18 | 97 | ######################################### |
19 | 98 | ## INTALLS |
20 | 99 | ######################################### |
|
0 commit comments