Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 2 additions & 1 deletion CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
cmake_minimum_required(VERSION 3.0)
cmake_minimum_required(VERSION 4.0)
project(cmark-gfm)

set(PROJECT_VERSION_MAJOR 0)
Expand All @@ -7,6 +7,7 @@ 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(CMakePackageConfigHelpers)
include("FindAsan.cmake")
include("CheckFileOffsetBits.cmake")

Expand Down
24 changes: 23 additions & 1 deletion extensions/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -79,9 +79,31 @@ if (CMARK_SHARED OR CMARK_STATIC)
DESTINATION include
)

install(EXPORT cmark-gfm-extensions DESTINATION lib${LIB_SUFFIX}/cmake-gfm-extensions)
install(
EXPORT cmark-gfm-extensions
DESTINATION "${CMAKE_INSTALL_LIBDIR}/cmake/cmark-gfm-extensions"
)
endif()

# generate config and config-version files
configure_package_config_file(
"cmark-gfm-extensions-config.cmake.in"
"${CMAKE_CURRENT_BINARY_DIR}/generated/cmark-gfm-extensions-config.cmake"
INSTALL_DESTINATION "${CMAKE_INSTALL_LIBDIR}/cmake/cmark-gfm-extensions"
)
write_basic_package_version_file(
"${CMAKE_CURRENT_BINARY_DIR}/generated/cmark-gfm-extensions-config-version.cmake"
VERSION ${PROJECT_VERSION}
COMPATIBILITY SameMajorVersion
)

# install config and config-version files
install(
FILES "${CMAKE_CURRENT_BINARY_DIR}/generated/cmark-gfm-extensions-config.cmake"
"${CMAKE_CURRENT_BINARY_DIR}/generated/cmark-gfm-extensions-config-version.cmake"
DESTINATION "${CMAKE_INSTALL_LIBDIR}/cmake/cmark-gfm-extensions"
)

# Feature tests
include(CheckIncludeFile)
include(CheckCSourceCompiles)
Expand Down
4 changes: 4 additions & 0 deletions extensions/cmark-gfm-extensions-config.cmake.in
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
@PACKAGE_INIT@

include("${CMAKE_CURRENT_LIST_DIR}/cmark-gfm-extensions.cmake")
check_required_components("cmark-gfm-extensions")
24 changes: 23 additions & 1 deletion src/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -175,9 +175,31 @@ if(CMARK_SHARED OR CMARK_STATIC)
DESTINATION include
)

install(EXPORT cmark-gfm DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake)
install(
EXPORT cmark-gfm
DESTINATION "${CMAKE_INSTALL_LIBDIR}/cmake/cmark-gfm"
)
endif()

# generate config and config-version files
configure_package_config_file(
"cmark-gfm-config.cmake.in"
"${CMAKE_CURRENT_BINARY_DIR}/generated/cmark-gfm-config.cmake"
INSTALL_DESTINATION "${CMAKE_INSTALL_LIBDIR}/cmake/cmark-gfm"
)
write_basic_package_version_file(
"${CMAKE_CURRENT_BINARY_DIR}/generated/cmark-gfm-config-version.cmake"
VERSION ${PROJECT_VERSION}
COMPATIBILITY SameMajorVersion
)

# install config and config-version files
install(
FILES "${CMAKE_CURRENT_BINARY_DIR}/generated/cmark-gfm-config.cmake"
"${CMAKE_CURRENT_BINARY_DIR}/generated/cmark-gfm-config-version.cmake"
DESTINATION "${CMAKE_INSTALL_LIBDIR}/cmake/cmark-gfm"
)

# Feature tests
include(CheckIncludeFile)
include(CheckCSourceCompiles)
Expand Down
4 changes: 4 additions & 0 deletions src/cmark-gfm-config.cmake.in
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
@PACKAGE_INIT@

include("${CMAKE_CURRENT_LIST_DIR}/cmark-gfm.cmake")
check_required_components("cmark-gfm")
35 changes: 17 additions & 18 deletions test/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -4,9 +4,9 @@
# To require the spec tests, compile with -DSPEC_TESTS=1

if (SPEC_TESTS)
find_package(PythonInterp 3 REQUIRED)
find_package(Python 3 COMPONENTS Interpreter REQUIRED)
else(SPEC_TESTS)
find_package(PythonInterp 3)
find_package(Python 3 COMPONENTS Interpreter)
endif(SPEC_TESTS)

if (CMARK_SHARED OR CMARK_STATIC)
Expand All @@ -24,48 +24,48 @@ else(WIN32)
set(ROUNDTRIP "${CMAKE_CURRENT_SOURCE_DIR}/roundtrip.sh")
endif(WIN32)

IF (PYTHONINTERP_FOUND)
if(Python_Interpreter_FOUND)

add_test(html_normalization
${PYTHON_EXECUTABLE} "-m" "doctest"
${Python_EXECUTABLE} "-m" "doctest"
"${CMAKE_CURRENT_SOURCE_DIR}/normalize.py"
)

if (CMARK_SHARED)
add_test(spectest_library
${PYTHON_EXECUTABLE} "${CMAKE_CURRENT_SOURCE_DIR}/spec_tests.py" "--no-normalize" "--spec"
${Python_EXECUTABLE} "${CMAKE_CURRENT_SOURCE_DIR}/spec_tests.py" "--no-normalize" "--spec"
"${CMAKE_CURRENT_SOURCE_DIR}/spec.txt" "--library-dir" "${CMAKE_CURRENT_BINARY_DIR}/../src"
)

