Warning, /education/labplot/src/3rdparty/QXlsx/CMakeLists.txt is written in an unsupported language. File is not indexed.

0001 # CMakeLists.txt for QXlsx Library
0002 
0003 cmake_minimum_required(VERSION 3.16)
0004 
0005 project(QXlsx
0006     VERSION 1.4.4
0007     LANGUAGES CXX
0008 )
0009 
0010 set(CMAKE_INCLUDE_CURRENT_DIR ON)
0011 
0012 set(CMAKE_AUTOMOC ON)
0013 
0014 include(GNUInstallDirs)
0015 
0016 MESSAGE (STATUS "QXLSX Qt version ${QT_VERSION_MAJOR}")
0017 if(NOT DEFINED QT_VERSION_MAJOR)
0018     find_package(QT NAMES Qt6 Qt5 COMPONENTS Core Gui REQUIRED)
0019 endif()
0020 find_package(Qt${QT_VERSION_MAJOR} 5.9 COMPONENTS Core Gui REQUIRED)
0021 set(EXPORT_NAME QXlsxQt${QT_VERSION_MAJOR})
0022 
0023 if (QT_VERSION_MAJOR EQUAL 6)
0024     set(CMAKE_CXX_STANDARD 17 CACHE STRING "")
0025 else()
0026     set(CMAKE_CXX_STANDARD 11 CACHE STRING "")
0027 endif()
0028 set(CMAKE_CXX_STANDARD_REQUIRED ON)
0029 
0030 set(CMAKE_MODULE_PATH ${CMAKE_CURRENT_SOURCE_DIR}/cmake/modules)
0031 
0032 if(NOT DEFINED ${QXLSX_PARENTPATH})
0033         set(QXLSX_PARENTPATH ${CMAKE_CURRENT_SOURCE_DIR}/../)
0034 endif(NOT DEFINED ${QXLSX_PARENTPATH})
0035 
0036 if(NOT DEFINED ${QXLSX_HEADERPATH})
0037         set(QXLSX_HEADERPATH ${CMAKE_CURRENT_SOURCE_DIR}/../QXlsx/header/)
0038 endif(NOT DEFINED ${QXLSX_HEADERPATH})
0039 
0040 if(NOT DEFINED ${QXLSX_SOURCEPATH})
0041         set(QXLSX_SOURCEPATH ${CMAKE_CURRENT_SOURCE_DIR}/../QXlsx/source/)
0042 endif(NOT DEFINED ${QXLSX_SOURCEPATH})
0043 
0044 message("Current Path of QXlsx")
0045 message(${QXLSX_PARENTPATH})
0046 message(${QXLSX_HEADERPATH})
0047 message(${QXLSX_SOURCEPATH})
0048 
0049 # Due historical reasons this value is kept off
0050 option(BUILD_SHARED_LIBS "Build in shared lib mode" OFF)
0051 
0052 set(SRC_FILES
0053     source/xlsxcellrange.cpp
0054     source/xlsxcellrange.cpp
0055     source/xlsxcontenttypes.cpp
0056     source/xlsxdrawinganchor.cpp
0057     source/xlsxrichstring.cpp
0058     source/xlsxworkbook.cpp
0059     source/xlsxabstractooxmlfile.cpp
0060     source/xlsxcellreference.cpp
0061     source/xlsxdatavalidation.cpp
0062     source/xlsxdrawing.cpp
0063     source/xlsxsharedstrings.cpp
0064     source/xlsxworksheet.cpp
0065     source/xlsxabstractsheet.cpp
0066     source/xlsxchart.cpp
0067     source/xlsxdatetype.cpp
0068     source/xlsxformat.cpp
0069     source/xlsxsimpleooxmlfile.cpp
0070     source/xlsxzipreader.cpp
0071     source/xlsxcell.cpp
0072     source/xlsxchartsheet.cpp
0073     source/xlsxdocpropsapp.cpp
0074     source/xlsxmediafile.cpp
0075     source/xlsxstyles.cpp
0076     source/xlsxzipwriter.cpp
0077     source/xlsxcellformula.cpp
0078     source/xlsxcolor.cpp
0079     source/xlsxdocpropscore.cpp
0080     source/xlsxnumformatparser.cpp
0081     source/xlsxtheme.cpp
0082     source/xlsxcelllocation.cpp
0083     source/xlsxconditionalformatting.cpp
0084     source/xlsxdocument.cpp
0085     source/xlsxrelationships.cpp
0086     source/xlsxutility.cpp
0087     header/xlsxabstractooxmlfile_p.h
0088     header/xlsxchartsheet_p.h
0089     header/xlsxdocpropsapp_p.h
0090     header/xlsxformat_p.h
0091     header/xlsxsharedstrings_p.h
0092     header/xlsxworkbook_p.h
0093     header/xlsxabstractsheet_p.h
0094     header/xlsxcolor_p.h
0095     header/xlsxdocpropscore_p.h
0096     header/xlsxmediafile_p.h
0097     header/xlsxsimpleooxmlfile_p.h
0098     header/xlsxworksheet_p.h
0099     header/xlsxcellformula_p.h
0100     header/xlsxconditionalformatting_p.h
0101     header/xlsxdocument_p.h
0102     header/xlsxnumformatparser_p.h
0103     header/xlsxstyles_p.h
0104     header/xlsxzipreader_p.h
0105     header/xlsxcell_p.h
0106     header/xlsxcontenttypes_p.h
0107     header/xlsxdrawinganchor_p.h
0108     header/xlsxrelationships_p.h
0109     header/xlsxtheme_p.h
0110     header/xlsxzipwriter_p.h
0111     header/xlsxchart_p.h
0112     header/xlsxdatavalidation_p.h
0113     header/xlsxdrawing_p.h
0114     header/xlsxrichstring_p.h
0115     header/xlsxutility_p.h
0116 )
0117 
0118 set(QXLSX_PUBLIC_HEADERS
0119     header/xlsxabstractooxmlfile.h
0120     header/xlsxabstractsheet.h
0121     header/xlsxabstractsheet_p.h
0122     header/xlsxcellformula.h
0123     header/xlsxcell.h
0124     header/xlsxcelllocation.h
0125     header/xlsxcellrange.h
0126     header/xlsxcellreference.h
0127     header/xlsxchart.h
0128     header/xlsxchartsheet.h
0129     header/xlsxconditionalformatting.h
0130     header/xlsxdatavalidation.h
0131     header/xlsxdatetype.h
0132     header/xlsxdocument.h
0133     header/xlsxformat.h
0134     header/xlsxglobal.h
0135     header/xlsxrichstring.h
0136     header/xlsxworkbook.h
0137     header/xlsxworksheet.h
0138 )
0139 
0140 add_library(QXlsx
0141     ${SRC_FILES}
0142     ${QXLSX_PUBLIC_HEADERS}
0143 )
0144 
0145 add_library(QXlsx::QXlsx ALIAS QXlsx)
0146 
0147 target_compile_definitions(QXlsx PRIVATE
0148     QT_NO_KEYWORDS
0149     QT_NO_CAST_TO_ASCII
0150     QT_NO_CAST_FROM_ASCII
0151     QT_NO_URL_CAST_FROM_STRING
0152     QT_NO_CAST_FROM_BYTEARRAY
0153     QT_USE_QSTRINGBUILDER
0154     QT_NO_SIGNALS_SLOTS_KEYWORDS
0155     QT_USE_FAST_OPERATOR_PLUS
0156 )
0157 
0158 if (NOT WIN32)
0159     # Strict iterators can't be used on Windows, they lead to a link error
0160     # when application code iterates over a QVector<QPoint> for instance, unless
0161     # Qt itself was also built with strict iterators.
0162     # See example at https://bugreports.qt.io/browse/AUTOSUITE-946
0163     target_compile_definitions(QXlsx PRIVATE QT_STRICT_ITERATORS)
0164 endif()
0165 
0166 target_compile_features(QXlsx INTERFACE cxx_std_11)
0167 
0168 if (BUILD_SHARED_LIBS)
0169     target_compile_definitions(QXlsx PUBLIC QXlsx_SHAREDLIB)
0170 endif()
0171 
0172 target_link_libraries(${PROJECT_NAME}
0173    Qt${QT_VERSION_MAJOR}::Core
0174    Qt${QT_VERSION_MAJOR}::GuiPrivate
0175 )
0176 
0177 target_include_directories(QXlsx
0178 PRIVATE
0179     ${QXLSX_HEADERPATH}
0180 PUBLIC
0181     $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/header>
0182     $<INSTALL_INTERFACE:include/QXlsx>
0183 )
0184 
0185 set_target_properties(QXlsx PROPERTIES
0186     OUTPUT_NAME ${EXPORT_NAME}
0187     VERSION ${PROJECT_VERSION}
0188     SOVERSION 0.${PROJECT_VERSION}
0189     PUBLIC_HEADER "${QXLSX_PUBLIC_HEADERS}"
0190 )
0191 
0192 install(TARGETS QXlsx
0193     EXPORT ${EXPORT_NAME}Targets DESTINATION ${CMAKE_INSTALL_LIBDIR}
0194     RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR} COMPONENT runtime
0195     ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR} COMPONENT devel
0196     PUBLIC_HEADER DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/QXlsxQt${QT_VERSION_MAJOR} COMPONENT devel
0197 )
0198 
0199 install(EXPORT ${EXPORT_NAME}Targets
0200     DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/${EXPORT_NAME}/
0201     FILE ${EXPORT_NAME}Targets.cmake
0202     NAMESPACE QXlsx::
0203     COMPONENT devel
0204 )
0205 
0206 configure_file(${CMAKE_CURRENT_SOURCE_DIR}/cmake/modules/qxlsx-config.cmake.in
0207     ${CMAKE_CURRENT_BINARY_DIR}/${EXPORT_NAME}Config.cmake
0208     @ONLY
0209 )
0210 configure_file(${CMAKE_CURRENT_SOURCE_DIR}/cmake/modules/qxlsx-config-version.cmake.in
0211     ${CMAKE_CURRENT_BINARY_DIR}/${EXPORT_NAME}ConfigVersion.cmake
0212     @ONLY
0213 )
0214 install(
0215     FILES
0216         ${CMAKE_CURRENT_BINARY_DIR}/${EXPORT_NAME}Config.cmake
0217         ${CMAKE_CURRENT_BINARY_DIR}/${EXPORT_NAME}ConfigVersion.cmake
0218     DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/${EXPORT_NAME}/
0219 )
0220 include(CPackConfig)