mirror of
https://github.com/leozide/leocad
synced 2024-12-26 21:58:44 +01:00
334 lines
9 KiB
Prolog
334 lines
9 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 {
|
|
RC_ICONS = resources/leocad.ico
|
|
VERSION = 23.3.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
|
|
} else {
|
|
PRECOMPILED_HEADER = common/lc_global.h
|
|
LIBS += -lz
|
|
QMAKE_CXXFLAGS_WARN_ON += -Wno-unused-parameter
|
|
}
|
|
|
|
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_fr.ts resources/leocad_pt.ts resources/leocad_de.ts resources/leocad_uk.ts resources/leocad_cs.ts resources/leocad_es.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/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
|
|
}
|
|
|
|
SOURCES += \
|
|
common/camera.cpp \
|
|
common/group.cpp \
|
|
common/image.cpp \
|
|
common/light.cpp \
|
|
common/minifig.cpp \
|
|
common/object.cpp \
|
|
common/piece.cpp \
|
|
common/pieceinf.cpp \
|
|
common/project.cpp \
|
|
common/texfont.cpp \
|
|
common/lc_aboutdialog.cpp \
|
|
common/lc_application.cpp \
|
|
common/lc_arraydialog.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_edgecolordialog.cpp \
|
|
common/lc_file.cpp \
|
|
common/lc_findreplacewidget.cpp \
|
|
common/lc_glextensions.cpp \
|
|
common/lc_groupdialog.cpp \
|
|
common/lc_http.cpp \
|
|
common/lc_instructions.cpp \
|
|
common/lc_instructionsdialog.cpp \
|
|
common/lc_keyframewidget.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_modellistdialog.cpp \
|
|
common/lc_objectproperty.cpp \
|
|
common/lc_pagesetupdialog.cpp \
|
|
common/lc_partpalettedialog.cpp \
|
|
common/lc_partselectionwidget.cpp \
|
|
common/lc_previewwidget.cpp \
|
|
common/lc_profile.cpp \
|
|
common/lc_propertieswidget.cpp \
|
|
common/lc_scene.cpp \
|
|
common/lc_shortcuts.cpp \
|
|
common/lc_stringcache.cpp \
|
|
common/lc_synth.cpp \
|
|
common/lc_texture.cpp \
|
|
common/lc_thumbnailmanager.cpp \
|
|
common/lc_timelinewidget.cpp \
|
|
common/lc_view.cpp \
|
|
common/lc_viewmanipulator.cpp \
|
|
common/lc_viewsphere.cpp \
|
|
common/lc_viewwidget.cpp \
|
|
common/lc_zipfile.cpp \
|
|
qt/system.cpp \
|
|
qt/qtmain.cpp \
|
|
qt/lc_qeditgroupsdialog.cpp \
|
|
qt/lc_qselectdialog.cpp \
|
|
qt/lc_qpropertiesdialog.cpp \
|
|
qt/lc_qhtmldialog.cpp \
|
|
qt/lc_qpreferencesdialog.cpp \
|
|
qt/lc_qimagedialog.cpp \
|
|
qt/lc_qupdatedialog.cpp \
|
|
qt/lc_qutils.cpp \
|
|
qt/lc_renderdialog.cpp \
|
|
qt/lc_setsdatabasedialog.cpp
|
|
HEADERS += \
|
|
common/camera.h \
|
|
common/group.h \
|
|
common/image.h \
|
|
common/light.h \
|
|
common/minifig.h \
|
|
common/object.h \
|
|
common/piece.h \
|
|
common/pieceinf.h \
|
|
common/project.h \
|
|
common/texfont.h \
|
|
common/lc_aboutdialog.h \
|
|
common/lc_application.h \
|
|
common/lc_arraydialog.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_edgecolordialog.h \
|
|
common/lc_file.h \
|
|
common/lc_findreplacewidget.h \
|
|
common/lc_glextensions.h \
|
|
common/lc_global.h \
|
|
common/lc_groupdialog.h \
|
|
common/lc_http.h \
|
|
common/lc_instructions.h \
|
|
common/lc_instructionsdialog.h \
|
|
common/lc_keyframewidget.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_modellistdialog.h \
|
|
common/lc_objectproperty.h \
|
|
common/lc_pagesetupdialog.h \
|
|
common/lc_partselectionwidget.h \
|
|
common/lc_previewwidget.h \
|
|
common/lc_profile.h \
|
|
common/lc_propertieswidget.h \
|
|
common/lc_scene.h \
|
|
common/lc_shortcuts.h \
|
|
common/lc_stringcache.h \
|
|
common/lc_synth.h \
|
|
common/lc_texture.h \
|
|
common/lc_thumbnailmanager.h \
|
|
common/lc_timelinewidget.h \
|
|
common/lc_view.h \
|
|
common/lc_viewmanipulator.h \
|
|
common/lc_viewsphere.h \
|
|
common/lc_viewwidget.h \
|
|
common/lc_zipfile.h \
|
|
qt/lc_qeditgroupsdialog.h \
|
|
qt/lc_qselectdialog.h \
|
|
qt/lc_qpropertiesdialog.h \
|
|
qt/lc_qhtmldialog.h \
|
|
qt/lc_qpreferencesdialog.h \
|
|
qt/lc_qimagedialog.h \
|
|
qt/lc_qupdatedialog.h \
|
|
qt/lc_qutils.h \
|
|
qt/lc_renderdialog.h \
|
|
qt/lc_setsdatabasedialog.h \
|
|
common/lc_partpalettedialog.h
|
|
FORMS += \
|
|
qt/lc_qeditgroupsdialog.ui \
|
|
qt/lc_qselectdialog.ui \
|
|
qt/lc_qpropertiesdialog.ui \
|
|
qt/lc_qhtmldialog.ui \
|
|
qt/lc_qpreferencesdialog.ui \
|
|
qt/lc_qimagedialog.ui \
|
|
qt/lc_qupdatedialog.ui \
|
|
qt/lc_renderdialog.ui \
|
|
qt/lc_setsdatabasedialog.ui \
|
|
common/lc_aboutdialog.ui \
|
|
common/lc_arraydialog.ui \
|
|
common/lc_categorydialog.ui \
|
|
common/lc_groupdialog.ui \
|
|
common/lc_minifigdialog.ui \
|
|
common/lc_modellistdialog.ui \
|
|
common/lc_pagesetupdialog.ui \
|
|
common/lc_partpalettedialog.ui
|
|
OTHER_FILES +=
|
|
RESOURCES += leocad.qrc resources/stylesheet/stylesheet.qrc
|
|
|
|
!win32 {
|
|
TRANSLATIONS = resources/leocad_pt.ts resources/leocad_fr.ts resources/leocad_de.ts resources/leocad_uk.ts resources/leocad_cs.ts resources/leocad_es.ts
|
|
}
|