add_definitions(-DQT_BUILD_GUI_LIB -DQ_INTERNAL_QAPP_SRC) set(EXTRA_GUI_LIBS KtCore) set(GUI_PUBLIC_HEADERS ${GUI_PUBLIC_HEADERS} QAbstractButton QAbstractItemDelegate QAbstractItemView QAbstractPageSetupDialog QAbstractPrintDialog QAbstractProxyModel QAbstractScrollArea QAbstractSlider QAbstractSpinBox QAbstractTextDocumentLayout QAccessible QAccessibleBridge QAccessibleObject QAccessiblePlugin QAccessibleTextInterface QAccessibleValueInterface QAccessibleWidget QAccessibleWidgetEx QAction QActionGroup QApplication QAuthDevice QBitmap QBoxLayout QBrush QBrushData QButtonGroup QCalendarWidget QCDEStyle 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 QFileOpenEvent QFileSystemModel QFocusFrame QFont QFontComboBox QFontDatabase QFontDialog QFontInfo QFontMetrics QFormLayout QFrame QGenericMatrix QGesture QGestureRecognizer QGlyphRun 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 QGraphicsSceneEvent QGraphicsSceneHelpEvent QGraphicsSceneMoveEvent QGraphicsSimpleTextItem QGraphicsView QGraphicsWidget QGridLayout QGroupBox QGtkStyle QHeaderView QIcon QIconDragEvent QIconEngine QIconEngineFactoryInterface QIconEngineFactoryInterfaceV2 QIconEnginePlugin QIconEnginePluginV2 QIdentityProxyModel QImage QImageIOHandler QImageIOHandlerFactoryInterface QImageReader QImageTextKeyLang QImageWriter QInputContext QInputContextFactory QInputContextFactoryInterface QInputContextPlugin QInputDialog QInputMethodEvent QItemDelegate QItemEditorCreator QItemEditorCreatorBase QItemEditorFactory QItemSelectionModel QKeyEventTransition QKeySequence QLabel QLayout QLayoutItem QLCDNumber QLineEdit QListView QListWidget QMacCocoaViewContainer QMacMime QMacNativeWidget QMacPasteboardMime QMainWindow QMatrix QMatrix2x2 QMatrix2x3 QMatrix2x4 QMatrix3x2 QMatrix3x3 QMatrix3x4 QMatrix4x2 QMatrix4x3 QMatrix4x4 QMdiArea QMdiSubWindow QMenu QMenuBar QMotifStyle QMouseDriverFactory QMouseDriverPlugin QMouseEventTransition QMovie QPageSetupDialog QPaintDevice QPaintEngine QPaintEngineState QPainter QPainterPath QPainterPathPrivate QPainterPathStroker QPalette QPanGesture QPen QPicture QPixmap QPixmapCache QPlainTextDocumentLayout QPlainTextEdit QPlastiqueStyle QPlatformCursor QPlatformCursorImage QPlatformCursorPrivate QPlatformEventLoopIntegration QPlatformFontDatabase QPlatformGLContext QPlatformIntegration QPlatformIntegrationFactoryInterface QPlatformIntegrationPlugin QPlatformNativeInterface QPlatformScreen QPolygon QPoolEntry QPrintDialog QPrintEngine QPrinter QPrinterInfo QPrintPreviewDialog QPrintPreviewWidget QProgressBar QProgressDialog QProxyModel QProxyScreen QProxyScreenCursor QProxyStyle QPushButton QQnxMouseHandler QQnxScreen QQuaternion QRadialGradient QRadioButton QRawFont QRegion QRgb QRubberBand QScreen QScreenCursor QScreenDriverFactory QScreenDriverFactoryInterface QScreenDriverPlugin QScrollArea QScrollBar QSessionManager QShortcut QSizeGrip QSizePolicy QSlider QSortFilterProxyModel QSound QSpinBox QSplashScreen QSplitter QSplitterHandle QStackedLayout QStackedWidget QStandardItemEditorCreator QStandardItemModel QStaticText QStatusBar QStatusTipEvent QStringListModel QStyle QStyledItemDelegate QStyleFactory QStyleFactoryInterface QStyleHintReturn QStyleHintReturnMask QStyleHintReturnVariant QStyleOption QStyleOptionComboBox QStyleOptionDockWidget QStyleOptionDockWidgetV2 QStyleOptionGroupBox QStyleOptionProgressBar QStyleOptionSizeGrip QStyleOptionTab QStyleOptionTabBarBase QStyleOptionTabBarBaseV2 QStyleOptionTabV2 QStyleOptionTabV3 QStyleOptionTabWidgetFrame QStyleOptionTabWidgetFrameV2 QStyleOptionToolBar QStyleOptionToolBox QStyleOptionToolBoxV2 QStylePainter QStylePlugin QSupportedWritingSystems QSwipeGesture QSymbianEvent QSymbianGraphicsSystemHelper QSyntaxHighlighter QSystemTrayIcon QTabBar QTabletEvent QTableView QTableWidget QTableWidgetItem QTableWidgetSelectionRange QTabWidget QTapAndHoldGesture QTapGesture QtEvents QTextBlockFormat 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 QToolBarChangeEvent QToolBox QToolButton QToolTip QTransform QTransformedScreen QTransportAuth QTreeView QTreeWidget QTreeWidgetItemIterator QUndoGroup QUndoStack QUndoView QUnixPrintWidget QUpdateLaterEvent QValidator QVector2D QVector3D QVector4D QVFbHeader QVFbKeyboardHandler QVFbKeyData QVFbMouseHandler QVFbScreen QWhatsThis QWhatsThisClickedEvent QWidget QMessageBox QWidgetAction QWidgetData QWidgetItemV2 QWidgetMapper QWidgetSet QWindowsCEStyle QWindowsMime QWindowsMobileStyle QWindowsStyle QWindowStateChangeEvent QWindowsVistaStyle QWindowsXPStyle QWindowSystemInterface QWizard QWizardPage QWorkspace # those are aliases QX11Info QX11EmbedContainer QX11EmbedWidget QMacStyle # mixed QTextBlock QListWidgetItem QTreeWidgetItem QStandardItem QCloseEvent QResizeEvent QShowEvent QMouseEvent QKeyEvent QWheelEvent QTouchEvent QDragEnterEvent QItemSelection QIntValidator QFontMetricsF QStyleOptionSlider QDoubleValidator QTextFrame QTextListFormat QTextCharFormat QSpacerItem QVBoxLayout QHBoxLayout QDoubleSpinBox # 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(egl/egl.cmake) include(graphicsview/graphicsview.cmake) include(image/image.cmake) include(inputmethod/inputmethod.cmake) include(itemviews/itemviews.cmake) include(kernel/kernel.cmake) include(math3d/math3d.cmake) include(painting/painting.cmake) include(statemachine/statemachine.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/QtGui ${CMAKE_BINARY_DIR}/privateinclude/QtGui ${CMAKE_CURRENT_SOURCE_DIR}/accessible ${CMAKE_CURRENT_SOURCE_DIR}/animation ${CMAKE_CURRENT_SOURCE_DIR}/dialogs ${CMAKE_CURRENT_SOURCE_DIR}/effects ${CMAKE_CURRENT_SOURCE_DIR}/egl ${CMAKE_CURRENT_SOURCE_DIR}/graphicsview ${CMAKE_CURRENT_SOURCE_DIR}/image ${CMAKE_CURRENT_SOURCE_DIR}/inputmethod ${CMAKE_CURRENT_SOURCE_DIR}/itemviews ${CMAKE_CURRENT_SOURCE_DIR}/kernel ${CMAKE_CURRENT_SOURCE_DIR}/math3d ${CMAKE_CURRENT_SOURCE_DIR}/painting ${CMAKE_CURRENT_SOURCE_DIR}/statemachine ${CMAKE_CURRENT_SOURCE_DIR}/styles ${CMAKE_CURRENT_SOURCE_DIR}/text ${CMAKE_CURRENT_SOURCE_DIR}/util ${CMAKE_CURRENT_SOURCE_DIR}/widgets ${CMAKE_CURRENT_SOURCE_DIR}/mac ${CMAKE_CURRENT_BINARY_DIR}/accessible ${CMAKE_CURRENT_BINARY_DIR}/animation ${CMAKE_CURRENT_BINARY_DIR}/dialogs ${CMAKE_CURRENT_BINARY_DIR}/effects ${CMAKE_CURRENT_BINARY_DIR}/egl ${CMAKE_CURRENT_BINARY_DIR}/graphicsview ${CMAKE_CURRENT_BINARY_DIR}/image ${CMAKE_CURRENT_BINARY_DIR}/inputmethod ${CMAKE_CURRENT_BINARY_DIR}/itemviews ${CMAKE_CURRENT_BINARY_DIR}/kernel ${CMAKE_CURRENT_BINARY_DIR}/math3d ${CMAKE_CURRENT_BINARY_DIR}/painting ${CMAKE_CURRENT_BINARY_DIR}/statemachine ${CMAKE_CURRENT_BINARY_DIR}/styles ${CMAKE_CURRENT_BINARY_DIR}/text ${CMAKE_CURRENT_BINARY_DIR}/util ${CMAKE_CURRENT_BINARY_DIR}/widgets ${CMAKE_CURRENT_BINARY_DIR}/mac ${CMAKE_SOURCE_DIR}/src/core/tools ) # keep in sync with the top-level CMake file, only libraries setup is needed here if(WITH_X11 AND X11_FOUND) set(EXTRA_GUI_LIBS ${EXTRA_GUI_LIBS} ${X11_LIBRARIES} ${X11_X11_LIB} ${X11_Xt_LIB} ${X11_Xi_LIB} ) include_directories(${X11_INCLUDE_DIR}) # TODO: xim foreach(x11ext Xshape Xinerama Xrandr Xrender Xfixes Xcursor Xinput Xkbfile Xext) if(X11_${x11ext}_FOUND AND X11_${x11ext}_LIB) set(EXTRA_GUI_LIBS ${EXTRA_GUI_LIBS} ${X11_${x11ext}_LIB} ) endif() endforeach() endif() if(WITH_NIS AND NIS_FOUND) set(EXTRA_GUI_LIBS ${EXTRA_GUI_LIBS} ${NIS_LIBRARIES} ) include_directories(${NIS_INCLUDES}) endif() if(NOT WITH_ZLIB OR NOT ZLIB_FOUND) set(GUI_SOURCES ${GUI_SOURCES} ${CMAKE_SOURCE_DIR}/src/3rdparty/miniz/miniz.c ) include_directories(${CMAKE_SOURCE_DIR}/src/3rdparty/miniz) endif() katie_generate_misc("${GUI_HEADERS}" QtGui) katie_generate_public("${GUI_PUBLIC_HEADERS}" QtGui) katie_generate_package(KtGui "KtCore") katie_setup_target(KtGui ${GUI_SOURCES} ${GUI_HEADERS}) katie_setup_paths() # those are set after katie_setup_target() because they are known to cause # trouble for all-in-one build if(WITH_HARFBUZZ AND HARFBUZZ_FOUND) set(EXTRA_GUI_LIBS ${EXTRA_GUI_LIBS} ${HARFBUZZ_LIBRARIES} ) include_directories(${HARFBUZZ_INCLUDE_DIRS}) else() # TODO: move to main CMakeLists? add_definitions(-DHB_EXPORT=Q_CORE_EXPORT) set(KtGui_SOURCES ${KtGui_SOURCES} ${CMAKE_SOURCE_DIR}/src/3rdparty/harfbuzz/src/harfbuzz-buffer.c ${CMAKE_SOURCE_DIR}/src/3rdparty/harfbuzz/src/harfbuzz-gdef.c ${CMAKE_SOURCE_DIR}/src/3rdparty/harfbuzz/src/harfbuzz-gsub.c ${CMAKE_SOURCE_DIR}/src/3rdparty/harfbuzz/src/harfbuzz-gpos.c ${CMAKE_SOURCE_DIR}/src/3rdparty/harfbuzz/src/harfbuzz-impl.c ${CMAKE_SOURCE_DIR}/src/3rdparty/harfbuzz/src/harfbuzz-open.c ${CMAKE_SOURCE_DIR}/src/3rdparty/harfbuzz/src/harfbuzz-stream.c ${CMAKE_SOURCE_DIR}/src/3rdparty/harfbuzz/src/harfbuzz-shaper-all.cpp ${CMAKE_SOURCE_DIR}/src/gui/text/qharfbuzz.cpp ) include_directories( ${CMAKE_SOURCE_DIR}/src/3rdparty/harfbuzz/src ) endif() 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 ${QT_LIBRARIES_PATH} ) install( DIRECTORY ${CMAKE_BINARY_DIR}/include/QtGui DESTINATION ${QT_HEADERS_PATH} COMPONENT Devel ) katie_optimize_headers(${QT_HEADERS_PATH}/QtGui)