diff --git a/CMakeLists.txt b/CMakeLists.txt index 191fc938..7e84f5fd 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1,131 +1,131 @@ cmake_minimum_required (VERSION 3.5 FATAL_ERROR) set(CMAKE_CXX_STANDARD 11) set(CMAKE_CXX_STANDARD_REQUIRED ON) # KDE Application Version, managed by release script set (KDE_APPLICATIONS_VERSION_MAJOR "19") set (KDE_APPLICATIONS_VERSION_MINOR "11") set (KDE_APPLICATIONS_VERSION_MICRO "80") set (KDE_APPLICATIONS_VERSION "${KDE_APPLICATIONS_VERSION_MAJOR}.${KDE_APPLICATIONS_VERSION_MINOR}.${KDE_APPLICATIONS_VERSION_MICRO}") project(cantor VERSION ${KDE_APPLICATIONS_VERSION}) set(KF5_MIN_VERSION "5.49.0") find_package(ECM 5.15.0 REQUIRED CONFIG) set(CMAKE_MODULE_PATH ${cantor_SOURCE_DIR}/cmake ${CMAKE_MODULE_PATH} ${ECM_MODULE_PATH} ${ECM_KDE_MODULE_DIR}) find_package(Qt5 5.6.0 CONFIG REQUIRED Core Widgets PrintSupport Svg Xml XmlPatterns Network Test) find_package(KF5 ${KF5_MIN_VERSION} REQUIRED Config Crash Completion DocTools NewStuff IconThemes TextEditor CoreAddons Archive Parts SyntaxHighlighting TextWidgets KIO XmlGui I18n) find_package(Poppler "0.62.0" REQUIRED COMPONENTS Qt5) if(NOT WIN32) find_package(KF5 ${KF5_MIN_VERSION} REQUIRED Pty) endif() include(FeatureSummary) include(ECMInstallIcons) include(ECMSetupVersion) include(KDEInstallDirs) include(KDECompilerSettings NO_POLICY_SCOPE) include(KDECMakeSettings) include(KDEFrameworkCompilerSettings) include(ECMAddAppIcon) include(GenerateExportHeader) -include(thirdparty/CMakeLists.txt) +add_subdirectory(thirdparty) if(NOT WIN32) set_package_properties(LibSpectre PROPERTIES DESCRIPTION "A PostScript rendering library" URL "http://libspectre.freedesktop.org/wiki/" TYPE OPTIONAL PURPOSE "Support for rendering EPS files in Cantor") find_package(LibSpectre) if(LIBSPECTRE_FOUND) set(WITH_EPS On) else(LIBSPECTRE_FOUND) set(WITH_EPS Off) endif(LIBSPECTRE_FOUND) else(NOT WIN32) set(WITH_EPS Off) endif(NOT WIN32) #[[ find_package(Discount 2.2.0) set_package_properties(Discount PROPERTIES DESCRIPTION "A C implementation of the Markdown markup language" URL "https://www.pell.portland.or.us/~orc/Code/discount/" TYPE OPTIONAL PURPOSE "Used for Markdown entries in Cantor") ]]# add_definitions(-DQT_USE_FAST_CONCATENATION -DQT_USE_FAST_OPERATOR_PLUS) string(TOLOWER "${CMAKE_BUILD_TYPE}" BUILD_NAME) if (BUILD_NAME STREQUAL "release" OR BUILD_NAME STREQUAL "") add_definitions(-DQT_NO_DEBUG_OUTPUT) endif() kde_enable_exceptions() add_subdirectory(doc) add_subdirectory(src) add_subdirectory(icons) set(CMAKECONFIG_INSTALL_DIR "${KDE_INSTALL_CMAKEPACKAGEDIR}/Cantor") configure_package_config_file( ${CMAKE_CURRENT_SOURCE_DIR}/CantorConfig.cmake.in ${CMAKE_CURRENT_BINARY_DIR}/CantorConfig.cmake INSTALL_DESTINATION ${CMAKECONFIG_INSTALL_DIR}/ #PATH_VARS INCLUDE_INSTALL_DIR SYSCONFIG_INSTALL_DIR ) ecm_setup_version(${KDE_APPLICATIONS_VERSION} VARIABLE_PREFIX CANTOR VERSION_HEADER "${CMAKE_CURRENT_BINARY_DIR}/cantor_version.h" PACKAGE_VERSION_FILE "${CMAKE_CURRENT_BINARY_DIR}/CantorConfigVersion.cmake" ) install( FILES ${CMAKE_CURRENT_BINARY_DIR}/CantorConfig.cmake ${CMAKE_CURRENT_BINARY_DIR}/CantorConfigVersion.cmake DESTINATION ${CMAKECONFIG_INSTALL_DIR} COMPONENT Devel ) install(EXPORT CantorTargets DESTINATION "${CMAKECONFIG_INSTALL_DIR}" FILE CantorTargets.cmake NAMESPACE Cantor:: ) install(FILES org.kde.cantor.appdata.xml DESTINATION ${KDE_INSTALL_METAINFODIR}) feature_summary(WHAT ALL INCLUDE_QUIET_PACKAGES FATAL_ON_MISSING_REQUIRED_PACKAGES) diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index ecc0963d..3c26c4c6 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -1,113 +1,113 @@ ######################################################################### # Subdirectories ######################################################################### add_subdirectory(lib) add_subdirectory(scripteditor) include_directories( lib ${CMAKE_CURRENT_BINARY_DIR}/lib) if(BUILD_TESTING) include(ECMMarkAsTest) include_directories( lib/test ) endif(BUILD_TESTING) add_subdirectory(backends) add_subdirectory(assistants) add_subdirectory(xslt) add_subdirectory(panelplugins) #build the config object in a separate library, shared between shell and part kconfig_add_kcfg_files(config_SRCS settings.kcfgc) add_library( cantor_config SHARED ${config_SRCS} ) target_link_libraries( cantor_config KF5::Parts KF5::NewStuff ) install( TARGETS cantor_config ${KDE_INSTALL_TARGETS_DEFAULT_ARGS} ) set(cantor_SRCS main.cpp cantor.cpp backendchoosedialog.cpp ) install(FILES cantor.kcfg DESTINATION ${KDE_INSTALL_KCFGDIR}) ki18n_wrap_ui(cantor_SRCS settings.ui) ki18n_wrap_ui(cantor_SRCS backendchooser.ui) file(GLOB ICONS_SRCS "${CMAKE_CURRENT_SOURCE_DIR}/../icons/*-apps-cantor.png") ecm_add_app_icon(cantor_SRCS ICONS ${ICONS_SRCS}) add_executable(cantor ${cantor_SRCS}) target_link_libraries(cantor KF5::Parts KF5::NewStuff KF5::ConfigCore KF5::CoreAddons KF5::ConfigGui KF5::Crash KF5::XmlGui cantorlibs cantor_config) ########### install files ############### install(TARGETS cantor ${KDE_INSTALL_TARGETS_DEFAULT_ARGS} ) install( PROGRAMS org.kde.cantor.desktop DESTINATION ${KDE_INSTALL_APPDIR} ) install( FILES cantor_shell.rc DESTINATION ${KDE_INSTALL_KXMLGUI5DIR}/cantor ) install( FILES cantor.knsrc DESTINATION ${KDE_INSTALL_CONFDIR} ) ######################################################################### # KPART SECTION ######################################################################### set(cantor_PART_SRCS cantor_part.cpp worksheet.cpp worksheetview.cpp worksheetentry.cpp worksheettextitem.cpp worksheetimageitem.cpp commandentry.cpp textentry.cpp markdownentry.cpp pagebreakentry.cpp imageentry.cpp latexentry.cpp placeholderentry.cpp worksheetcursor.cpp searchbar.cpp actionbar.cpp worksheettoolbutton.cpp imagesettingsdialog.cpp scripteditor/scripteditorwidget.cpp resultitem.cpp textresultitem.cpp imageresultitem.cpp animationresultitem.cpp loadedexpression.cpp animation.cpp mathrender.cpp mathrendertask.cpp extended_document.cpp ) ki18n_wrap_ui(cantor_PART_SRCS imagesettings.ui) ki18n_wrap_ui(cantor_PART_SRCS standardsearchbar.ui) ki18n_wrap_ui(cantor_PART_SRCS extendedsearchbar.ui) string(CONCAT PATH_TO_CANTOR_BACKENDS ${CMAKE_INSTALL_PREFIX} "/${PLUGIN_INSTALL_DIR}") configure_file (config-cantor.h.cmake ${CMAKE_CURRENT_BINARY_DIR}/config-cantor.h ) kcoreaddons_add_plugin(cantorpart SOURCES ${cantor_PART_SRCS} JSON "cantor_part.json" INSTALL_NAMESPACE ".") set_target_properties(cantorpart PROPERTIES PREFIX "${CMAKE_SHARED_LIBRARY_PREFIX}") target_link_libraries(cantorpart KF5::Parts KF5::NewStuff KF5::TextEditor ${Qt5XmlPatterns_LIBRARIES} KF5::KIOCore KF5::KIOFileWidgets KF5::KIOWidgets Qt5::PrintSupport cantorlibs cantor_config ) -if(Discount_FOUND) +# if(Discount_FOUND) target_link_libraries(cantorpart Discount::Lib) -endif(Discount_FOUND) +# endif(Discount_FOUND) if(BUILD_TESTING) add_subdirectory(test) endif(BUILD_TESTING) install( FILES cantor_part.rc DESTINATION ${KDE_INSTALL_KXMLGUI5DIR}/cantor ) install( FILES cantor_scripteditor.rc DESTINATION ${KDE_INSTALL_KXMLGUI5DIR}/cantor ) diff --git a/thirdparty/CMakeLists.txt b/thirdparty/CMakeLists.txt index 7d4356d4..619bbbb2 100644 --- a/thirdparty/CMakeLists.txt +++ b/thirdparty/CMakeLists.txt @@ -1,32 +1,33 @@ # This cmake file are managing embedded 3party Cantor dependencies # 3dparty patched Discount # Embedded for a while include(ExternalProject) set (DISCOUNT_ONLY_LIBRARY ON) set (DISCOUNT_MAKE_INSTALL OFF) ExternalProject_Add( discount_project - URL ${CMAKE_CURRENT_SOURCE_DIR}/thirdparty/discount-2.2.6-patched + URL ${CMAKE_CURRENT_SOURCE_DIR}/discount-2.2.6-patched SOURCE_SUBDIR cmake CMAKE_ARGS DISCOUNT_ONLY_LIBRARY DISCOUNT_MAKE_INSTALL CMAKE_CACHE_ARGS "-DCMAKE_POSITION_INDEPENDENT_CODE:BOOL=true" - PREFIX ${CMAKE_CURRENT_BINARY_DIR}/thirdparty - STEP_TARGETS configure build - EXCLUDE_FROM_ALL TRUE + PREFIX ${CMAKE_CURRENT_BINARY_DIR} + INSTALL_COMMAND "" + BINARY_DIR ${CMAKE_CURRENT_BINARY_DIR}/discount_project-build + BUILD_BYPRODUCTS ${CMAKE_CURRENT_BINARY_DIR}/discount_project-build/libmarkdown${CMAKE_STATIC_LIBRARY_SUFFIX} ) ExternalProject_Get_Property(discount_project source_dir) ExternalProject_Get_Property(discount_project binary_dir) -add_library(Discount::Lib STATIC IMPORTED) +add_library(Discount::Lib STATIC IMPORTED GLOBAL) set_target_properties(Discount::Lib PROPERTIES INTERFACE_INCLUDE_DIRECTORIES ${source_dir} IMPORTED_LOCATION ${binary_dir}/libmarkdown${CMAKE_STATIC_LIBRARY_SUFFIX} POSITION_INDEPENDENT_CODE ON ) add_dependencies(Discount::Lib discount_project-build) set(Discount_FOUND TRUE) # preview.sty -install(FILES thirdparty/standalone.cls DESTINATION ${KDE_INSTALL_DATADIR}/cantor/latex ) +install(FILES standalone.cls DESTINATION ${KDE_INSTALL_DATADIR}/cantor/latex)