Warning, /office/kbibtex/CMakeLists.txt is written in an unsupported language. File is not indexed.
0001 # SPDX-License-Identifier: GPL-2.0-or-later 0002 # SPDX-FileCopyrightText: 2008-2023 Thomas Fischer <fischer@unix-ag.uni-kl.de> 0003 # SPDX-FileContributor: 2013-2021 Pino Toscano <pino@kde.org> 0004 # SPDX-FileContributor: 2014-2021 Yuri Chornoivan <yurchor@ukr.net> 0005 # SPDX-FileContributor: 2015-2021 David Faure <faure@kde.org> 0006 # SPDX-FileContributor: 2016-2021 Andreas Sturmlechner <andreas.sturmlechner@gmail.com> 0007 0008 cmake_minimum_required(VERSION 3.16.0 FATAL_ERROR) 0009 0010 project( 0011 kbibtex 0012 VERSION 0.10.50 0013 LANGUAGES CXX 0014 ) 0015 0016 set(CMAKE_CXX_STANDARD 14) 0017 0018 find_package(QT NAMES Qt6 Qt5 REQUIRED COMPONENTS Core) 0019 message(STATUS "Found Qt version ${QT_VERSION_MAJOR}") 0020 if(BUILD_WITH_QT6) 0021 message(STATUS "Using Qt version 6, honoring BUILD_WITH_QT6") 0022 set(QT_VERSION_MAJOR 6) 0023 elseif(BUILD_WITH_QT5) 0024 message(STATUS "Using Qt version 5, honoring BUILD_WITH_QT5") 0025 set(QT_VERSION_MAJOR 5) 0026 elseif(QT_MAJOR_VERSION) 0027 message(STATUS "Using Qt version " ${QT_MAJOR_VERSION} ", honoring QT_MAJOR_VERSION") 0028 set(QT_VERSION_MAJOR ${QT_MAJOR_VERSION}) 0029 endif() 0030 0031 set(KF_MIN_VERSION "5.86") 0032 set(QT_REQUIRED_VERSION "5.15.2") 0033 if (QT_VERSION_MAJOR GREATER_EQUAL 6) 0034 set(QT_REQUIRED_VERSION "6.4.0") 0035 set(KF_MIN_VERSION "5.240.0") 0036 endif() 0037 0038 set(KDE_COMPILERSETTINGS_LEVEL ${KF_MIN_VERSION}) 0039 find_package(ECM ${KF_MIN_VERSION} REQUIRED NO_MODULE) 0040 0041 set( 0042 CMAKE_MODULE_PATH 0043 ${ECM_MODULE_PATH} 0044 ${CMAKE_MODULE_PATH} 0045 ) 0046 0047 set(KDE_INSTALL_DIRS_NO_DEPRECATED TRUE) 0048 include(KDEInstallDirs) 0049 include(KDECompilerSettings NO_POLICY_SCOPE) 0050 include(KDECMakeSettings) 0051 include(ECMGenerateHeaders) 0052 include(ECMInstallIcons) 0053 include(ECMSetupVersion) 0054 include(ECMAddAppIcon) 0055 include(GenerateExportHeader) 0056 include(ECMQtDeclareLoggingCategory) 0057 0058 ecm_setup_version( 0059 PROJECT 0060 VARIABLE_PREFIX KBIBTEX 0061 SOVERSION ${KBIBTEX_VERSION_MAJOR} 0062 VERSION_HEADER "${CMAKE_BINARY_DIR}/kbibtex-version.h" 0063 PACKAGE_VERSION_FILE "${CMAKE_BINARY_DIR}/KBibTeXConfigVersion.cmake" 0064 ) 0065 0066 install( 0067 FILES ${CMAKE_BINARY_DIR}/kbibtex-version.h 0068 DESTINATION ${KDE_INSTALL_INCLUDEDIR}/KBibTeX 0069 # FIXME is "Devel" standard? 0070 COMPONENT Devel 0071 ) 0072 0073 0074 if("${KBIBTEX_VERSION_PATCH}" STREQUAL "") 0075 # Patch level is not set for version numbers like "0.9", 0076 # so set the patch level manually to 0 0077 set(KBIBTEX_VERSION_PATCH 0) 0078 endif() 0079 0080 if((${KBIBTEX_VERSION_PATCH} GREATER 50) OR (${KBIBTEX_VERSION_PATCH} EQUAL 50)) 0081 # If the version number indicates a pre-release version such as 0082 # '0.7.90', i.e. a beta version for the major release 0.8, 0083 # increment release version from 0.7 to 0.8 0084 math(EXPR KBIBTEX_RELEASE_VERSION_MINOR "${KBIBTEX_VERSION_MINOR} + 1") 0085 set( 0086 KBIBTEX_RELEASE_VERSION ${KBIBTEX_VERSION_MAJOR}.${KBIBTEX_RELEASE_VERSION_MINOR} 0087 ) 0088 else() 0089 set( 0090 KBIBTEX_RELEASE_VERSION ${KBIBTEX_VERSION_MAJOR}.${KBIBTEX_VERSION_MINOR} 0091 ) 0092 endif() 0093 0094 option( 0095 UNITY_BUILD 0096 "Compile multiple C++ files in one big, merged file (\"Unity build\")\nSee also https://t-fischer.dreamwidth.org/3054.html" 0097 ) 0098 if(UNITY_BUILD) 0099 message(STATUS "Unity build enabled") 0100 else(UNITY_BUILD) 0101 message(STATUS "Unity build disabled (default), use option UNITY_BUILD to enable it") 0102 endif(UNITY_BUILD) 0103 0104 0105 option( 0106 BUILD_APP_DESKTOP 0107 "Build the desktop app which makes use of widgets" 0108 ON 0109 ) 0110 option( 0111 BUILD_APP_COMMAND_LINE 0112 "Build the command line program with minimal dependencies only" 0113 ON 0114 ) 0115 option( 0116 BUILD_KPART 0117 "Build KBibTeX's KPart (will be set ON automatically if desktop app is built)" 0118 OFF 0119 ) 0120 if(BUILD_APP_DESKTOP) 0121 set(BUILD_KPART ON) 0122 endif() 0123 0124 find_package( 0125 Python 0126 COMPONENTS 0127 Interpreter 0128 REQUIRED 0129 ) 0130 0131 if (QT_VERSION_MAJOR GREATER_EQUAL 6) 0132 # Should become necessary once migrated from QTextCodec to QStringConverter 0133 find_package( 0134 Qt6 ${QT_REQUIRED_VERSION} 0135 CONFIG 0136 COMPONENTS 0137 Core5Compat 0138 ) 0139 endif() 0140 0141 if (QT_VERSION_MAJOR EQUAL 5) 0142 # Migrate away from QXmlQuery 0143 find_package( 0144 Qt5 ${QT_REQUIRED_VERSION} 0145 CONFIG 0146 COMPONENTS 0147 XmlPatterns 0148 ) 0149 endif() 0150 0151 if(BUILD_KPART OR BUILD_TESTING) 0152 find_package( 0153 Qt${QT_VERSION_MAJOR} ${QT_REQUIRED_VERSION} 0154 CONFIG 0155 COMPONENTS 0156 Gui 0157 Widgets 0158 Network 0159 Concurrent 0160 NetworkAuth 0161 OPTIONAL_COMPONENTS 0162 WebEngineWidgets 0163 WebKitWidgets 0164 Test 0165 ) 0166 if (Qt${QT_VERSION_MAJOR}Widgets_FOUND) 0167 add_compile_definitions(HAVE_QTWIDGETS) 0168 endif() 0169 endif() 0170 0171 if(Qt${QT_VERSION_MAJOR}WebEngineWidgets_FOUND) 0172 add_compile_definitions(HAVE_WEBENGINEWIDGETS) 0173 endif() 0174 0175 if (Qt${QT_VERSION_MAJOR}XmlPatterns_FOUND) 0176 add_compile_definitions(HAVE_QTXMLPATTERNS) 0177 endif() 0178 0179 find_package( 0180 KF${QT_VERSION_MAJOR} ${KF_MIN_VERSION} 0181 MODULE 0182 REQUIRED 0183 Config 0184 ) 0185 if(BUILD_KPART OR BUILD_TESTING) 0186 find_package( 0187 KF${QT_VERSION_MAJOR} ${KF_MIN_VERSION} 0188 MODULE 0189 REQUIRED 0190 I18n 0191 KIO 0192 IconThemes 0193 CoreAddons 0194 Wallet 0195 Crash 0196 TextEditor 0197 TextWidgets 0198 COMPONENTS 0199 XmlGui 0200 Parts 0201 ) 0202 endif() 0203 if (KF5_FOUND) 0204 add_compile_definitions(HAVE_KF5 HAVE_KF) 0205 endif() 0206 if (KF6_FOUND) 0207 add_compile_definitions(HAVE_KF6 HAVE_KF) 0208 endif() 0209 if (KF${QT_VERSION_MAJOR}I18n_FOUND) 0210 add_compile_definitions(HAVE_KFI18N) 0211 endif() 0212 0213 find_package( 0214 Poppler 0215 MODULE 0216 REQUIRED 0217 Qt${QT_VERSION_MAJOR} 0218 ) 0219 if (PKG_Poppler_Qt${QT_VERSION_MAJOR}_FOUND) 0220 add_compile_definitions(HAVE_POPPLERQT${QT_VERSION_MAJOR} HAVE_POPPLERQT) 0221 endif() 0222 0223 find_package( 0224 ICU 0225 MODULE 0226 OPTIONAL_COMPONENTS 0227 uc i18n 0228 ) 0229 0230 if(ICU_FOUND) 0231 add_compile_definitions(HAVE_ICU) 0232 endif() 0233 0234 option( 0235 BUILD_TESTING 0236 "Build automated and interactive tests" 0237 OFF 0238 ) 0239 if (MSVC) 0240 MESSAGE( STATUS "Disabling building tests when using Microsoft Visual Studio C++ compiler" ) 0241 # Note to any developer: Try to enable building tests and see which issues you may encounter. 0242 # Examples may include: (1) char* texts which exceed the size limit supported by MSVC which 0243 # is about 2^16 bytes and (2) characters in strings written in \uXXXX notation not supported 0244 # in 1252 encoding as assumed by MSVC for C++ source files. 0245 set(BUILD_TESTING OFF) 0246 endif() 0247 if(NOT BUILD_TESTING AND Qt${QT_VERSION_MAJOR}Test_FOUND) 0248 message(STATUS 0249 "Testing is disabled, but can be enabled as the Qt::Test library is available" 0250 ) 0251 endif() 0252 if(BUILD_TESTING AND NOT Qt${QT_VERSION_MAJOR}Test_FOUND) 0253 message(STATUS 0254 "Disabling building tests as Qt::Test library is not available" 0255 ) 0256 set(BUILD_TESTING OFF) 0257 endif() 0258 0259 if(BUILD_TESTING) 0260 add_compile_definitions(BUILD_TESTING) 0261 if (WRITE_RAWDATAFILE) 0262 add_compile_definitions(WRITE_RAWDATAFILE) 0263 endif(WRITE_RAWDATAFILE) 0264 0265 set( 0266 TESTSET_DIRECTORY "" 0267 CACHE PATH 0268 "Directory where the local checkout of Git repository 'kbibtex-testset' is located" 0269 ) 0270 endif() 0271 0272 if(TESTSET_DIRECTORY AND ( NOT EXISTS "${TESTSET_DIRECTORY}/bib/minix.bib" OR NOT EXISTS "${TESTSET_DIRECTORY}/bib/backslash.bib" )) 0273 message("Variable TESTSET_DIRECTORY is set to '${TESTSET_DIRECTORY}' but various BibTeX files were not found. Unsetting TESTSET_DIRECTORY.") 0274 unset(TESTSET_DIRECTORY) 0275 unset(TESTSET_DIRECTORY CACHE) 0276 endif() 0277 0278 0279 option( 0280 BUILD_SCIHUB 0281 "Support fetching PDF files from SciHub" 0282 ON 0283 ) 0284 if(BUILD_SCIHUB) 0285 add_compile_definitions(HAVE_SCIHUB) 0286 endif() 0287 0288 0289 add_subdirectory( 0290 config 0291 ) 0292 add_subdirectory( 0293 src 0294 ) 0295 add_subdirectory( 0296 mime 0297 ) 0298 if(KF${QT_VERSION_MAJOR}DocTools_FOUND) 0299 add_subdirectory(doc) 0300 kdoctools_install(po) 0301 endif() 0302 0303 if(KF${QT_VERSION_MAJOR}I18n_FOUND) 0304 ki18n_install(po) 0305 endif() 0306 0307 if (ECM_VERSION VERSION_GREATER_EQUAL "5.59.0") 0308 install(FILES kbibtex.categories DESTINATION ${KDE_INSTALL_LOGGINGCATEGORIESDIR}) 0309 else() 0310 install(FILES kbibtex.categories DESTINATION ${KDE_INSTALL_CONFDIR}) 0311 endif() 0312 0313 feature_summary(WHAT ALL INCLUDE_QUIET_PACKAGES FATAL_ON_MISSING_REQUIRED_PACKAGES)