Warning, /sdk/pology/CMakeLists.txt is written in an unsupported language. File is not indexed.
0001 cmake_minimum_required(VERSION 2.8.3)
0002
0003 ###
0004 ### Set project.
0005 ###
0006
0007 set(CMAKE_MODULE_PATH ${CMAKE_CURRENT_SOURCE_DIR}/cmake ${CMAKE_MODULE_PATH})
0008
0009 set(PROJECT_NAME "pology")
0010 file(READ "VERSION" version)
0011 string(REPLACE "\n" "" version "${version}")
0012 set(PROJECT_VERSION "${version}")
0013 message(STATUS "Configuring ${PROJECT_NAME} ${PROJECT_VERSION}")
0014 project(${PROJECT_NAME} NONE)
0015
0016 if(NOT cmake_install_prefix_cached)
0017 if(CMAKE_INSTALL_PREFIX_INITIALIZED_TO_DEFAULT)
0018 message(STATUS
0019 "Installation prefix: ${CMAKE_INSTALL_PREFIX} "
0020 "(use -DCMAKE_INSTALL_PREFIX= to set manually)")
0021 else()
0022 message(STATUS "Installation prefix: ${CMAKE_INSTALL_PREFIX}")
0023 endif()
0024 endif()
0025 set(cmake_install_prefix_cached ${CMAKE_INSTALL_PREFIX}
0026 CACHE INTERNAL "Cache stamp for CMAKE_INSTALL_PREFIX.")
0027
0028 find_package(Python3 3.7 REQUIRED)
0029 find_package(DocbookXSL 1.75.2)
0030 find_package(LibXml2)
0031 find_package(Xsltproc)
0032 find_package(Pygments 1.6)
0033 find_package(Epydoc 3.0)
0034 find_package(Msgfmt 0.17)
0035 find_package(Msgmerge 0.17)
0036
0037 if(DOCBOOKXSL_FOUND AND LIBXML2_FOUND AND XSLTPROC_FOUND)
0038 set(CAN_BUILD_DOCBOOK yes)
0039 # Configure paths in style sheet extensions.
0040 set(CONFIG_DBXSLDIR ${DOCBOOK_XSL_DIR})
0041 file(GLOB_RECURSE xslfiles RELATIVE ${CMAKE_SOURCE_DIR} "util/*.xsl")
0042 foreach(xslfile ${xslfiles})
0043 configure_file(${CMAKE_SOURCE_DIR}/${xslfile}
0044 ${CMAKE_BINARY_DIR}/${xslfile} @ONLY)
0045 endforeach()
0046 else()
0047 set(CAN_BUILD_DOCBOOK no)
0048 endif()
0049
0050 if(PYGMENTS_FOUND)
0051 set(CAN_HIGHLIGHT yes)
0052 else()
0053 set(CAN_HIGHLIGHT no)
0054 endif()
0055
0056 if(EPYDOC_FOUND)
0057 set(CAN_BUILD_EPYDOC yes)
0058 else()
0059 set(CAN_BUILD_EPYDOC no)
0060 endif()
0061
0062 if(MSGFMT_FOUND AND MSGMERGE_FOUND)
0063 set(CAN_BUILD_PO yes)
0064 else()
0065 set(CAN_BUILD_PO no)
0066 endif()
0067
0068 # Pology is needed to build itself, bootstrap it.
0069 set(ENV{PYTHON_PATH} "${CMAKE_SOURCE_DIR}:$ENV{PYTHON_PATH}")
0070 set(POLOGY_LIB_DIR "${CMAKE_SOURCE_DIR}/pology")
0071
0072 # Set general installation paths.
0073 set(BIN_INSTALL_DIR ${CMAKE_INSTALL_PREFIX}/bin)
0074 set(DATA_INSTALL_DIR ${CMAKE_INSTALL_PREFIX}/share/${PROJECT_NAME})
0075 set(DOC_INSTALL_DIR ${CMAKE_INSTALL_PREFIX}/share/doc/${PROJECT_NAME})
0076 set(MO_INSTALL_DIR ${CMAKE_INSTALL_PREFIX}/share/locale)
0077
0078 # Include modules used by many subdirectories.
0079 include(DocbookTools)
0080 include(EpydocTools)
0081 include(GettextTools)
0082 include(PologyTools)
0083 include(ProjectTools)
0084 include(Python3Tools)
0085
0086 # Include subdirectories.
0087 add_subdirectory(pology)
0088 add_subdirectory(scripts)
0089 add_subdirectory(sieve)
0090 add_subdirectory(lang)
0091 add_subdirectory(doc)
0092 add_subdirectory(spec)
0093 add_subdirectory(completion)
0094 add_subdirectory(syntax)
0095 add_subdirectory(po)
0096
0097 # Report build problems.
0098
0099 if(NOT CAN_BUILD_DOCBOOK)
0100 set(msg "WARNING:
0101 Docbook documentation (e.g. the Pology user manual) will not be built
0102 because the following dependencies are missing or too old:")
0103 if(NOT DOCBOOKXSL_FOUND)
0104 set(msg "${msg}
0105 - Docbook XSL stylesheets
0106 home page: http://wiki.docbook.org/DocBookXslStylesheets,
0107 possible package names: docbook-xsl")
0108 endif()
0109 if(NOT LIBXML2_FOUND)
0110 set(msg "${msg}
0111 - xmllint, XML validator
0112 home page: http://xmlsoft.org/
0113 possible package names: libxml2-utils")
0114 endif()
0115 if(NOT XSLTPROC_FOUND)
0116 set(msg "${msg}
0117 - xsltproc, XSLT processor
0118 home page: http://xmlsoft.org
0119 possible package names: xsltproc")
0120 endif()
0121 message(STATUS "${msg}")
0122 else()
0123 if(NOT CAN_HIGHLIGHT)
0124 set(msg "WARNING:
0125 Docbook documentation (e.g. the Pology user manual) will lack some features
0126 because the following dependencies are missing or too old:")
0127 set(msg "${msg}
0128 - Pygments, Python syntax highlighter
0129 home page: http://pygments.org
0130 possible package names: python-pygments, pygments")
0131 endif()
0132 message(STATUS "${msg}")
0133 endif()
0134
0135 if(NOT CAN_BUILD_EPYDOC)
0136 set(msg "WARNING:
0137 API documentation for the Pology Python library will not be built
0138 because the following dependencies are missing or too old:")
0139 if(NOT EPYDOC_FOUND)
0140 set(msg "${msg}
0141 - Epydoc, Python doctring to HTML doc generator
0142 home page: http://epydoc.sourceforge.net
0143 possible package names: python-epydoc, epydoc")
0144 endif()
0145 message(STATUS "${msg}")
0146 endif()
0147
0148 if(NOT CAN_BUILD_PO)
0149 set(msg "WARNING:
0150 Translations of Pology user interface and documentation will not be built
0151 because the following dependencies are missing or too old:")
0152 if(NOT MSGFMT_FOUND OR NOT MSGMERGE_FOUND)
0153 set(msg "${msg}
0154 - Gettext tools
0155 home page: http://www.gnu.org/software/gettext/
0156 possible package names: gettext")
0157 endif()
0158 message(STATUS "${msg}")
0159 endif()
0160