endif()
endfunction()
+# a function to instruct katie_setup_target() which sources to exclude from the
+# all-in-one source file
+macro(KATIE_ALLINONE_EXCLUDE ARG1)
+ set_source_files_properties(${ARG1} ${ARGN} PROPERTIES ALLINONE_EXCLUDE TRUE)
+endmacro()
+
# a function to create an array of source files for a target while taking into
# account all-in-one target build setting up proper dependency for the
# moc/uic/rcc generated resources
if(NOT KATIE_ALLINONE)
set(filteredsources)
foreach(srcstring ${ARGN})
- get_filename_component(srcname ${srcstring} EXT)
- if(NOT "${srcname}" MATCHES "(.qrc|.ui)")
+ get_filename_component(srcext ${srcstring} EXT)
+ if(NOT "${srcext}" MATCHES "(.qrc|.ui)")
set(filteredsources ${filteredsources} ${srcstring})
endif()
endforeach()
set(allinonetemp "${CMAKE_CURRENT_BINARY_DIR}/allinone_temporary.cpp")
set(allinonesource "${CMAKE_CURRENT_BINARY_DIR}/${FORTARGET}_allinone.cpp")
set(allinonedata)
+ set(excludesources)
foreach(srcstring ${ARGN})
- get_filename_component(srcname ${srcstring} EXT)
- if(NOT "${srcname}" MATCHES "(.h|.qrc|.ui)")
+ get_filename_component(srcext ${srcstring} EXT)
+ get_source_file_property(skip ${srcstring} ALLINONE_EXCLUDE)
+ if(skip)
+ katie_warning("Source is excluded: ${srcstring}")
+ set(srcstring ${srcstring} ${srcstring})
+ elseif(NOT "${srcext}" MATCHES "(.h|.qrc|.ui)" AND NOT "${srcext}" STREQUAL ".c")
set(allinonedata "${allinonedata}#include \"${srcstring}\"\n")
endif()
endforeach()
file(WRITE "${allinonetemp}" "${allinonedata}")
configure_file("${allinonetemp}" "${allinonesource}")
- set(${FORTARGET}_SOURCES ${resourcesdep} ${allinonesource} PARENT_SCOPE)
+ set(${FORTARGET}_SOURCES ${resourcesdep} ${allinonesource} ${excludesources} PARENT_SCOPE)
endif()
endfunction()
${CMAKE_CURRENT_SOURCE_DIR}/qguicommon_p.h
)
-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})
-
-# 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 -DQT_NO_OPENTYPE)
- 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()
-
-
-set(KtGui_SOURCES
- ${KtGui_SOURCES}
+katie_allinone_exclude(
${CMAKE_CURRENT_SOURCE_DIR}/itemviews/qitemeditorfactory.cpp
${CMAKE_CURRENT_SOURCE_DIR}/widgets/qtextedit.cpp
${CMAKE_CURRENT_SOURCE_DIR}/text/qtextformat.cpp
+ ${CMAKE_CURRENT_SOURCE_DIR}/kernel/qeventdispatcher_x11.cpp
+ ${CMAKE_CURRENT_SOURCE_DIR}/painting/qpaintengine_x11.cpp
+ ${CMAKE_CURRENT_SOURCE_DIR}/dialogs/qprintdialog_unix.cpp
+ ${CMAKE_CURRENT_SOURCE_DIR}/dialogs/qpagesetupdialog_unix.cpp
+ ${CMAKE_SOURCE_DIR}/src/3rdparty/harfbuzz/src/harfbuzz-shaper-all.cpp
+ ${CMAKE_SOURCE_DIR}/src/gui/text/qharfbuzz.cpp
)
-if(WITH_X11 AND X11_FOUND)
- set(KtGui_SOURCES
- ${KtGui_SOURCES}
- ${CMAKE_CURRENT_SOURCE_DIR}/kernel/qeventdispatcher_x11.cpp
- ${CMAKE_CURRENT_SOURCE_DIR}/painting/qpaintengine_x11.cpp
- )
-endif()
-
-if(KATIE_PLATFORM MATCHES "(linux|freebsd|openbsd)")
- set(KtGui_SOURCES
- ${KtGui_SOURCES}
- ${CMAKE_CURRENT_SOURCE_DIR}/dialogs/qprintdialog_unix.cpp
- ${CMAKE_CURRENT_SOURCE_DIR}/dialogs/qpagesetupdialog_unix.cpp
- )
-endif()
-
-# to avoid mixing C++ and C source files when building as all-in-one
-set(KtGui_SOURCES
- ${KtGui_SOURCES}
- ${CMAKE_CURRENT_SOURCE_DIR}/painting/qgrayraster.c
-)
+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})
if(WITH_NSL AND NSL_FOUND)
include_directories(${NSL_INCLUDES})
)
set(GUI_SOURCES
${GUI_SOURCES}
+ ${CMAKE_CURRENT_SOURCE_DIR}/dialogs/qprintdialog_unix.cpp
+ ${CMAKE_CURRENT_SOURCE_DIR}/dialogs/qpagesetupdialog_unix.cpp
${CMAKE_CURRENT_SOURCE_DIR}/dialogs/qprintsettingsoutput.ui
${CMAKE_CURRENT_SOURCE_DIR}/dialogs/qprintwidget.ui
${CMAKE_CURRENT_SOURCE_DIR}/dialogs/qprintpropertieswidget.ui
${CMAKE_CURRENT_SOURCE_DIR}/itemviews/qproxymodel.cpp
${CMAKE_CURRENT_SOURCE_DIR}/itemviews/qabstractproxymodel.cpp
${CMAKE_CURRENT_SOURCE_DIR}/itemviews/qsortfilterproxymodel.cpp
+ ${CMAKE_CURRENT_SOURCE_DIR}/itemviews/qitemeditorfactory.cpp
${CMAKE_CURRENT_SOURCE_DIR}/itemviews/qstandarditemmodel.cpp
${CMAKE_CURRENT_SOURCE_DIR}/itemviews/qstringlistmodel.cpp
${CMAKE_CURRENT_SOURCE_DIR}/itemviews/qtreewidgetitemiterator.cpp
${CMAKE_CURRENT_SOURCE_DIR}/kernel/qx11info_x11.cpp
${CMAKE_CURRENT_SOURCE_DIR}/kernel/qkeymapper_x11.cpp
${CMAKE_CURRENT_SOURCE_DIR}/kernel/qkde.cpp
+ ${CMAKE_CURRENT_SOURCE_DIR}/kernel/qeventdispatcher_x11.cpp
)
if(WITH_GLIB2 AND GLIB2_FOUND)
set(GUI_HEADERS
${CMAKE_CURRENT_SOURCE_DIR}/painting/qgraphicssystemplugin.cpp
${CMAKE_CURRENT_SOURCE_DIR}/painting/qwindowsurface_raster.cpp
${CMAKE_CURRENT_SOURCE_DIR}/painting/qprinterinfo_unix.cpp
+ ${CMAKE_CURRENT_SOURCE_DIR}/painting/qgrayraster.c
)
if(WITH_X11 AND X11_FOUND)
${GUI_SOURCES}
${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/qwindowsurface_x11.cpp
)
endif()
${CMAKE_CURRENT_SOURCE_DIR}/text/qtextcontrol.cpp
${CMAKE_CURRENT_SOURCE_DIR}/text/qtextengine.cpp
${CMAKE_CURRENT_SOURCE_DIR}/text/qtextlayout.cpp
+ ${CMAKE_CURRENT_SOURCE_DIR}/text/qtextformat.cpp
${CMAKE_CURRENT_SOURCE_DIR}/text/qtextobject.cpp
${CMAKE_CURRENT_SOURCE_DIR}/text/qtextoption.cpp
${CMAKE_CURRENT_SOURCE_DIR}/text/qfragmentmap.cpp
${CMAKE_CURRENT_SOURCE_DIR}/text/qfontengine_x11.cpp
)
endif()
+
+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 -DQT_NO_OPENTYPE)
+ set(GUI_SOURCES
+ ${GUI_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()
${CMAKE_CURRENT_SOURCE_DIR}/widgets/qstatusbar.cpp
${CMAKE_CURRENT_SOURCE_DIR}/widgets/qtabbar.cpp
${CMAKE_CURRENT_SOURCE_DIR}/widgets/qtabwidget.cpp
+ ${CMAKE_CURRENT_SOURCE_DIR}/widgets/qtextedit.cpp
${CMAKE_CURRENT_SOURCE_DIR}/widgets/qtextbrowser.cpp
${CMAKE_CURRENT_SOURCE_DIR}/widgets/qtoolbar.cpp
${CMAKE_CURRENT_SOURCE_DIR}/widgets/qtoolbarlayout.cpp