Warning, /education/kalzium/CMakeLists.txt is written in an unsupported language. File is not indexed.
0001 cmake_minimum_required(VERSION 3.16)
0002
0003 # KDE Application Version, managed by release script
0004 set(RELEASE_SERVICE_VERSION_MAJOR "24")
0005 set(RELEASE_SERVICE_VERSION_MINOR "04")
0006 set(RELEASE_SERVICE_VERSION_MICRO "70")
0007 set(RELEASE_SERVICE_VERSION "${RELEASE_SERVICE_VERSION_MAJOR}.${RELEASE_SERVICE_VERSION_MINOR}.${RELEASE_SERVICE_VERSION_MICRO}")
0008
0009 project(kalzium VERSION ${RELEASE_SERVICE_VERSION})
0010
0011 set(QT_MIN_VERSION "5.15.2")
0012 set(KF5_MIN_VERSION "5.92.0")
0013 set(KDE_COMPILERSETTINGS_LEVEL "5.82")
0014
0015 set(CMAKE_CXX_STANDARD 17)
0016 set(CMAKE_CXX_STANDARD_REQUIRED ON)
0017
0018 find_package(ECM ${KF5_MIN_VERSION} REQUIRED NO_MODULE)
0019 set(CMAKE_MODULE_PATH ${ECM_MODULE_PATH} ${kalzium_SOURCE_DIR}/cmake/modules)
0020
0021 include(KDEInstallDirs)
0022 include(KDECompilerSettings NO_POLICY_SCOPE)
0023 include(KDECMakeSettings)
0024 include(FeatureSummary)
0025 include(ECMInstallIcons)
0026 include(ECMMarkNonGuiExecutable)
0027 include(CheckIncludeFiles)
0028 include(ECMAddAppIcon)
0029 include(ECMSetupVersion)
0030 include(ECMQtDeclareLoggingCategory)
0031 include(GenerateExportHeader)
0032 include(KDEGitCommitHooks)
0033 include(KDEClangFormat)
0034 include(ECMDeprecationSettings)
0035 file(GLOB_RECURSE ALL_CLANG_FORMAT_SOURCE_FILES *.cpp *.h *.c)
0036 kde_clang_format(${ALL_CLANG_FORMAT_SOURCE_FILES})
0037
0038
0039 find_package(Gettext REQUIRED)
0040 find_package(PkgConfig)
0041 find_package(OpenBabel3 3.1)
0042 if(NOT ${OpenBabel3_FOUND})
0043 find_package(OpenBabel2)
0044 endif()
0045 if (QT_MAJOR_VERSION STREQUAL "5")
0046 find_package(AvogadroLibs)
0047 endif()
0048 find_package(Eigen3 CONFIG)
0049 find_package(OCaml)
0050 find_package(Libfacile)
0051
0052 pkg_check_modules(CHEMICAL_MIME_DATA chemical-mime-data)
0053 check_include_files(ieeefp.h HAVE_IEEEFP_H)
0054
0055 # create configuration file
0056 set(HAVE_FACILE ${LIBFACILE_FOUND})
0057 set(HAVE_OPENBABEL3 ${OpenBabel3_FOUND})
0058 set(HAVE_OPENBABEL2 ${OPENBABEL2_FOUND})
0059 if(HAVE_OPENBABEL2 OR HAVE_OPENBABEL3)
0060 set(HAVE_OPENBABEL 1)
0061 endif()
0062 set(HAVE_EIGEN ${EIGEN3_FOUND})
0063 if (QT_MAJOR_VERSION STREQUAL "6")
0064 set(HAVE_AVOGADRO FALSE)
0065 else()
0066 set(HAVE_AVOGADRO ${AvogadroLibs_FOUND})
0067 endif()
0068
0069 if(HAVE_OPENBABEL3)
0070 set(OPENBABEL_INCLUDE_DIR ${OpenBabel3_INCLUDE_DIRS})
0071 set(OPENBABEL_LIBRARIES ${OpenBabel3_LIBRARIES})
0072 elseif(HAVE_OPENBABEL2)
0073 set(OPENBABEL_INCLUDE_DIR ${OPENBABEL2_INCLUDE_DIR})
0074 set(OPENBABEL_LIBRARIES ${OPENBABEL2_LIBRARIES})
0075 endif()
0076
0077 configure_file(
0078 ${CMAKE_CURRENT_SOURCE_DIR}/config-kalzium.h.in
0079 ${CMAKE_CURRENT_BINARY_DIR}/config-kalzium.h
0080 )
0081
0082 include_directories(${AvogadroLibs_INCLUDE_DIRS})
0083
0084 if (QT_MAJOR_VERSION STREQUAL "6")
0085 set(QT_REQUIRED_VERSION "6.4.0")
0086 set(KF_MIN_VERSION "5.240.0")
0087 set(KF_MAJOR_VERSION "6")
0088 else()
0089 set(KF_MAJOR_VERSION "5")
0090 endif()
0091
0092 find_package(Qt${QT_MAJOR_VERSION} ${QT_MIN_VERSION} REQUIRED COMPONENTS
0093 Core
0094 Gui
0095 Svg
0096 Widgets
0097 Xml
0098 )
0099
0100 if (QT_MAJOR_VERSION STREQUAL "6")
0101 find_package(Qt${QT_MAJOR_VERSION} ${QT_MIN_VERSION} REQUIRED COMPONENTS Core5Compat StateMachine)
0102 else()
0103 find_package(Qt${QT_MAJOR_VERSION} ${QT_MIN_VERSION} REQUIRED COMPONENTS Script)
0104 endif()
0105
0106 find_package(KF${KF_MAJOR_VERSION} ${KF5_MIN_VERSION} REQUIRED COMPONENTS
0107 Archive
0108 Config
0109 ConfigWidgets
0110 CoreAddons
0111 DocTools
0112 I18n
0113 ItemViews
0114 KIO
0115 Plotting
0116 UnitConversion
0117 WidgetsAddons
0118 TextWidgets
0119 XmlGui
0120 )
0121
0122 ecm_setup_version("5.0.0"
0123 VARIABLE_PREFIX KALZIUMLIB
0124 )
0125
0126 add_definitions(
0127 -DQT_NO_URL_CAST_FROM_STRING
0128 )
0129 if(MSVC)
0130 # for correctly linking openbabel:
0131 # see https://www.mail-archive.com/openbabel-devel@lists.sourceforge.net/msg01975.html
0132 add_definitions(-DUSING_DYNAMIC_LIBS)
0133 endif()
0134
0135 ecm_set_disabled_deprecation_versions(QT 5.14.0
0136 KF 5.101
0137 )
0138
0139
0140 if (HAVE_OPENBABEL AND AvogadroLibs_FOUND AND EIGEN3_FOUND)
0141 find_package(Qt${QT_MAJOR_VERSION}OpenGL ${QT_MIN_VERSION} REQUIRED)
0142 find_package(KF${KF_MAJOR_VERSION}NewStuff ${KF5_MIN_VERSION} REQUIRED)
0143 # avoid compilerwarnings about redefinitions
0144 # todo: use check_function_exits() ?
0145 message(STATUS "Kalzium molecular editor enabled")
0146 if (WIN32)
0147 add_definitions(-DHAVE_SNPRINTF -DHAVE_STRCASECMP -DHAVE_STRNCASECMP)
0148 endif ()
0149 add_subdirectory(compoundviewer)
0150 else ()
0151 message(STATUS "Kalzium molecular editor disabled")
0152 endif ()
0153
0154 add_subdirectory(doc)
0155 add_subdirectory(src)
0156 add_subdirectory(data)
0157 add_subdirectory(libscience)
0158
0159 ki18n_install(po)
0160 if (KF5DocTools_FOUND)
0161 kdoctools_install(po)
0162 endif()
0163 install(FILES org.kde.kalzium.appdata.xml DESTINATION ${KDE_INSTALL_METAINFODIR})
0164
0165 ecm_qt_install_logging_categories(
0166 EXPORT KALZIUM
0167 FILE kalzium.categories
0168 DESTINATION ${KDE_INSTALL_LOGGINGCATEGORIESDIR}
0169 )
0170
0171 feature_summary(WHAT ALL FATAL_ON_MISSING_REQUIRED_PACKAGES)