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)