Warning, /libraries/kreport/src/CMakeLists.txt is written in an unsupported language. File is not indexed.

0001 # Options
0002 simple_option(KREPORT_SCRIPTING "Scripting support using JavaScript language" ON)
0003 
0004 if(KREPORT_SCRIPTING)
0005     find_package(Qt5Qml REQUIRED)
0006     set(SCRIPTING_LIBS Qt5::Qml)
0007 endif()
0008 
0009 set(kreport_LIB_SRCS
0010     common/kreport_debug.cpp
0011     common/kreportplugin_debug.cpp
0012     common/KReportItemBase.cpp
0013     common/KReportAsyncItemBase.cpp
0014     common/KReportSectionData.cpp
0015     common/KReportLabelSizeInfo.cpp
0016     common/KReportDocument.cpp
0017     common/KReportDetailSectionData.cpp
0018     common/KReportPluginInterface.cpp
0019     common/KReportItemLine.cpp
0020     common/KReportRenderObjects.cpp
0021     common/KReportPluginManager.cpp
0022     common/KReportPluginMetaData.cpp
0023     common/KReportDataSource.cpp
0024     common/KReportUtils.cpp
0025     common/KReportPageSize.cpp
0026     common/KReportUnit.cpp
0027     common/KReportDesign.cpp
0028     common/KReportDesign_p.cpp
0029     common/KReportLineStyle.cpp
0030     common/KReportElement.cpp
0031     ${PROJECT_BINARY_DIR}/src/KReportElement_sdc.cpp
0032     common/KReportSection.cpp
0033 
0034     renderer/KReportPrintRenderer_p.cpp
0035     renderer/KReportPreRenderer.cpp
0036     renderer/KReportAsyncItemManager_p.cpp
0037     renderer/KReportScreenRenderer_p.cpp
0038     renderer/KReportHTMLTableRenderer_p.cpp
0039     renderer/KReportHTMLCSSRenderer_p.cpp
0040     #TODO renderer/KReportKSpreadRenderer.cpp
0041     #TODO renderer/KReportODTRenderer.cpp
0042     #TODO renderer/KOdtFrameReportRenderer.cpp
0043     renderer/KReportRendererBase.cpp
0044     renderer/KReportPage.cpp
0045     renderer/KReportView.cpp
0046     renderer/KReportOneRecordDataSource_p.cpp
0047 
0048     wrtembed/KReportDetailGroupSectionDialog.cpp
0049     wrtembed/KReportDesignerItemBase.cpp
0050     wrtembed/KReportDesignerItemRectBase.cpp
0051     wrtembed/KReportDesignerItemLine.cpp
0052     wrtembed/KReportDesignerSection.cpp
0053     wrtembed/KReportDesignerSectionDetailGroup.cpp
0054     wrtembed/KReportDesignerSectionDetail.cpp
0055     wrtembed/KReportDesignerSectionScene.cpp
0056     wrtembed/KReportDesignerSectionView.cpp
0057     wrtembed/KReportDesigner.cpp
0058     wrtembed/KReportPropertiesButton.cpp
0059     wrtembed/KReportSectionEditor.cpp
0060     wrtembed/KReportRuler_p.cpp
0061     wrtembed/KReportZoomHandler_p.cpp
0062     wrtembed/KReportZoomMode_p.cpp
0063 
0064     items/label/KReportItemLabel.cpp
0065     items/label/KReportDesignerItemLabel.cpp
0066     items/label/KReportLabelPlugin.cpp
0067     items/label/KReportBoundedTextItem.cpp
0068     items/label/KReportLabelElement.cpp
0069     items/label/label.json
0070 
0071     items/check/KReportItemCheck.cpp
0072     items/check/KReportDesignerItemCheckBox.cpp
0073     items/check/KReportCheckBoxPlugin.cpp
0074     items/check/check.json
0075 
0076     items/field/KReportItemField.cpp
0077     items/field/KReportDesignerItemField.cpp
0078     items/field/KReportFieldPlugin.cpp
0079     items/field/field.json
0080 
0081     items/image/KReportItemImage.cpp
0082     items/image/KReportDesignerItemImage.cpp
0083     items/image/KReportImagePlugin.cpp
0084     items/image/image.json
0085 
0086     items/text/KReportItemText.cpp
0087     items/text/KReportDesignerItemText.cpp
0088     items/text/KReportTextPlugin.cpp
0089     items/text/text.json
0090 
0091     # non-source:
0092     Mainpage.dox
0093     Messages.sh
0094 )
0095 
0096 set(kreport_INCLUDE_DIRS
0097     ${CMAKE_CURRENT_SOURCE_DIR}/common
0098     ${CMAKE_CURRENT_SOURCE_DIR}/wrtembed
0099     ${CMAKE_CURRENT_SOURCE_DIR}/renderer
0100 )
0101 
0102 set(kreport_TARGET_INCLUDE_DIRS
0103     common renderer wrtembed
0104 )
0105 
0106 if(KREPORT_SCRIPTING)
0107     list(APPEND kreport_LIB_SRCS
0108         renderer/scripting/KReportGroupTracker.cpp
0109         renderer/scripting/KReportScriptHandler.cpp
0110         renderer/scripting/KReportScriptConstants.cpp
0111         renderer/scripting/KReportScriptDebug.cpp
0112         renderer/scripting/KReportScriptDraw.cpp
0113         renderer/scripting/KReportScriptReport.cpp
0114         renderer/scripting/KReportScriptSection.cpp
0115         renderer/scripting/KReportScriptLine.cpp
0116 
0117         #renderer/odtframe/KoOdtFrameReportDocument.cpp
0118         #renderer/odtframe/KoOdtFrameReportCheckBox.cpp
0119         #renderer/odtframe/KoOdtFrameReportImage.cpp
0120         #renderer/odtframe/KoOdtFrameReportTextBox.cpp
0121         #renderer/odtframe/KoOdtFrameReportLine.cpp
0122         #renderer/odtframe/KoOdtFrameReportPicture.cpp
0123         #renderer/odtframe/KoOdtFrameReportPrimitive.cpp
0124 
0125         #renderer/ods/KoSimpleOdsDocument.cpp
0126         #renderer/ods/KoSimpleOdsSheet.cpp
0127         #renderer/ods/KoSimpleOdsCell.cpp
0128 
0129         items/label/KReportScriptLabel.cpp
0130         items/check/KReportScriptCheck.cpp
0131         items/field/KReportScriptField.cpp
0132         items/image/KReportScriptImage.cpp
0133         items/text/KReportScriptText.cpp
0134     )
0135 
0136     list(APPEND kreport_INCLUDE_DIRS
0137         ${CMAKE_CURRENT_SOURCE_DIR}/renderer/scripting
0138     )
0139 
0140     list(APPEND kreport_TARGET_INCLUDE_DIRS
0141         renderer/scripting
0142     )
0143 endif()
0144 
0145 qt5_wrap_ui(kreport_LIB_SRCS
0146     wrtembed/KReportDetailGroupSectionDialog.ui
0147     wrtembed/KReportSectionEditor.ui
0148 )
0149 
0150 ecm_create_qm_loader(kreport_LIB_SRCS kreport_qt)
0151 
0152 add_library(KReport SHARED ${kreport_LIB_SRCS})
0153 set_coinstallable_lib_version(KReport)
0154 
0155 add_library(KReportUtilsPrivate STATIC
0156     common/KReportUtils_p.cpp
0157 )
0158 
0159 kdb_create_shared_data_classes(
0160     kreport_GENERATED_SHARED_DATA_CLASS_HEADERS # output variable with list of headers
0161     NO_PREFIX # subdirectory in which the headers should be generated
0162     common/KReportLineStyle.shared.h
0163     common/KReportElement.shared.h
0164     common/KReportSection.shared.h
0165     items/label/KReportLabelElement.shared.h
0166 )
0167 
0168 kdb_remove_extensions(
0169     kreport_GENERATED_SHARED_DATA_CLASS_BASENAMES
0170     ${kreport_GENERATED_SHARED_DATA_CLASS_HEADERS}
0171 )
0172 
0173 generate_export_header(KReport)
0174 
0175 target_include_directories(KReport
0176     PUBLIC "$<BUILD_INTERFACE:${kreport_INCLUDE_DIRS}>"
0177     INTERFACE "$<INSTALL_INTERFACE:${KREPORT_INCLUDE_INSTALL_DIR}>"
0178     PRIVATE ${kreport_TARGET_INCLUDE_DIRS}
0179 )
0180 
0181 target_link_libraries(KReport
0182     PUBLIC
0183         Qt5::PrintSupport
0184         Qt5::Xml
0185         KF5::CoreAddons
0186         KPropertyWidgets
0187     PRIVATE
0188         ${SCRIPTING_LIBS}
0189         KReportUtilsPrivate
0190 )
0191 
0192 target_link_libraries(KReportUtilsPrivate
0193     PUBLIC
0194         Qt5::Widgets
0195         KF5::ConfigGui
0196         KF5::WidgetsAddons
0197     PRIVATE
0198         Qt5::PrintSupport
0199     )
0200 
0201 ecm_setup_version(${PROJECT_VERSION}
0202     VARIABLE_PREFIX KREPORT
0203     VERSION_HEADER "${CMAKE_CURRENT_BINARY_DIR}/kreport_version.h"
0204     PACKAGE_VERSION_FILE "${CMAKE_CURRENT_BINARY_DIR}/KReportConfigVersion.cmake"
0205 )
0206 
0207 install(TARGETS KReport
0208         EXPORT KReportTargets
0209         ${KDE_INSTALL_TARGETS_DEFAULT_ARGS})
0210 
0211 # Create a Config.cmake and a ConfigVersion.cmake file and install them
0212 set(CMAKECONFIG_INSTALL_DIR "${KDE_INSTALL_CMAKEPACKAGEDIR}/${KREPORT_BASE_NAME}")
0213 
0214 # A place for KReport plugins
0215 set(KREPORT_PLUGIN_INSTALL_DIR ${KDE_INSTALL_PLUGINDIR}/${PROJECT_NAME_LOWER}${PROJECT_STABLE_VERSION_MAJOR})
0216 
0217 configure_package_config_file(
0218     "${CMAKE_CURRENT_SOURCE_DIR}/KReportConfig.cmake.in"
0219     "${CMAKE_CURRENT_BINARY_DIR}/KReportConfig.cmake"
0220     INSTALL_DESTINATION "${CMAKECONFIG_INSTALL_DIR}"
0221 )
0222 
0223 install(FILES
0224         "${CMAKE_CURRENT_BINARY_DIR}/KReportConfig.cmake"
0225         "${CMAKE_CURRENT_BINARY_DIR}/KReportConfigVersion.cmake"
0226         DESTINATION "${CMAKECONFIG_INSTALL_DIR}"
0227         COMPONENT Devel)
0228 
0229 install(EXPORT KReportTargets
0230         DESTINATION "${CMAKECONFIG_INSTALL_DIR}"
0231         FILE KReportTargets.cmake)
0232 
0233 ecm_generate_pri_file(
0234     BASE_NAME ${KREPORT_BASE_NAME}
0235     LIB_NAME ${KREPORT_BASE_NAME}
0236     DEPS "widgets"
0237     FILENAME_VAR PRI_FILENAME
0238     INCLUDE_INSTALL_DIR ${KREPORT_INCLUDE_INSTALL_DIR}
0239 )
0240 
0241 install(FILES ${PRI_FILENAME}
0242         DESTINATION ${ECM_MKSPECS_INSTALL_DIR})
0243 
0244 install(FILES kreport_elementplugin.desktop  DESTINATION ${KDE_INSTALL_KSERVICETYPES5DIR})
0245 
0246 ecm_generate_headers(kreport_FORWARDING_HEADERS
0247     REQUIRED_HEADERS kreport_HEADERS
0248     ORIGINAL CAMELCASE
0249     RELATIVE common
0250     HEADER_NAMES
0251         KReportPageSize
0252         KReportDataSource
0253         KReportItemBase
0254         KReportItemLine
0255         KReportPluginMetaData
0256         KReportPluginManager
0257         KReportPluginInterface
0258         KReportUnit
0259         KReportUtils
0260         KReportDesign
0261         KReportDocument
0262         KReportSectionData
0263         KReportRenderObjects
0264         KReportAsyncItemBase
0265 )
0266 
0267 ecm_generate_headers(kreport_FORWARDING_HEADERS
0268     REQUIRED_HEADERS kreport_HEADERS
0269     ORIGINAL CAMELCASE
0270     RELATIVE renderer
0271     HEADER_NAMES
0272         KReportPage
0273         KReportRendererBase
0274         KReportPreRenderer
0275         KReportView
0276 )
0277 
0278 if(KREPORT_SCRIPTING)
0279     ecm_generate_headers(kreport_FORWARDING_HEADERS
0280         REQUIRED_HEADERS kreport_HEADERS
0281         ORIGINAL CAMELCASE
0282         RELATIVE renderer/scripting
0283         HEADER_NAMES
0284             KReportGroupTracker
0285             KReportScriptConstants
0286             KReportScriptDraw
0287             KReportScriptHandler
0288             KReportScriptSource
0289     )
0290 endif()
0291 
0292 ecm_generate_headers(kreport_FORWARDING_HEADERS
0293     REQUIRED_HEADERS kreport_HEADERS
0294     ORIGINAL CAMELCASE
0295     RELATIVE wrtembed
0296     HEADER_NAMES
0297         KReportDesignerSectionDetail
0298         KReportDesignerSection
0299         KReportDesignerItemBase
0300         KReportDesignerSectionDetailGroup
0301         KReportDesignerItemRectBase
0302         KReportDesigner
0303 )
0304 
0305 ecm_generate_headers(kreport_FORWARDING_HEADERS_FROM_BUILDDIR
0306     REQUIRED_HEADERS kreport_HEADERS_FROM_BUILDDIR
0307     ORIGINAL CAMELCASE
0308     SOURCE_DIR ${PROJECT_BINARY_DIR}/src
0309     HEADER_NAMES
0310         ${kreport_GENERATED_SHARED_DATA_CLASS_BASENAMES}
0311 )
0312 
0313 list(APPEND kreport_HEADERS ${CMAKE_CURRENT_BINARY_DIR}/kreport_version.h)
0314 
0315 install(
0316     FILES
0317         ${kreport_HEADERS}
0318         ${kreport_HEADERS_FROM_BUILDDIR}
0319         ${kreport_FORWARDING_HEADERS}
0320         ${kreport_FORWARDING_HEADERS_FROM_BUILDDIR}
0321         ${PROJECT_BINARY_DIR}/src/kreport_export.h
0322         ${PROJECT_BINARY_DIR}/src/config-kreport.h
0323     DESTINATION ${KREPORT_INCLUDE_INSTALL_DIR}
0324     COMPONENT Devel
0325 )
0326 
0327 if(BUILD_QCH)
0328     ecm_add_qch(
0329         KReport_QCH
0330         NAME KReport
0331         BASE_NAME ${KREPORT_BASE_NAME}
0332         VERSION ${PROJECT_VERSION}
0333         ORG_DOMAIN org.kde.${KREPORT_BASE_NAME}
0334         SOURCES
0335             Mainpage.dox
0336             ${kreport_HEADERS}
0337             ${kreport_HEADERS_FROM_BUILDDIR}
0338         LINK_QCHS
0339             Qt5Core_QCH
0340             Qt5Xml_QCH
0341             Qt5Gui_QCH
0342             Qt5Widgets_QCH
0343             Qt5PrintSupport_QCH
0344             KF5CoreAddons_QCH
0345             KPropertyCore_QCH
0346             KPropertyWidgets_QCH
0347         INCLUDE_DIRS
0348             ${CMAKE_CURRENT_BINARY_DIR}
0349             ${kreport_INCLUDE_DIRS}
0350         BLANK_MACROS
0351             KREPORT_EXPORT
0352             KREPORT_DEPRECATED
0353         TAGFILE_INSTALL_DESTINATION ${KDE_INSTALL_QTQCHDIR}
0354         QCH_INSTALL_DESTINATION ${KDE_INSTALL_QTQCHDIR}
0355         COMPONENT Devel
0356     )
0357     set(kreport_qch_targets KReport_QCH)
0358 endif()
0359 
0360 ecm_install_qch_export(
0361     TARGETS ${kreport_qch_targets}
0362     FILE KReportQCHTargets.cmake
0363     DESTINATION "${CMAKECONFIG_INSTALL_DIR}"
0364     COMPONENT Devel
0365 )
0366 
0367 add_subdirectory(plugins)
0368 add_subdirectory(pics)
0369 
0370 enable_testing()
0371 
0372 configure_file(config-kreport.h.cmake ${CMAKE_CURRENT_BINARY_DIR}/config-kreport.h)