add_test(pathological_tests_library
${PYTHON_EXECUTABLE} "${CMAKE_CURRENT_SOURCE_DIR}/pathological_tests.py"
${Python_EXECUTABLE} "${CMAKE_CURRENT_SOURCE_DIR}/pathological_tests.py"
"--library-dir" "${CMAKE_CURRENT_BINARY_DIR}/../src"
)

add_test(roundtriptest_library
${PYTHON_EXECUTABLE}
${Python_EXECUTABLE}
"${CMAKE_CURRENT_SOURCE_DIR}/roundtrip_tests.py"
"--spec" "${CMAKE_CURRENT_SOURCE_DIR}/spec.txt"
"--library-dir" "${CMAKE_CURRENT_BINARY_DIR}/../src"
)

add_test(entity_library
${PYTHON_EXECUTABLE}
${Python_EXECUTABLE}
"${CMAKE_CURRENT_SOURCE_DIR}/entity_tests.py"
"--library-dir" "${CMAKE_CURRENT_BINARY_DIR}/../src"
)
endif()

add_test(spectest_executable
${PYTHON_EXECUTABLE} "${CMAKE_CURRENT_SOURCE_DIR}/spec_tests.py" "--no-normalize" "--spec" "${CMAKE_CURRENT_SOURCE_DIR}/spec.txt" "--program" "${CMAKE_CURRENT_BINARY_DIR}/../src/cmark-gfm"
${Python_EXECUTABLE} "${CMAKE_CURRENT_SOURCE_DIR}/spec_tests.py" "--no-normalize" "--spec" "${CMAKE_CURRENT_SOURCE_DIR}/spec.txt" "--program" "${CMAKE_CURRENT_BINARY_DIR}/../src/cmark-gfm"
)

add_test(smartpuncttest_executable
${PYTHON_EXECUTABLE} "${CMAKE_CURRENT_SOURCE_DIR}/spec_tests.py" "--no-normalize" "--spec" "${CMAKE_CURRENT_SOURCE_DIR}/smart_punct.txt" "--program" "${CMAKE_CURRENT_BINARY_DIR}/../src/cmark-gfm --smart"
${Python_EXECUTABLE} "${CMAKE_CURRENT_SOURCE_DIR}/spec_tests.py" "--no-normalize" "--spec" "${CMAKE_CURRENT_SOURCE_DIR}/smart_punct.txt" "--program" "${CMAKE_CURRENT_BINARY_DIR}/../src/cmark-gfm --smart"
)

add_test(extensions_executable
${PYTHON_EXECUTABLE}
${Python_EXECUTABLE}
"${CMAKE_CURRENT_SOURCE_DIR}/spec_tests.py"
"--no-normalize"
"--spec" "${CMAKE_CURRENT_SOURCE_DIR}/extensions.txt"
Expand All @@ -74,41 +74,40 @@ IF (PYTHONINTERP_FOUND)
)

add_test(roundtrip_extensions_executable
${PYTHON_EXECUTABLE}
${Python_EXECUTABLE}
"${CMAKE_CURRENT_SOURCE_DIR}/roundtrip_tests.py"
"--spec" "${CMAKE_CURRENT_SOURCE_DIR}/extensions.txt"
"--program" "${CMAKE_CURRENT_BINARY_DIR}/../src/cmark-gfm"
"--extensions" "table strikethrough autolink tagfilter footnotes tasklist"
)

add_test(option_table_prefer_style_attributes
${PYTHON_EXECUTABLE}
${Python_EXECUTABLE}
"${CMAKE_CURRENT_SOURCE_DIR}/roundtrip_tests.py"
"--spec" "${CMAKE_CURRENT_SOURCE_DIR}/extensions-table-prefer-style-attributes.txt"
"--program" "${CMAKE_CURRENT_BINARY_DIR}/../src/cmark-gfm --table-prefer-style-attributes"
"--extensions" "table strikethrough autolink tagfilter footnotes tasklist"
)

add_test(option_full_info_string
${PYTHON_EXECUTABLE}
${Python_EXECUTABLE}
"${CMAKE_CURRENT_SOURCE_DIR}/roundtrip_tests.py"
"--spec" "${CMAKE_CURRENT_SOURCE_DIR}/extensions-full-info-string.txt"
"--program" "${CMAKE_CURRENT_BINARY_DIR}/../src/cmark-gfm --full-info-string"
)

add_test(regressiontest_executable
${PYTHON_EXECUTABLE}
${Python_EXECUTABLE}
"${CMAKE_CURRENT_SOURCE_DIR}/spec_tests.py" "--no-normalize" "--spec"
"${CMAKE_CURRENT_SOURCE_DIR}/regression.txt" "--program"
"${CMAKE_CURRENT_BINARY_DIR}/../src/cmark-gfm"
)


ELSE(PYTHONINTERP_FOUND)
else(Python_Interpreter_FOUND)

message("\n*** A python 3 interpreter is required to run the spec tests.\n")
add_test(skipping_spectests
echo "Skipping spec tests, because no python 3 interpreter is available.")

ENDIF(PYTHONINTERP_FOUND)

endif(Python_Interpreter_FOUND)