Files
swift-cmark/CMakeLists.txt
QuietMisdreavus 3bc2f3e25d integrate changes from cmark-gfm 0.29.0.gfm.12 and gfm.13 (#61)
* Normalize nomenclature: marker row vs. delimiter row

The code for the table extension used the term 'marker row',
but the spec calls it 'delimiter row'.

This change normalizes the terminology so that it's consistent.

* Update autolink.c

```
../../../../ext/markly/autolink.c: In function ‘postprocess_text’:
../../../../ext/markly/autolink.c:364:31: warning: passing argument 1 of ‘validate_protocol’ discards ‘const’ qualifier from pointer target type [-Wdiscarded-qualifiers]
  364 |         if (validate_protocol("mailto:", data + start + offset + max_rewind, rewind, max_rewind)) {
      |                               ^~~~~~~~~
../../../../ext/markly/commonmark.c: In function ‘S_render_node’:
../../../../ext/markly/autolink.c:299:36: note: expected ‘char *’ but argument is of type ‘const char *’
  299 | static bool validate_protocol(char protocol[], uint8_t *data, size_t rewind, size_t max_rewind) {
      |                               ~~~~~^~~~~~~~~~
```

* Update commonmark.c

```
../../../../ext/markly/commonmark.c:405:18: warning: assignment discards ‘const’ qualifier from pointer target type [-Wdiscarded-qualifiers]
  405 |       emph_delim = "_";
      |                  ^
```

* Fix GHSL-2023-119: prevent quadratic performance by not allowing very deeply nested footnote definitions.

* Fix GHSL-2023-117: store cell index on node so that it doesn't need to be recomputed during rendering.

* Fix GHSL-2023-118: limit number of autocompleted table cells to prevent DOS.

* Expose CMARK_NODE_FOOTNOTE_DEFINION literal value.

In addition, fix a bug where the length of the literal value was
calculated AFTER the actual literal string (null terminated) was
allocated.

* Update src/node.h

Co-authored-by: Phill MV <phillmv@github.com>

* Rename custom_int -> cell_index.

* Add newline

* Remove unnecessary scope.

* Create codeql.yml

* Changelog and version bump for 0.29.0.12

* Fix format specifier for printing a size_t

* Changelog and version bump for 0.29.0.13

* move cell index into node_cell_data

---------

Co-authored-by: Waldir Pimenta <waldyrious@gmail.com>
Co-authored-by: Samuel Williams <samuel.williams@oriontransfer.co.nz>
Co-authored-by: Kevin Backhouse <kevinbackhouse@github.com>
Co-authored-by: Phill MV <phillmv@github.com>
Co-authored-by: Bas Alberts <13686387+anticomputer@users.noreply.github.com>
Co-authored-by: Bas Alberts <anticomputer@github.com>
2023-08-01 15:07:33 +02:00

62 lines
2.1 KiB
CMake
Executable File

cmake_minimum_required(VERSION 3.12)
project(cmark-gfm)
set(PROJECT_VERSION_MAJOR 0)
set(PROJECT_VERSION_MINOR 29)
set(PROJECT_VERSION_PATCH 0)
set(PROJECT_VERSION_GFM 13)
set(PROJECT_VERSION ${PROJECT_VERSION_MAJOR}.${PROJECT_VERSION_MINOR}.${PROJECT_VERSION_PATCH}.gfm.${PROJECT_VERSION_GFM})
include("FindAsan.cmake")
include("CheckFileOffsetBits.cmake")
if("${CMAKE_SOURCE_DIR}" STREQUAL "${CMAKE_BINARY_DIR}")
message(FATAL_ERROR "Do not build in-source.\nPlease remove CMakeCache.txt and the CMakeFiles/ directory.\nThen: mkdir build ; cd build ; cmake .. ; make")
endif()
option(CMARK_TESTS "Build cmark-gfm tests and enable testing" ON)
option(CMARK_STATIC "Build static libcmark-gfm library" ON)
option(CMARK_SHARED "Build shared libcmark-gfm library" ON)
option(CMARK_LIB_FUZZER "Build libFuzzer fuzzing harness" OFF)
option(CMARK_THREADING "Add locks around static accesses" OFF)
# set a required C standard so we can load stdbool.h
if(MSVC)
set(CMAKE_C_STANDARD 11)
else()
set(CMAKE_C_STANDARD 99)
endif()
set(CMAKE_C_STANDARD_REQUIRED YES)
# Use CMake's generated headers instead of the Swift package prebuilt ones
add_compile_definitions(CMARK_USE_CMAKE_HEADERS)
option(CMARK_FUZZ_QUADRATIC "Build quadratic fuzzing harness" OFF)
if(CMARK_FUZZ_QUADRATIC)
set(FUZZER_FLAGS "-fsanitize=fuzzer-no-link,address -g")
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${FUZZER_FLAGS}")
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${FUZZER_FLAGS}")
set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} ${FUZZER_FLAGS}")
set(CMAKE_MODULE_LINKER_FLAGS "${CMAKE_MODULE_LINKER_FLAGS} ${FUZZER_FLAGS}")
endif()
add_subdirectory(src)
add_subdirectory(extensions)
if(CMARK_TESTS AND (CMARK_SHARED OR CMARK_STATIC))
add_subdirectory(api_test)
endif()
add_subdirectory(man)
if(CMARK_TESTS)
enable_testing()
add_subdirectory(test testdir)
endif()
if(CMARK_FUZZ_QUADRATIC)
add_subdirectory(fuzz)
endif()
if(NOT CMAKE_BUILD_TYPE)
set(CMAKE_BUILD_TYPE "Release" CACHE STRING
"Choose the type of build, options are: Debug Profile Release Asan Ubsan." FORCE)
endif(NOT CMAKE_BUILD_TYPE)