mirror of
https://github.com/leozide/leocad.git
synced 2026-10-26 22:10:32 +00:00
Translate Blender defaults after translators are installed and give the spinner its own translation context. Translate remaining page and minifigure labels, and use Qt numerus messages for count-dependent text. Embed an English plural catalog so missing locale translations still have correct singular and plural forms. Refresh all eight language catalogs and fill missing translations as unfinished drafts with provenance comments. Preserve existing translation text, placeholders, markup, internal identifiers, and combo/filter syntax. Keep nonempty unfinished translations visible in release catalogs. Validation: Qt 6.10 debug build; warning-free lupdate extraction; active catalog keys match all 2,044 source messages; catalog integrity checks; runtime checks of spinner and 228 Blender default strings plus 472 plural, draft visibility, placeholder, and English fallback cases.
366 lines
10 KiB
Prolog
366 lines
10 KiB
Prolog
QT += core gui widgets opengl network xml concurrent
|
|
QT *= printsupport
|
|
TEMPLATE = app
|
|
|
|
lessThan(QT_MAJOR_VERSION, 5) {
|
|
error("LeoCAD requires Qt5.4 or later.")
|
|
}
|
|
|
|
equals(QT_MAJOR_VERSION, 5):lessThan(QT_MINOR_VERSION, 4) {
|
|
error("LeoCAD requires Qt5.4 or later.")
|
|
}
|
|
|
|
greaterThan(QT_MAJOR_VERSION, 5) {
|
|
QT += openglwidgets
|
|
win32-msvc* {
|
|
QMAKE_CXXFLAGS += /std:c++17
|
|
}
|
|
}
|
|
|
|
qtHaveModule(gamepad) {
|
|
QT += gamepad
|
|
DEFINES += LC_ENABLE_GAMEPAD
|
|
}
|
|
|
|
INCLUDEPATH += qt common
|
|
CONFIG += precompile_header incremental c++17 force_debug_info
|
|
|
|
win32 {
|
|
DEFINES += NOMINMAX
|
|
RC_ICONS = resources/leocad.ico
|
|
VERSION = 26.9.0.0
|
|
QMAKE_TARGET_COMPANY = LeoCAD Software
|
|
QMAKE_TARGET_DESCRIPTION = LeoCAD
|
|
QMAKE_TARGET_COPYRIGHT = "Copyright (C) LeoCAD.org"
|
|
QMAKE_TARGET_PRODUCT = LeoCAD
|
|
RC_CODEPAGE = 1252
|
|
RC_LANG = 0x0409
|
|
|
|
LIBS += -lwininet
|
|
}
|
|
win32-msvc* {
|
|
QMAKE_CXXFLAGS_WARN_ON += /W4 -wd4100
|
|
QMAKE_CXXFLAGS *= /MP
|
|
PRECOMPILED_HEADER = common/lc_global.h
|
|
PRECOMPILED_SOURCE = common/lc_global.cpp
|
|
DEFINES += _CRT_SECURE_NO_WARNINGS _CRT_SECURE_NO_DEPRECATE=1 _CRT_NONSTDC_NO_WARNINGS=1
|
|
INCLUDEPATH += $$[QT_INSTALL_HEADERS]/QtZlib
|
|
QMAKE_LFLAGS += /INCREMENTAL
|
|
LIBS += -ladvapi32 -lshell32 -lopengl32 -luser32
|
|
QMAKE_CXXFLAGS += /we4834
|
|
} else {
|
|
PRECOMPILED_HEADER = common/lc_global.h
|
|
LIBS += -lz
|
|
QMAKE_CXXFLAGS_WARN_ON += -Wno-unused-parameter -Wshadow
|
|
QMAKE_CXXFLAGS += -Werror=unused-result
|
|
}
|
|
|
|
isEmpty(QMAKE_LRELEASE) {
|
|
win32:QMAKE_LRELEASE = $$[QT_INSTALL_BINS]\\lrelease.exe
|
|
else:QMAKE_LRELEASE = $$[QT_INSTALL_BINS]/lrelease
|
|
unix {
|
|
!exists($$QMAKE_LRELEASE) { QMAKE_LRELEASE = lrelease-qt4 }
|
|
} else {
|
|
!exists($$QMAKE_LRELEASE) { QMAKE_LRELEASE = lrelease }
|
|
}
|
|
}
|
|
|
|
TRAVIS_TAG = $$(TRAVIS_TAG)
|
|
TRAVIS_COMMIT = $$(TRAVIS_COMMIT)
|
|
!isEmpty(TRAVIS_COMMIT) {
|
|
isEmpty(TRAVIS_TAG) {
|
|
DEFINES += "LC_CONTINUOUS_BUILD=$$system(git rev-parse --short HEAD)"
|
|
}
|
|
}
|
|
|
|
APPVEYOR_REPO_TAG = $$(APPVEYOR_REPO_TAG)
|
|
APPVEYOR_REPO_COMMIT = $$(APPVEYOR_REPO_COMMIT)
|
|
!isEmpty(APPVEYOR_REPO_COMMIT) {
|
|
isEmpty(APPVEYOR_REPO_TAG) {
|
|
DEFINES += "LC_CONTINUOUS_BUILD=$$system(git rev-parse --short HEAD)"
|
|
VERSION = 0.0.0.1
|
|
QMAKE_TARGET_DESCRIPTION = "LeoCAD Continuous Build $$system(git rev-parse --short HEAD)"
|
|
}
|
|
}
|
|
|
|
TSFILES = resources/leocad_cs.ts resources/leocad_de.ts resources/leocad_en.ts resources/leocad_es.ts resources/leocad_fr.ts resources/leocad_pt.ts resources/leocad_ru.ts resources/leocad_uk.ts resources/leocad_zh_CN.ts
|
|
lrelease.input = TSFILES
|
|
lrelease.output = ${QMAKE_FILE_PATH}/${QMAKE_FILE_BASE}.qm
|
|
lrelease.commands = $$QMAKE_LRELEASE -silent ${QMAKE_FILE_IN} -qm ${QMAKE_FILE_PATH}/${QMAKE_FILE_BASE}.qm
|
|
lrelease.CONFIG += no_link target_predeps
|
|
QMAKE_EXTRA_COMPILERS += lrelease
|
|
|
|
system($$QMAKE_LRELEASE -silent $$TSFILES)
|
|
|
|
unix:!macx {
|
|
TARGET = leocad
|
|
} else {
|
|
TARGET = LeoCAD
|
|
}
|
|
|
|
CONFIG(debug, debug|release) {
|
|
DESTDIR = build/debug
|
|
} else {
|
|
DESTDIR = build/release
|
|
}
|
|
|
|
OBJECTS_DIR = $$DESTDIR/.obj
|
|
MOC_DIR = $$DESTDIR/.moc
|
|
RCC_DIR = $$DESTDIR/.qrc
|
|
UI_DIR = $$DESTDIR/.ui
|
|
|
|
unix:!macx {
|
|
isEmpty(INSTALL_PREFIX):INSTALL_PREFIX = /usr
|
|
isEmpty(BIN_DIR):BIN_DIR = $$INSTALL_PREFIX/bin
|
|
isEmpty(DOCS_DIR):DOCS_DIR = $$INSTALL_PREFIX/share/doc/leocad
|
|
isEmpty(ICON_DIR):ICON_DIR = $$INSTALL_PREFIX/share/icons
|
|
isEmpty(MAN_DIR):MAN_DIR = $$INSTALL_PREFIX/share/man/man1
|
|
isEmpty(DESKTOP_DIR):DESKTOP_DIR = $$INSTALL_PREFIX/share/applications
|
|
isEmpty(MIME_DIR):MIME_DIR = $$INSTALL_PREFIX/share/mime/packages
|
|
isEmpty(APPDATA_DIR):APPDATA_DIR = $$INSTALL_PREFIX/share/metainfo
|
|
|
|
target.path = $$BIN_DIR
|
|
docs.path = $$DOCS_DIR
|
|
docs.files = docs/README.md docs/CREDITS.txt docs/COPYING.txt
|
|
man.path = $$MAN_DIR
|
|
man.files = docs/leocad.1
|
|
desktop.path = $$DESKTOP_DIR
|
|
desktop.files = qt/leocad.desktop
|
|
icons.path = $$ICON_DIR/hicolor
|
|
icons.files += tools/icon/128x128
|
|
icons.files += tools/icon/16x16
|
|
icons.files += tools/icon/24x24
|
|
icons.files += tools/icon/256x256
|
|
icons.files += tools/icon/32x32
|
|
icons.files += tools/icon/48x48
|
|
icons.files += tools/icon/512x512
|
|
icons.files += tools/icon/64x64
|
|
icons.files += tools/icon/scalable
|
|
mime.path = $$MIME_DIR
|
|
mime.files = qt/leocad.xml
|
|
appdata.path = $$APPDATA_DIR
|
|
appdata.files = tools/setup/org.leocad.LeoCAD.appdata.xml
|
|
|
|
INSTALLS += target docs man desktop icons mime appdata
|
|
|
|
!isEmpty(DISABLE_UPDATE_CHECK) {
|
|
DEFINES += LC_DISABLE_UPDATE_CHECK=$$DISABLE_UPDATE_CHECK
|
|
}
|
|
|
|
!isEmpty(LDRAW_LIBRARY_PATH) {
|
|
DEFINES += LC_LDRAW_LIBRARY_PATH=\\\"$$LDRAW_LIBRARY_PATH\\\"
|
|
}
|
|
}
|
|
|
|
macx {
|
|
ICON = resources/leocad.icns
|
|
QMAKE_INFO_PLIST = qt/Info.plist
|
|
|
|
document_icon.files += $$_PRO_FILE_PWD_/resources/leocad_document.icns
|
|
document_icon.path = Contents/Resources
|
|
library.files += $$_PRO_FILE_PWD_/library.bin
|
|
library.path = Contents/Resources
|
|
povray.files += $$_PRO_FILE_PWD_/povray
|
|
povray.path = Contents/MacOS
|
|
|
|
QMAKE_BUNDLE_DATA += document_icon library povray
|
|
DEFINES += LC_DISABLE_UPDATE_CHECK=1
|
|
}
|
|
|
|
ios {
|
|
DEFINES += LC_DISABLE_RENDER_DIALOG=1
|
|
DEFINES += LC_DISABLE_BLENDER=1
|
|
}
|
|
|
|
SOURCES += \
|
|
common/camera.cpp \
|
|
common/group.cpp \
|
|
common/lc_aboutdialog.cpp \
|
|
common/lc_application.cpp \
|
|
common/lc_arraydialog.cpp \
|
|
common/lc_assetloader.cpp \
|
|
common/lc_assettypes.cpp \
|
|
common/lc_blenderpreferences.cpp \
|
|
common/lc_bricklink.cpp \
|
|
common/lc_category.cpp \
|
|
common/lc_categorydialog.cpp \
|
|
common/lc_collapsiblewidget.cpp \
|
|
common/lc_colorlist.cpp \
|
|
common/lc_colorpicker.cpp \
|
|
common/lc_colors.cpp \
|
|
common/lc_commands.cpp \
|
|
common/lc_context.cpp \
|
|
common/lc_doublespinbox.cpp \
|
|
common/lc_edgecolordialog.cpp \
|
|
common/lc_editgroupsdialog.cpp \
|
|
common/lc_file.cpp \
|
|
common/lc_filter.cpp \
|
|
common/lc_findreplacewidget.cpp \
|
|
common/lc_glextensions.cpp \
|
|
common/lc_groupdialog.cpp \
|
|
common/lc_htmldialog.cpp \
|
|
common/lc_http.cpp \
|
|
common/lc_imagedialog.cpp \
|
|
common/lc_instructions.cpp \
|
|
common/lc_instructionsdialog.cpp \
|
|
common/lc_keyframewidget.cpp \
|
|
common/lc_ladderwidget.cpp \
|
|
common/lc_library.cpp \
|
|
common/lc_lxf.cpp \
|
|
common/lc_mainwindow.cpp \
|
|
common/lc_mesh.cpp \
|
|
common/lc_meshloader.cpp \
|
|
common/lc_minifigdialog.cpp \
|
|
common/lc_model.cpp \
|
|
common/lc_modelhistory.cpp \
|
|
common/lc_modellistdialog.cpp \
|
|
common/lc_objectproperty.cpp \
|
|
common/lc_pagesetupdialog.cpp \
|
|
common/lc_partpalettedialog.cpp \
|
|
common/lc_partselectionpopup.cpp \
|
|
common/lc_partselectionwidget.cpp \
|
|
common/lc_piecedata.cpp \
|
|
common/lc_piecemanager.cpp \
|
|
common/lc_previewwidget.cpp \
|
|
common/lc_profile.cpp \
|
|
common/lc_propertieswidget.cpp \
|
|
common/lc_scene.cpp \
|
|
common/lc_selectdialog.cpp \
|
|
common/lc_setsdatabasedialog.cpp \
|
|
common/lc_shortcuts.cpp \
|
|
common/lc_spinnerwidget.cpp \
|
|
common/lc_string.cpp \
|
|
common/lc_stringcache.cpp \
|
|
common/lc_synth.cpp \
|
|
common/lc_texture.cpp \
|
|
common/lc_texturemanager.cpp \
|
|
common/lc_thumbnailmanager.cpp \
|
|
common/lc_timelinewidget.cpp \
|
|
common/lc_traintrack.cpp \
|
|
common/lc_updatedialog.cpp \
|
|
common/lc_view.cpp \
|
|
common/lc_viewmanipulator.cpp \
|
|
common/lc_viewsphere.cpp \
|
|
common/lc_viewwidget.cpp \
|
|
common/lc_zipfile.cpp \
|
|
common/light.cpp \
|
|
common/minifig.cpp \
|
|
common/object.cpp \
|
|
common/piece.cpp \
|
|
common/project.cpp \
|
|
common/texfont.cpp \
|
|
qt/lc_qpreferencesdialog.cpp \
|
|
qt/lc_qpropertiesdialog.cpp \
|
|
qt/lc_qutils.cpp \
|
|
qt/lc_renderdialog.cpp \
|
|
qt/qtmain.cpp
|
|
HEADERS += \
|
|
common/camera.h \
|
|
common/group.h \
|
|
common/lc_aboutdialog.h \
|
|
common/lc_application.h \
|
|
common/lc_arraydialog.h \
|
|
common/lc_assetloader.h \
|
|
common/lc_assettypes.h \
|
|
common/lc_blenderpreferences.h \
|
|
common/lc_bricklink.h \
|
|
common/lc_category.h \
|
|
common/lc_categorydialog.h \
|
|
common/lc_collapsiblewidget.h \
|
|
common/lc_colorlist.h \
|
|
common/lc_colorpicker.h \
|
|
common/lc_colors.h \
|
|
common/lc_commands.h \
|
|
common/lc_context.h \
|
|
common/lc_doublespinbox.h \
|
|
common/lc_edgecolordialog.h \
|
|
common/lc_editgroupsdialog.h \
|
|
common/lc_file.h \
|
|
common/lc_filter.h \
|
|
common/lc_findreplacewidget.h \
|
|
common/lc_glextensions.h \
|
|
common/lc_global.h \
|
|
common/lc_groupdialog.h \
|
|
common/lc_htmldialog.h \
|
|
common/lc_http.h \
|
|
common/lc_imagedialog.h \
|
|
common/lc_instructions.h \
|
|
common/lc_instructionsdialog.h \
|
|
common/lc_keyframewidget.h \
|
|
common/lc_ladderwidget.h \
|
|
common/lc_library.h \
|
|
common/lc_lxf.h \
|
|
common/lc_mainwindow.h \
|
|
common/lc_math.h \
|
|
common/lc_mesh.h \
|
|
common/lc_meshloader.h \
|
|
common/lc_minifigdialog.h \
|
|
common/lc_model.h \
|
|
common/lc_modelhistory.h \
|
|
common/lc_modellistdialog.h \
|
|
common/lc_objecthistory.h \
|
|
common/lc_objectproperty.h \
|
|
common/lc_pagesetupdialog.h \
|
|
common/lc_partpalettedialog.h \
|
|
common/lc_partselectionpopup.h \
|
|
common/lc_partselectionwidget.h \
|
|
common/lc_piecedata.h \
|
|
common/lc_piecemanager.h \
|
|
common/lc_previewwidget.h \
|
|
common/lc_profile.h \
|
|
common/lc_propertieswidget.h \
|
|
common/lc_result.h \
|
|
common/lc_scene.h \
|
|
common/lc_selectdialog.h \
|
|
common/lc_setsdatabasedialog.h \
|
|
common/lc_shortcuts.h \
|
|
common/lc_spinnerwidget.h \
|
|
common/lc_string.h \
|
|
common/lc_stringcache.h \
|
|
common/lc_synth.h \
|
|
common/lc_texture.h \
|
|
common/lc_texturemanager.h \
|
|
common/lc_thumbnailmanager.h \
|
|
common/lc_timelinewidget.h \
|
|
common/lc_traintrack.h \
|
|
common/lc_updatedialog.h \
|
|
common/lc_view.h \
|
|
common/lc_viewmanipulator.h \
|
|
common/lc_viewsphere.h \
|
|
common/lc_viewwidget.h \
|
|
common/lc_zipfile.h \
|
|
common/light.h \
|
|
common/minifig.h \
|
|
common/object.h \
|
|
common/piece.h \
|
|
common/project.h \
|
|
common/texfont.h \
|
|
qt/lc_qpreferencesdialog.h \
|
|
qt/lc_qpropertiesdialog.h \
|
|
qt/lc_qutils.h \
|
|
qt/lc_renderdialog.h
|
|
FORMS += \
|
|
common/lc_aboutdialog.ui \
|
|
common/lc_arraydialog.ui \
|
|
common/lc_categorydialog.ui \
|
|
common/lc_editgroupsdialog.ui \
|
|
common/lc_groupdialog.ui \
|
|
common/lc_htmldialog.ui \
|
|
common/lc_imagedialog.ui \
|
|
common/lc_minifigdialog.ui \
|
|
common/lc_modellistdialog.ui \
|
|
common/lc_pagesetupdialog.ui \
|
|
common/lc_partpalettedialog.ui \
|
|
common/lc_selectdialog.ui \
|
|
common/lc_setsdatabasedialog.ui \
|
|
common/lc_updatedialog.ui \
|
|
qt/lc_qpropertiesdialog.ui \
|
|
qt/lc_qpreferencesdialog.ui \
|
|
qt/lc_renderdialog.ui
|
|
OTHER_FILES +=
|
|
RESOURCES += leocad.qrc resources/stylesheet/stylesheet.qrc
|
|
|
|
!win32 {
|
|
TRANSLATIONS = resources/leocad_cs.ts resources/leocad_de.ts resources/leocad_en.ts resources/leocad_es.ts resources/leocad_fr.ts resources/leocad_pt.ts resources/leocad_ru.ts resources/leocad_uk.ts resources/leocad_zh_CN.ts
|
|
}
|