Warning, /education/kalzium/src/CMakeLists.txt is written in an unsupported language. File is not indexed.

0001 add_executable(kalzium)
0002 
0003 target_include_directories(kalzium PRIVATE
0004    tools
0005    calculator
0006    psetable
0007    isotopetable
0008    ${CMAKE_CURRENT_BINARY_DIR}/..
0009 )
0010 
0011 ecm_setup_version(${RELEASE_SERVICE_VERSION}
0012    VARIABLE_PREFIX KALZIUM
0013    VERSION_HEADER kalzium_version.h
0014 )
0015 
0016 ecm_qt_declare_logging_category(kalzium
0017    HEADER kalzium_debug.h
0018    IDENTIFIER KALZIUM_LOG
0019    CATEGORY_NAME org.kde.kalzium
0020    DESCRIPTION "Kalzium"
0021    EXPORT KALZIUM
0022 )
0023 
0024 # The tools can only be built when OpenBabel is found.
0025 # The moleculeviewer needs not only OpenBabel but also Eigen and Avogadro,
0026 # so there is a nested if-check.
0027 if (HAVE_OPENBABEL)
0028    target_sources(kalzium PRIVATE
0029       tools/obconverter.cpp
0030    )
0031 
0032    ki18n_wrap_ui(kalzium
0033       tools/obconverterwidget.ui
0034    )
0035    target_include_directories(kalzium SYSTEM PRIVATE ${OPENBABEL_INCLUDE_DIR})
0036 
0037    if (EIGEN3_FOUND AND AvogadroLibs_FOUND)
0038       #include(${Avogadro_USE_FILE})
0039 
0040       target_sources(kalzium PRIVATE
0041          tools/moleculeview.cpp
0042          ../compoundviewer/kalziumglwidget.cpp
0043       )
0044 
0045       ki18n_wrap_ui(kalzium
0046          tools/moleculeviewerwidget.ui
0047       )
0048    endif ()
0049 endif ()
0050 
0051 ## Kalzium calculator files
0052 target_sources(kalzium PRIVATE
0053    calculator/calculator.cpp
0054    calculator/calculator.h
0055    calculator/concCalculator.cpp
0056    calculator/concCalculator.h
0057    calculator/gasCalculator.cpp
0058    calculator/gasCalculator.h
0059    calculator/nuclearCalculator.cpp
0060    calculator/nuclearCalculator.h
0061    calculator/titrationCalculator.cpp
0062    calculator/titrationCalculator.h
0063 #   calculator/massCalculator.cpp
0064 )
0065 ki18n_wrap_ui(kalzium
0066    calculator/calculator.ui
0067    calculator/nuclearCalculator.ui
0068    calculator/gasCalculator.ui
0069    calculator/concCalculator.ui
0070    calculator/settings_calc.ui
0071    calculator/titrationCalculator.ui
0072 #   calculator/massCalculator.ui
0073 )
0074 
0075 target_sources(kalzium PRIVATE
0076    colorutils.cpp
0077    colorutils.h
0078    detailedgraphicaloverview.cpp
0079    detailedgraphicaloverview.h
0080    detailinfodlg.cpp
0081    detailinfodlg.h
0082    elementdataviewer.cpp
0083    elementdataviewer.h
0084    exportdialog.cpp
0085    exportdialog.h
0086    gradientwidget_impl.cpp
0087    gradientwidget_impl.h
0088    isotopetable/informationitem.cpp
0089    isotopetable/informationitem.h
0090    isotopetable/isotopeguideview.cpp
0091    isotopetable/isotopeguideview.h
0092    isotopetable/isotopeitem.cpp
0093    isotopetable/isotopeitem.h
0094    isotopetable/isotopescene.cpp
0095    isotopetable/isotopescene.h
0096    isotopetable/isotopetabledialog.cpp
0097    isotopetable/isotopetabledialog.h
0098    isotopetable/isotopeview.cpp
0099    isotopetable/isotopeview.h
0100    kalzium.cpp
0101    kalziumdataobject.cpp
0102    kalziumdataobject.h
0103    kalziumelementproperty.cpp
0104    kalziumelementproperty.h
0105    kalziumgradienttype.cpp
0106    kalziumgradienttype.h
0107    kalzium.h
0108    kalziumnumerationtype.cpp
0109    kalziumnumerationtype.h
0110    kalziumschemetype.cpp
0111    kalziumschemetype.h
0112    kalziumunitcombobox.cpp
0113    kalziumunitcombobox.h
0114    kalziumutils.cpp
0115    kalziumutils.h
0116    kdeeduglossary.cpp
0117    kdeeduglossary.h
0118    legendwidget.cpp
0119    legendwidget.h
0120    main.cpp
0121    molcalcwidget.cpp
0122    molcalcwidget.h
0123    orbitswidget.cpp
0124    orbitswidget.h
0125    psetable/elementitem.cpp
0126    psetable/elementitem.h
0127    psetable/numerationitem.cpp
0128    psetable/numerationitem.h
0129    psetable/periodictablescene.cpp
0130    psetable/periodictablescene.h
0131    psetable/periodictablestates.cpp
0132    psetable/periodictablestates.h
0133    psetable/periodictableview.cpp
0134    psetable/periodictableview.h
0135    psetable/statemachine.cpp
0136    psetable/statemachine.h
0137    rsdialog.cpp
0138    rsdialog.h
0139    search.cpp
0140    search.h
0141    searchwidget.cpp
0142    searchwidget.h
0143    spectrumviewimpl.cpp
0144    spectrumviewimpl.h
0145    spectrumwidget.cpp
0146    spectrumwidget.h
0147    tableinfowidget.cpp
0148    tableinfowidget.h
0149    tablesdialog.cpp
0150    tablesdialog.h
0151    settings/kalziumconfigdialog.cpp
0152    settings/kalziumconfigdialog.h
0153    settings/unitsettingsdialog.cpp
0154    settings/unitsettingsdialog.h
0155    settings/isotopetablesettingsdialog.cpp
0156    settings/isotopetablesettingsdialog.h
0157    settings/isotopetablesettingscard.cpp
0158    settings/isotopetablesettingscard.h
0159 
0160    kalzium.qrc
0161 )
0162 
0163 if (LIBFACILE_FOUND)
0164    include(CMakeOCamlInstructions.cmake)
0165 
0166    target_sources(kalzium PRIVATE
0167       eqchemview.cpp
0168       ${CMAKE_CURRENT_BINARY_DIR}/solver.o
0169       ${CMAKE_CURRENT_BINARY_DIR}/modwrap.o
0170    )
0171    ki18n_wrap_ui(kalzium
0172       equationview.ui
0173    )
0174 endif ()
0175 
0176 ki18n_wrap_ui(kalzium
0177    isotopetable/isotopedialog.ui
0178    plotsetupwidget.ui
0179    molcalcwidgetbase.ui
0180    spectrumview.ui
0181    rswidget.ui
0182    gradientwidget.ui
0183    exportdialog.ui
0184    settings/settings_colors.ui
0185    settings/settings_gradients.ui
0186    )
0187 
0188 kconfig_add_kcfg_files(kalzium GENERATE_MOC prefs.kcfgc)
0189 
0190 file(GLOB ICONS_SRCS "${CMAKE_CURRENT_SOURCE_DIR}/*-apps-kalzium.png")
0191 ecm_add_app_icon(kalzium ICONS ${ICONS_SRCS})
0192 
0193 target_link_libraries(kalzium
0194     KF${KF_MAJOR_VERSION}::ConfigWidgets
0195     KF${KF_MAJOR_VERSION}::ItemViews
0196     KF${KF_MAJOR_VERSION}::KIOWidgets
0197     KF${KF_MAJOR_VERSION}::Plotting
0198     KF${KF_MAJOR_VERSION}::TextWidgets
0199     KF${KF_MAJOR_VERSION}::UnitConversion
0200     KF${KF_MAJOR_VERSION}::XmlGui
0201     Qt::Svg
0202     science
0203 )
0204 if (QT_MAJOR_VERSION STREQUAL "5")
0205     target_link_libraries(kalzium Qt::Script)
0206 else()
0207     target_link_libraries(kalzium Qt::StateMachine)
0208 endif()
0209 if (HAVE_OPENBABEL)
0210    target_link_libraries(kalzium ${OPENBABEL_LIBRARIES})
0211    if (EIGEN3_FOUND AND AvogadroLibs_FOUND)
0212       target_link_libraries(kalzium
0213          KF${KF_MAJOR_VERSION}::NewStuff
0214          Qt::OpenGL
0215          compoundviewer
0216          AvogadroQtGui
0217          AvogadroQtOpenGL
0218          AvogadroQtPlugins
0219          Eigen3::Eigen
0220        )
0221       install(FILES kalzium.knsrc DESTINATION ${KDE_INSTALL_KNSRCDIR})
0222    endif ()
0223 endif ()
0224 
0225 if (LIBFACILE_FOUND)
0226    link_directories(${OCAMLC_DIR})
0227    set(CMAKE_LIBRARY_PATH ${OCAMLC_DIR})
0228 
0229    find_library(OCAML_ASMRUN_LIBRARY NAMES asmrun)
0230    if (OCAML_ASMRUN_LIBRARY)
0231       target_link_libraries(kalzium ${OCAML_ASMRUN_LIBRARY})
0232    endif ()
0233 
0234    find_library(OCAML_STR_LIBRARY NAMES str)
0235    if (OCAML_STR_LIBRARY)
0236       target_link_libraries(kalzium ${OCAML_STR_LIBRARY})
0237    endif ()
0238 
0239    find_library(OCAML_NUMS_LIBRARY NAMES nums)
0240    if (OCAML_NUMS_LIBRARY)
0241       target_link_libraries(kalzium ${OCAML_NUMS_LIBRARY})
0242    endif ()
0243 
0244    target_link_libraries(kalzium m ${CMAKE_DL_LIBS})
0245 endif ()
0246 
0247 install(TARGETS kalzium ${KDE_INSTALL_TARGETS_DEFAULT_ARGS})
0248 
0249 install(PROGRAMS org.kde.kalzium.desktop org.kde.kalzium_cml.desktop DESTINATION ${KDE_INSTALL_APPDIR})
0250 install(FILES settings/kalzium.kcfg DESTINATION ${KDE_INSTALL_KCFGDIR})
0251 
0252 ecm_install_icons(ICONS
0253     16-apps-kalzium.png
0254     22-apps-kalzium.png
0255     32-apps-kalzium.png
0256     48-apps-kalzium.png
0257     64-apps-kalzium.png
0258     128-apps-kalzium.png
0259     sc-apps-kalzium.svgz
0260     DESTINATION ${KDE_INSTALL_ICONDIR}
0261     THEME hicolor
0262 )