katie/src/gui/CMakeLists.txt
Ivailo Monev 20efcc02c9 headers compat
Signed-off-by: Ivailo Monev <xakepa10@laimg.moc>
2019-12-19 18:57:26 +00:00

512 lines
12 KiB
CMake

# add_definitions()
set(EXTRA_GUI_LIBS KtCore KtXml ${FREETYPE_LIBRARIES} ${X11_LIBRARIES} ${X11_X11_LIB} ${X11_Xt_LIB} ${X11_Xi_LIB})
set(GUI_PUBLIC_HEADERS
${GUI_PUBLIC_HEADERS}
QPropertyAnimation
QPauseAnimation
QAnimationGroup
QVariantAnimation
QSequentialAnimationGroup
QParallelAnimationGroup
QAbstractAnimation
QAbstractButton
QAbstractItemDelegate
QAbstractItemView
QAbstractPageSetupDialog
QAbstractPrintDialog
QAbstractProxyModel
QAbstractScrollArea
QAbstractSlider
QAbstractSpinBox
QAbstractTextDocumentLayout
QAccessible
QAccessibleBridge
QAccessibleObject
QAccessiblePlugin
QAccessibleTextInterface
QAccessibleWidget
QAccessibleWidgetEx
QAction
QActionGroup
QApplication
QBitmap
QBoxLayout
QBrush
QBrushData
QButtonGroup
QCalendarWidget
QCheckBox
QCleanlooksStyle
QClipboard
QClipboardEvent
QColor
QColorDialog
QColormap
QColumnView
QComboBox
QCommandLinkButton
QCommonStyle
QCompleter
QConicalGradient
QCursor
QDataWidgetMapper
QDateTimeEdit
QDesktopServices
QDesktopWidget
QDial
QDialog
QDialogButtonBox
QDirModel
QDockWidget
QDrag
QDragResponseEvent
QErrorMessage
QFileDialog
QFileIconProvider
QFileSystemModel
QFocusFrame
QFont
QFontComboBox
QFontDatabase
QFontDialog
QFontInfo
QFontMetrics
QFormLayout
QFrame
QGenericMatrix
QGesture
QGestureRecognizer
QGradientStop
QGradientStops
QGraphicsAnchor
QGraphicsAnchorLayout
QGraphicsBlurEffect
QGraphicsColorizeEffect
QGraphicsDropShadowEffect
QGraphicsEffect
QGraphicsEllipseItem
QGraphicsGridLayout
QGraphicsItem
QGraphicsItemAnimation
QGraphicsItemGroup
QGraphicsLayout
QGraphicsLayoutItem
QGraphicsLinearLayout
QGraphicsLineItem
QGraphicsOpacityEffect
QGraphicsPathItem
QGraphicsPixmapItem
QGraphicsPolygonItem
QGraphicsProxyWidget
QGraphicsRectItem
QGraphicsRotation
QGraphicsScale
QGraphicsScene
QGraphicsSimpleTextItem
QGraphicsView
QGraphicsWidget
QGridLayout
QGroupBox
QHeaderView
QIcon
QIconEngine
QIconEngineFactoryInterface
QIconEngineFactoryInterfaceV2
QIconEnginePlugin
QIconEnginePluginV2
QIdentityProxyModel
QImage
QImageIOHandler
QImageIOHandlerFactoryInterface
QImageReader
QImageWriter
QInputDialog
QItemDelegate
QItemEditorCreator
QItemEditorCreatorBase
QItemEditorFactory
QItemSelectionModel
QKeySequence
QLabel
QLayout
QLayoutItem
QLCDNumber
QLineEdit
QListView
QListWidget
QMainWindow
QMatrix
QMatrix2x2
QMatrix2x3
QMatrix2x4
QMatrix3x2
QMatrix3x3
QMatrix3x4
QMatrix4x2
QMatrix4x3
QMatrix4x4
QMdiArea
QMdiSubWindow
QMenu
QMenuBar
QMotifStyle
QMovie
QPageSetupDialog
QPaintDevice
QPaintEngine
QPaintEngineState
QPainter
QPainterPath
QPainterPathPrivate
QPainterPathStroker
QPalette
QPanGesture
QPen
QPixmap
QPixmapCache
QPlainTextDocumentLayout
QPlainTextEdit
QPlastiqueStyle
QPolygon
QPrintDialog
QPrintEngine
QPrinter
QPrinterInfo
QPrintPreviewDialog
QPrintPreviewWidget
QProgressBar
QProgressDialog
QProxyModel
QProxyStyle
QPushButton
QQuaternion
QRadialGradient
QRadioButton
QRegion
QRgb
QRubberBand
QScrollArea
QScrollBar
QSessionManager
QShortcut
QSizeGrip
QSizePolicy
QSlider
QSortFilterProxyModel
QSpinBox
QSplashScreen
QSplitter
QSplitterHandle
QStackedLayout
QStackedWidget
QStandardItemEditorCreator
QStandardItemModel
QStaticText
QStatusBar
QStatusTipEvent
QStringListModel
QStyle
QStyledItemDelegate
QStyleFactory
QStyleFactoryInterface
QStyleHintReturn
QStyleHintReturnMask
QStyleHintReturnVariant
QStyleOption
QStyleOptionComboBox
QStyleOptionGroupBox
QStyleOptionSizeGrip
QStyleOptionTabBarBase
QStyleOptionTabBarBaseV2
QStyleOptionTab
QStyleOptionTabV2
QStyleOptionTabV3
QStyleOptionToolBar
QStyleOptionToolBox
QStyleOptionToolBoxV2
QStylePainter
QStylePlugin
QSwipeGesture
QSyntaxHighlighter
QSystemTrayIcon
QTabBar
QTableView
QTableWidget
QTableWidgetItem
QTableWidgetSelectionRange
QTabWidget
QTapAndHoldGesture
QTapGesture
QtEvents
QTextBlockGroup
QTextBlockUserData
QTextBrowser
QTextCursor
QTextDocument
QTextDocumentFragment
QTextDocumentWriter
QTextEdit
QTextFormat
QTextFragment
QTextFrameFormat
QTextFrameLayoutData
QTextImageFormat
QTextInlineObject
QTextItem
QTextLayout
QTextLength
QTextList
QTextObject
QTextObjectInterface
QTextOption
QTextTable
QTextTableCell
QTextTableCellFormat
QTileRules
QToolBar
QToolBox
QToolButton
QToolTip
QTransform
QTreeView
QTreeWidget
QTreeWidgetItemIterator
QUndoGroup
QUndoStack
QUndoView
QUnixPrintWidget
QUpdateLaterEvent
QValidator
QVector2D
QVector3D
QVector4D
QWhatsThis
QWhatsThisClickedEvent
QWidget
QMessageBox
QWidgetAction
QWidgetData
QWidgetItemV2
QWidgetMapper
QWidgetSet
QWindowsStyle
QWindowStateChangeEvent
QWizard
QWizardPage
QWorkspace
QGuiPlatformPlugin
# those are aliases
QX11Info
QX11EmbedContainer
QX11EmbedWidget
# mixed
QAccessibleValueInterface
QAnimationDriver
QUndoCommand
QPolygonF
QTextLine
QTextBlock
QTextBlockFormat
QListWidgetItem
QTreeWidgetItem
QStandardItem
QActionEvent
QShortcutEvent
QCloseEvent
QResizeEvent
QMoveEvent
QShowEvent
QHideEvent
QFocusEvent
QMouseEvent
QKeyEvent
QWheelEvent
QTouchEvent
QHoverEvent
QDragEnterEvent
QDragLeaveEvent
QDragMoveEvent
QPaintEvent
QHelpEvent
QDropEvent
QContextMenuEvent
QGraphicsSceneEvent
QGraphicsSceneHelpEvent
QGraphicsSceneMoveEvent
QGraphicsSceneMouseEvent
QGraphicsSceneWheelEvent
QGraphicsSceneResizeEvent
QGraphicsSceneHoverEvent
QGraphicsSceneContextMenuEvent
QGraphicsSceneDragDropEvent
QGraphicsTextItem
QGraphicsObject
QStyleOptionTitleBar
QStyleOptionGraphicsItem
QStyleOptionButton
QStyleOptionFrame
QStyleOptionFrameV2
QStyleOptionFrameV3
QStyleOptionViewItem
QStyleOptionViewItemV2
QStyleOptionViewItemV3
QStyleOptionViewItemV4
QStyleOptionProgressBar
QStyleOptionProgressBarV2
QStyleOptionDockWidget
QStyleOptionDockWidgetV2
QStyleOptionFocusRect
QStyleOptionMenuItem
QStyleOptionTabWidgetFrame
QStyleOptionTabWidgetFrameV2
QItemSelection
QIntValidator
QFontMetricsF
QStyleOptionSlider
QStyleOptionToolButton
QDoubleValidator
QTextFrame
QTextListFormat
QTextCharFormat
QTextTableFormat
QSpacerItem
QVBoxLayout
QHBoxLayout
QDoubleSpinBox
QLinearGradient
QGradient
# pure aliases, but required by UI generator
QTimeEdit
QDateEdit
)
include(accessible/accessible.cmake)
include(animation/animation.cmake)
include(dialogs/dialogs.cmake)
include(effects/effects.cmake)
include(graphicsview/graphicsview.cmake)
include(image/image.cmake)
include(itemviews/itemviews.cmake)
include(kernel/kernel.cmake)
include(math3d/math3d.cmake)
include(painting/painting.cmake)
include(styles/styles.cmake)
include(text/text.cmake)
include(util/util.cmake)
include(widgets/widgets.cmake)
include_directories(
${CMAKE_BINARY_DIR}/include
${CMAKE_BINARY_DIR}/privateinclude
${CMAKE_BINARY_DIR}/include/QtCore
${CMAKE_BINARY_DIR}/privateinclude/QtCore
${CMAKE_BINARY_DIR}/include/QtXml
${CMAKE_BINARY_DIR}/privateinclude/QtXml
${CMAKE_BINARY_DIR}/include/QtGui
${CMAKE_BINARY_DIR}/privateinclude/QtGui
${FREETYPE_INCLUDE_DIRS}
${X11_INCLUDE_DIR}
${ICU_INCLUDES}
)
# keep in sync with the top-level CMake file, only libraries setup is needed here
foreach(x11ext Xshape Xinerama Xrandr Xrender Xfixes Xcursor Xinput Xext)
if(X11_${x11ext}_FOUND AND X11_${x11ext}_LIB)
set(EXTRA_GUI_LIBS
${EXTRA_GUI_LIBS}
${X11_${x11ext}_LIB}
)
endif()
endforeach()
if(WITH_NIS AND NIS_FOUND)
set(EXTRA_GUI_LIBS
${EXTRA_GUI_LIBS}
${NIS_LIBRARIES}
)
include_directories(${NIS_INCLUDES})
endif()
if(WITH_NSL AND NSL_FOUND)
set(EXTRA_GUI_LIBS
${EXTRA_GUI_LIBS}
${NSL_LIBRARIES}
)
include_directories(${NSL_INCLUDES})
endif()
set(GUI_HEADERS
${GUI_HEADERS}
${CMAKE_CURRENT_SOURCE_DIR}/qguicommon_p.h
)
# anything that includes qt_x11_p.h is known to break all-in-one build
katie_allinone_exclude(
${CMAKE_CURRENT_SOURCE_DIR}/dialogs/qdialog.cpp
${CMAKE_CURRENT_SOURCE_DIR}/dialogs/qpagesetupdialog_unix.cpp
${CMAKE_CURRENT_SOURCE_DIR}/dialogs/qprintdialog_unix.cpp
${CMAKE_CURRENT_SOURCE_DIR}/graphicsview/qgraphicsitem.cpp
${CMAKE_CURRENT_SOURCE_DIR}/graphicsview/qgraphicsscene.cpp
${CMAKE_CURRENT_SOURCE_DIR}/graphicsview/qgraphicsview.cpp
${CMAKE_CURRENT_SOURCE_DIR}/image/qpixmap.cpp
${CMAKE_CURRENT_SOURCE_DIR}/image/qpixmap_x11.cpp
${CMAKE_CURRENT_SOURCE_DIR}/itemviews/qitemeditorfactory.cpp
${CMAKE_CURRENT_SOURCE_DIR}/kernel/qapplication.cpp
${CMAKE_CURRENT_SOURCE_DIR}/kernel/qapplication_x11.cpp
${CMAKE_CURRENT_SOURCE_DIR}/kernel/qclipboard_x11.cpp
${CMAKE_CURRENT_SOURCE_DIR}/kernel/qcursor_x11.cpp
${CMAKE_CURRENT_SOURCE_DIR}/kernel/qdesktopwidget_x11.cpp
${CMAKE_CURRENT_SOURCE_DIR}/kernel/qdnd_x11.cpp
${CMAKE_CURRENT_SOURCE_DIR}/kernel/qeventdispatcher_x11.cpp
${CMAKE_CURRENT_SOURCE_DIR}/kernel/qkeymapper_x11.cpp
${CMAKE_CURRENT_SOURCE_DIR}/kernel/qmotifdnd_x11.cpp
${CMAKE_CURRENT_SOURCE_DIR}/kernel/qwidget_x11.cpp
${CMAKE_CURRENT_SOURCE_DIR}/kernel/qx11embed_x11.cpp
${CMAKE_CURRENT_SOURCE_DIR}/kernel/qx11info_x11.cpp
${CMAKE_CURRENT_SOURCE_DIR}/painting/qcolor.cpp
${CMAKE_CURRENT_SOURCE_DIR}/painting/qcolormap_x11.cpp
${CMAKE_CURRENT_SOURCE_DIR}/painting/qpaintdevice_x11.cpp
${CMAKE_CURRENT_SOURCE_DIR}/painting/qpaintengine_x11.cpp
${CMAKE_CURRENT_SOURCE_DIR}/painting/qprinter.cpp
${CMAKE_CURRENT_SOURCE_DIR}/painting/qregion_x11.cpp
${CMAKE_CURRENT_SOURCE_DIR}/painting/qwindowsurface_raster.cpp
${CMAKE_CURRENT_SOURCE_DIR}/painting/qwindowsurface_x11.cpp
${CMAKE_CURRENT_SOURCE_DIR}/text/qfont.cpp
${CMAKE_CURRENT_SOURCE_DIR}/text/qfontengine_x11.cpp
${CMAKE_CURRENT_SOURCE_DIR}/text/qfont_x11.cpp
${CMAKE_CURRENT_SOURCE_DIR}/text/qharfbuzz.cpp
${CMAKE_CURRENT_SOURCE_DIR}/text/qtextformat.cpp
${CMAKE_CURRENT_SOURCE_DIR}/util/qsystemtrayicon_x11.cpp
${CMAKE_CURRENT_SOURCE_DIR}/widgets/qsizegrip.cpp
${CMAKE_CURRENT_SOURCE_DIR}/widgets/qtextedit.cpp
${CMAKE_SOURCE_DIR}/src/3rdparty/harfbuzz/src/harfbuzz-shaper-all.cpp
)
katie_generate_misc("${GUI_HEADERS}" QtGui)
katie_generate_public("${GUI_PUBLIC_HEADERS}" QtGui)
katie_generate_package(KtGui "KtCore KtXml")
katie_setup_target(KtGui ${GUI_SOURCES} ${GUI_HEADERS})
add_library(KtGui ${KATIE_TYPE} ${KtGui_SOURCES})
target_link_libraries(KtGui ${EXTRA_GUI_LIBS})
set_target_properties(KtGui PROPERTIES
VERSION ${KATIE_MAJOR}.${KATIE_MINOR}
SOVERSION ${KATIE_VERSION}
EXPORT_NAME Gui
)
install(
TARGETS KtGui
EXPORT KatieLibraryTargets ${INSTALL_TARGETS_DEFAULT_ARGS}
DESTINATION ${KATIE_LIBRARIES_RELATIVE}
COMPONENT Runtime
)
install(
DIRECTORY ${CMAKE_BINARY_DIR}/include/QtGui
DESTINATION ${KATIE_HEADERS_RELATIVE}
COMPONENT Devel
)
katie_optimize_headers(${KATIE_HEADERS_FULL}/QtGui)