Warning, /education/cantor/thirdparty/discount-2.2.6-patched/cmake/CMakeLists.txt is written in an unsupported language. File is not indexed.
0001 cmake_minimum_required(VERSION 2.8.12) 0002 0003 project(DISCOUNT C) 0004 0005 get_filename_component(_ROOT "${CMAKE_CURRENT_LIST_DIR}" PATH) 0006 0007 file(READ "${_ROOT}/VERSION" ${PROJECT_NAME}_VERSION) 0008 string(STRIP "${${PROJECT_NAME}_VERSION}" ${PROJECT_NAME}_VERSION) 0009 0010 set(${PROJECT_NAME}_WITH_TABSTOPS "4" CACHE STRING 0011 "Set tabstops to N characters (default is 4)") 0012 set(TABSTOP "${${PROJECT_NAME}_WITH_TABSTOPS}") 0013 0014 set(${PROJECT_NAME}_MAKE_INSTALL ON CACHE BOOL 0015 "Set to OFF to disable install rules (default is ON)") 0016 0017 set(${PROJECT_NAME}_INSTALL_SAMPLES OFF CACHE BOOL 0018 "Set to ON to install sample programs (default is OFF)") 0019 0020 set(${PROJECT_NAME}_ONLY_LIBRARY OFF CACHE BOOL 0021 "Set to ON to only build markdown library (default is OFF)") 0022 0023 # Check headers 0024 include(CheckIncludeFile) 0025 check_include_file(libgen.h HAVE_LIBGEN_H) 0026 check_include_file(pwd.h HAVE_PWD_H) 0027 check_include_file(alloca.h HAVE_ALLOCA_H) 0028 check_include_file(malloc.h HAVE_MALLOC_H) 0029 check_include_file(sys/stat.h HAVE_STAT) 0030 0031 # Types detection (from configure.inc: AC_SCALAR_TYPES ()) 0032 include(CheckTypeSize) 0033 check_type_size("unsigned long" SIZEOF_ULONG BUILTIN_TYPES_ONLY) 0034 check_type_size("unsigned int" SIZEOF_UINT BUILTIN_TYPES_ONLY) 0035 check_type_size("unsigned short" SIZEOF_USHORT BUILTIN_TYPES_ONLY) 0036 0037 if(SIZEOF_ULONG EQUAL 4) 0038 set(DWORD "unsigned long") 0039 elseif(SIZEOF_UINT EQUAL 4) 0040 set(DWORD "unsigned int") 0041 else() 0042 message(FATAL_ERROR "Could not detect DWORD type") 0043 endif() 0044 0045 if(SIZEOF_UINT EQUAL 2) 0046 set(WORD "unsigned int") 0047 elseif(SIZEOF_USHORT EQUAL 2) 0048 set(WORD "unsigned short") 0049 else() 0050 message(FATAL_ERROR "Could not detect WORD type") 0051 endif() 0052 0053 set(BYTE "unsigned char") 0054 0055 # Check symbols 0056 include(CheckSymbolExists) 0057 foreach(_symbol 0058 bzero 0059 strcasecmp _stricmp 0060 strncasecmp _strnicmp) 0061 string(TOUPPER ${_symbol} _SYMBOL) 0062 check_symbol_exists(${_symbol} string.h HAVE_${_SYMBOL}) 0063 endforeach() 0064 check_symbol_exists(random stdlib.h HAVE_RANDOM) 0065 check_symbol_exists(srandom stdlib.h HAVE_SRANDOM) 0066 check_symbol_exists(getpwuid pwd.h HAVE_GETPWUID) 0067 check_symbol_exists(basename libgen.h HAVE_BASENAME) 0068 check_symbol_exists(fchdir unistd.h HAVE_FCHDIR) 0069 if(HAVE_STAT) 0070 check_symbol_exists(S_ISCHR sys/stat.h HAVE_S_ISCHR) 0071 check_symbol_exists(S_ISFIFO sys/stat.h HAVE_S_ISFIFO) 0072 check_symbol_exists(S_ISSOCK sys/stat.h HAVE_S_ISSOCK) 0073 endif() 0074 0075 if(NOT HAVE_BZERO) 0076 set(DEFINE_BZERO "#define bzero(p, n) memset(p, 0, n)") 0077 endif() 0078 0079 if(NOT HAVE_STRCASECMP) 0080 if(HAVE__STRICMP) 0081 set(DEFINE_STRCASECMP "#define strcasecmp _stricmp") 0082 else() 0083 set(DEFINE_STRCASECMP "#error The symbol strcasecmp is not defined.") 0084 endif() 0085 endif() 0086 0087 if(NOT HAVE_STRNCASECMP) 0088 if(HAVE__STRNICMP) 0089 set(DEFINE_STRNCASECMP "#define strncasecmp _strnicmp") 0090 else() 0091 set(DEFINE_STRNCASECMP "#error The symbol strncasecmp is not defined.") 0092 endif() 0093 endif() 0094 0095 if(NOT HAVE_S_ISCHR OR NOT HAVE_S_ISFIFO OR NOT HAVE_S_ISSOCK) 0096 set(HAVE_STAT "") 0097 endif() 0098 0099 configure_file(config.h.in 0100 "${_ROOT}/config.h" 0101 @ONLY) 0102 0103 configure_file("${_ROOT}/version.c.in" 0104 "${_ROOT}/version.c" 0105 @ONLY) 0106 set_property(SOURCE "${_ROOT}/version.c" APPEND PROPERTY COMPILE_DEFINITIONS 0107 BRANCH="" 0108 VERSION="${${PROJECT_NAME}_VERSION}") 0109 0110 configure_file("${_ROOT}/mkdio.h.in" 0111 "${_ROOT}/mkdio.h" 0112 @ONLY) 0113 0114 include_directories("${_ROOT}") 0115 0116 add_executable(mktags 0117 "${_ROOT}/mktags.c") 0118 0119 add_custom_command(OUTPUT "${_ROOT}/blocktags" 0120 COMMAND mktags > blocktags 0121 WORKING_DIRECTORY "${_ROOT}") 0122 0123 add_library(libmarkdown 0124 "${_ROOT}/mkdio.c" 0125 "${_ROOT}/markdown.c" 0126 "${_ROOT}/dumptree.c" 0127 "${_ROOT}/generate.c" 0128 "${_ROOT}/resource.c" 0129 "${_ROOT}/docheader.c" 0130 "${_ROOT}/version.c" 0131 "${_ROOT}/toc.c" 0132 "${_ROOT}/css.c" 0133 "${_ROOT}/xml.c" 0134 "${_ROOT}/Csio.c" 0135 "${_ROOT}/xmlpage.c" 0136 "${_ROOT}/basename.c" 0137 "${_ROOT}/emmatch.c" 0138 "${_ROOT}/github_flavoured.c" 0139 "${_ROOT}/setup.c" 0140 "${_ROOT}/blocktags" "${_ROOT}/tags.c" 0141 "${_ROOT}/html5.c" 0142 "${_ROOT}/flags.c") 0143 0144 if(NOT MSVC) 0145 set_target_properties(libmarkdown PROPERTIES 0146 OUTPUT_NAME markdown) 0147 endif() 0148 0149 if(NOT ${PROJECT_NAME}_ONLY_LIBRARY) 0150 add_library(common OBJECT 0151 "${_ROOT}/pgm_options.c" 0152 "${_ROOT}/gethopt.c") 0153 0154 add_executable(markdown 0155 "${_ROOT}/main.c" 0156 $<TARGET_OBJECTS:common>) 0157 0158 target_link_libraries(markdown PRIVATE libmarkdown) 0159 0160 add_executable(mkd2html 0161 "${_ROOT}/mkd2html.c" 0162 $<TARGET_OBJECTS:common> 0163 "${_ROOT}/notspecial.c") 0164 0165 target_link_libraries(mkd2html PRIVATE libmarkdown) 0166 0167 add_executable(makepage 0168 "${_ROOT}/makepage.c" 0169 $<TARGET_OBJECTS:common>) 0170 0171 target_link_libraries(makepage PRIVATE libmarkdown) 0172 endif() 0173 0174 if(${PROJECT_NAME}_MAKE_INSTALL) 0175 string(TOLOWER ${PROJECT_NAME} _PACKAGE_NAME) 0176 include(GNUInstallDirs) 0177 if(NOT DEFINED CMAKE_INSTALL_CMAKEDIR) 0178 set(CMAKE_INSTALL_CMAKEDIR 0179 "${CMAKE_INSTALL_LIBDIR}/cmake/${_PACKAGE_NAME}" 0180 CACHE STRING "CMake packages") 0181 endif() 0182 install(FILES "${_ROOT}/mkdio.h" 0183 DESTINATION "${CMAKE_INSTALL_INCLUDEDIR}") 0184 target_include_directories(libmarkdown INTERFACE 0185 $<INSTALL_INTERFACE:${CMAKE_INSTALL_INCLUDEDIR}> 0186 ) 0187 set(_TARGETS libmarkdown markdown) 0188 if(${PROJECT_NAME}_INSTALL_SAMPLES) 0189 list(APPEND _TARGETS mkd2html makepage) 0190 endif() 0191 install(TARGETS ${_TARGETS} EXPORT ${_PACKAGE_NAME}-targets 0192 RUNTIME DESTINATION "${CMAKE_INSTALL_BINDIR}" 0193 LIBRARY DESTINATION "${CMAKE_INSTALL_LIBDIR}" 0194 ARCHIVE DESTINATION "${CMAKE_INSTALL_LIBDIR}") 0195 install(EXPORT ${_PACKAGE_NAME}-targets 0196 NAMESPACE ${_PACKAGE_NAME}:: 0197 DESTINATION "${CMAKE_INSTALL_CMAKEDIR}") 0198 include(CMakePackageConfigHelpers) 0199 write_basic_package_version_file( 0200 "${CMAKE_CURRENT_BINARY_DIR}/${_PACKAGE_NAME}-config-version.cmake" 0201 VERSION ${${PROJECT_NAME}_VERSION} 0202 COMPATIBILITY AnyNewerVersion 0203 ) 0204 configure_file("${CMAKE_CURRENT_LIST_DIR}/discount-config.cmake.in" 0205 "${CMAKE_CURRENT_BINARY_DIR}/${_PACKAGE_NAME}-config.cmake" 0206 @ONLY) 0207 install(FILES 0208 "${CMAKE_CURRENT_BINARY_DIR}/${_PACKAGE_NAME}-config.cmake" 0209 "${CMAKE_CURRENT_BINARY_DIR}/${_PACKAGE_NAME}-config-version.cmake" 0210 DESTINATION "${CMAKE_INSTALL_CMAKEDIR}") 0211 unset(_TARGETS) 0212 unset(_PACKAGE_NAME) 0213 endif() 0214 0215 unset(_ROOT)