mirror of
https://github.com/python-LimeReport/python-LimeReport.git
synced 2025-10-12 15:10:05 +03:00
initial commit
This commit is contained in:
103
.gitignore
vendored
Normal file
103
.gitignore
vendored
Normal file
@@ -0,0 +1,103 @@
|
||||
# Created by https://www.toptal.com/developers/gitignore/api/cmake,qt,c++
|
||||
# Edit at https://www.toptal.com/developers/gitignore?templates=cmake,qt,c++
|
||||
|
||||
### C++ ###
|
||||
# Prerequisites
|
||||
*.d
|
||||
|
||||
# Compiled Object files
|
||||
*.slo
|
||||
*.lo
|
||||
*.o
|
||||
*.obj
|
||||
|
||||
# Precompiled Headers
|
||||
*.gch
|
||||
*.pch
|
||||
|
||||
# Compiled Dynamic libraries
|
||||
*.so
|
||||
*.dylib
|
||||
*.dll
|
||||
|
||||
# Fortran module files
|
||||
*.mod
|
||||
*.smod
|
||||
|
||||
# Compiled Static libraries
|
||||
*.lai
|
||||
*.la
|
||||
*.a
|
||||
*.lib
|
||||
|
||||
# Executables
|
||||
*.exe
|
||||
*.out
|
||||
*.app
|
||||
|
||||
### CMake ###
|
||||
CMakeLists.txt.user
|
||||
CMakeCache.txt
|
||||
CMakeFiles
|
||||
CMakeScripts
|
||||
Testing
|
||||
Makefile
|
||||
cmake_install.cmake
|
||||
install_manifest.txt
|
||||
compile_commands.json
|
||||
CTestTestfile.cmake
|
||||
_deps
|
||||
|
||||
### CMake Patch ###
|
||||
# External projects
|
||||
*-prefix/
|
||||
|
||||
### Qt ###
|
||||
# C++ objects and libs
|
||||
*.so.*
|
||||
|
||||
# Qt-es
|
||||
object_script.*.Release
|
||||
object_script.*.Debug
|
||||
*_plugin_import.cpp
|
||||
/.qmake.cache
|
||||
/.qmake.stash
|
||||
*.pro.user
|
||||
*.pro.user.*
|
||||
*.qbs.user
|
||||
*.qbs.user.*
|
||||
*.moc
|
||||
moc_*.cpp
|
||||
moc_*.h
|
||||
qrc_*.cpp
|
||||
ui_*.h
|
||||
*.qmlc
|
||||
*.jsc
|
||||
Makefile*
|
||||
*build-*
|
||||
*.qm
|
||||
*.prl
|
||||
|
||||
# Qt unit tests
|
||||
target_wrapper.*
|
||||
|
||||
# QtCreator
|
||||
*.autosave
|
||||
|
||||
# QtCreator Qml
|
||||
*.qmlproject.user
|
||||
*.qmlproject.user.*
|
||||
|
||||
# QtCreator CMake
|
||||
CMakeLists.txt.user*
|
||||
|
||||
# QtCreator 4.8< compilation database
|
||||
|
||||
# QtCreator local machine specific files for imported projects
|
||||
*creator.user*
|
||||
|
||||
*_qmlcache.qrc
|
||||
|
||||
# End of https://www.toptal.com/developers/gitignore/api/cmake,qt,c++
|
||||
|
||||
build
|
3
.gitmodules
vendored
Normal file
3
.gitmodules
vendored
Normal file
@@ -0,0 +1,3 @@
|
||||
[submodule "LimeReport"]
|
||||
path = LimeReport
|
||||
url = https://github.com/fralx/LimeReport
|
122
CMakeLists.txt
Normal file
122
CMakeLists.txt
Normal file
@@ -0,0 +1,122 @@
|
||||
cmake_minimum_required(VERSION 3.18)
|
||||
cmake_policy(VERSION 3.18)
|
||||
|
||||
if(POLICY CMP0068)
|
||||
cmake_policy(SET CMP0068 NEW)
|
||||
endif()
|
||||
|
||||
project(LimeReport6)
|
||||
|
||||
set(USE_QT6 ON)
|
||||
find_package(QT REQUIRED NAMES Qt6)
|
||||
find_package(
|
||||
Qt${QT_VERSION_MAJOR}
|
||||
COMPONENTS Core Widgets Sql Network Xml Svg Qml PrintSupport REQUIRED
|
||||
)
|
||||
# find_package(PythonLibs REQUIRED)
|
||||
find_package(Shiboken6 REQUIRED)
|
||||
find_package(PySide6 REQUIRED)
|
||||
|
||||
|
||||
get_target_property(LIBSHIBOKEN_INCLUDE_DIRS Shiboken6::libshiboken INTERFACE_INCLUDE_DIRECTORIES)
|
||||
get_target_property(PYSIDE_INCLUDE_DIRS PySide6::pyside6 INTERFACE_INCLUDE_DIRECTORIES)
|
||||
# find_package(PySide6 REQUIRED)
|
||||
|
||||
add_subdirectory(LimeReport)
|
||||
|
||||
set(CMAKE_CXX_STANDARD 17)
|
||||
|
||||
set(wrapped_header ${CMAKE_SOURCE_DIR}/bindings.h)
|
||||
set(typesystem_file ${CMAKE_SOURCE_DIR}/bindings.xml)
|
||||
|
||||
set(generated_sources
|
||||
limereport_idatasourceholder_wrapper.cpp
|
||||
limereport6_module_wrapper.cpp
|
||||
limereport_icallbackdatasource_wrapper.cpp
|
||||
limereport_enums_wrapper.cpp
|
||||
limereport_idbcredentialsprovider_wrapper.cpp
|
||||
limereport_reportengine_wrapper.cpp
|
||||
limereport_idatasource_wrapper.cpp
|
||||
limereport_idatasourcemanager_wrapper.cpp
|
||||
)
|
||||
|
||||
list(TRANSFORM generated_sources PREPEND ${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_NAME}/)
|
||||
|
||||
set(SHIBOKEN_INCLUDES
|
||||
${CMAKE_SOURCE_DIR}
|
||||
${CMAKE_SOURCE_DIR}/LimeReport/include
|
||||
${Qt6Core_INCLUDE_DIRS}
|
||||
${Qt6Widgets_INCLUDE_DIRS}
|
||||
${Qt6Qml_INCLUDE_DIRS}
|
||||
${Qt6PrintSupport_INCLUDE_DIRS}
|
||||
)
|
||||
list(REMOVE_DUPLICATES SHIBOKEN_INCLUDES)
|
||||
list(TRANSFORM SHIBOKEN_INCLUDES PREPEND "-I")
|
||||
|
||||
set(SHIBOKEN_TYPESYSTEMS
|
||||
${CMAKE_SOURCE_DIR}
|
||||
/usr/share/PySide6/typesystems
|
||||
)
|
||||
list(REMOVE_DUPLICATES SHIBOKEN_TYPESYSTEMS)
|
||||
list(TRANSFORM SHIBOKEN_TYPESYSTEMS PREPEND "-T")
|
||||
|
||||
# Qt6PrintSupport_DEFINITIONS
|
||||
# ===============
|
||||
|
||||
set(shiboken_generator_path "/usr/bin")
|
||||
|
||||
set(shiboken_path "${shiboken_generator_path}/shiboken6${CMAKE_EXECUTABLE_SUFFIX}")
|
||||
if(NOT EXISTS ${shiboken_path})
|
||||
message(FATAL_ERROR "Shiboken executable not found at path: ${shiboken_path}")
|
||||
endif()
|
||||
|
||||
set(shiboken_options
|
||||
--generator-set=shiboken
|
||||
--enable-parent-ctor-heuristic
|
||||
--enable-return-value-heuristic
|
||||
--use-isnull-as-nb_nonzero
|
||||
--enable-pyside-extensions
|
||||
--avoid-protected-hack
|
||||
${SHIBOKEN_INCLUDES}
|
||||
${SHIBOKEN_TYPESYSTEMS}
|
||||
--output-directory=${CMAKE_CURRENT_BINARY_DIR}
|
||||
)
|
||||
|
||||
set(generated_sources_dependencies ${wrapped_header} ${typesystem_file})
|
||||
|
||||
add_custom_command(OUTPUT ${generated_sources}
|
||||
COMMAND ${shiboken_path}
|
||||
${shiboken_options} ${wrapped_header} ${typesystem_file}
|
||||
DEPENDS ${generated_sources_dependencies}
|
||||
IMPLICIT_DEPENDS CXX ${wrapped_header}
|
||||
WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}
|
||||
COMMENT "Running generator for ${typesystem_file}.")
|
||||
|
||||
# ===============
|
||||
|
||||
set(${PROJECT_NAME}_sources ${generated_sources})
|
||||
|
||||
add_library(${PROJECT_NAME} MODULE ${${PROJECT_NAME}_sources})
|
||||
set_target_properties(${PROJECT_NAME} PROPERTIES PREFIX "")
|
||||
|
||||
target_link_libraries(${PROJECT_NAME}
|
||||
limereport-qt${QT_VERSION_MAJOR}
|
||||
)
|
||||
|
||||
target_link_libraries(${PROJECT_NAME}
|
||||
Shiboken6::libshiboken
|
||||
PySide6::pyside6
|
||||
)
|
||||
|
||||
target_include_directories(${PROJECT_NAME} PRIVATE ${PYTHON_INCLUDE_DIRS})
|
||||
target_include_directories(${PROJECT_NAME} PRIVATE ${LIBSHIBOKEN_INCLUDE_DIRS})
|
||||
|
||||
foreach(_dir IN LISTS PYSIDE_INCLUDE_DIRS)
|
||||
target_include_directories(${PROJECT_NAME} PRIVATE ${_dir})
|
||||
target_include_directories(${PROJECT_NAME} PRIVATE ${_dir}/QtCore)
|
||||
target_include_directories(${PROJECT_NAME} PRIVATE ${_dir}/QtGui)
|
||||
target_include_directories(${PROJECT_NAME} PRIVATE ${_dir}/QtWidgets)
|
||||
target_include_directories(${PROJECT_NAME} PRIVATE ${_dir}/QtQml)
|
||||
target_include_directories(${PROJECT_NAME} PRIVATE ${_dir}/QtNetwork)
|
||||
target_include_directories(${PROJECT_NAME} PRIVATE ${_dir}/QtPrintSupport)
|
||||
endforeach()
|
1
LimeReport
Submodule
1
LimeReport
Submodule
Submodule LimeReport added at 6a623a9ecb
1
bindings.h
Normal file
1
bindings.h
Normal file
@@ -0,0 +1 @@
|
||||
#include <lrreportengine.h>
|
28
bindings.xml
Normal file
28
bindings.xml
Normal file
@@ -0,0 +1,28 @@
|
||||
<?xml version="1.0"?>
|
||||
<!--
|
||||
// Copyright (C) 2021 The Qt Company Ltd.
|
||||
// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
|
||||
-->
|
||||
<typesystem package="LimeReport6">
|
||||
<load-typesystem name="typesystem_widgets.xml" generate="no"/>
|
||||
<load-typesystem name="typesystem_qml.xml" generate="no"/>
|
||||
<load-typesystem name="typesystem_printsupport_common.xml" generate="no"/>
|
||||
<namespace-type name="LimeReport" visible="false">
|
||||
<enum-type name="ExpandType" />
|
||||
<enum-type name="RenderPass" />
|
||||
<enum-type name="ArrangeType" />
|
||||
<enum-type name="ScaleType" />
|
||||
<enum-type name="PreviewHint" flags="PreviewHints" />
|
||||
<object-type name="Enums">
|
||||
<enum-type name="VariableDataType" />
|
||||
</object-type>
|
||||
<object-type name="ReportEngine" />
|
||||
<object-type name="IDataSource">
|
||||
<enum-type name="DatasourceMode" />
|
||||
</object-type>
|
||||
<object-type name="IDataSourceHolder" force-abstract="yes" />
|
||||
<object-type name="IDataSourceManager" force-abstract="yes" />
|
||||
<object-type name="IDbCredentialsProvider" />
|
||||
<object-type name="ICallbackDatasource" />
|
||||
</namespace-type>
|
||||
</typesystem>
|
Reference in New Issue
Block a user