@@ -89,14 +89,15 @@ endif()
8989find_package (LLVM REQUIRED CONFIG)
9090find_package (Clang REQUIRED CONFIG)
9191
92- set (LIBCXX_DIR "${LLVM_INCLUDE_DIR} /c++/v1" CACHE PATH
93- "Path to libc++ include directory" )
94- message (STATUS "LIBCXX_DIR: ${LIBCXX_DIR} " )
95- if (NOT EXISTS "${LIBCXX_DIR} " )
96- message (FATAL_ERROR
97- "LIBCXX_DIR (${LIBCXX_DIR} ) does not exist.\n "
98- "Please provide a LLVM with libc++ enabled\n " )
99- endif ()
92+ set (LIBCXX_DIRS "${LLVM_INCLUDE_DIR} /c++/v1" CACHE STRING
93+ "Paths to libc++ include directories" )
94+ message (STATUS "LIBCXX_DIRS: ${LIBCXX_DIRS} " )
95+
96+ foreach (I IN LISTS LIBCXX_DIRS)
97+ if (NOT EXISTS "${I} " )
98+ message (SEND_ERROR "LIBCXX_DIRS (${I} ) does not exist.\n " )
99+ endif ()
100+ endforeach ()
100101
101102set (STDLIB_INCLUDE_DIR "${LLVM_BINARY_DIR} /lib/clang/${Clang_VERSION_MAJOR} /include"
102103 CACHE PATH "Path to the clang headers include directory" )
@@ -363,35 +364,34 @@ if (MRDOCS_BUILD_TESTS)
363364 endif ()
364365 target_compile_definitions (mrdocs-test PRIVATE -DMRDOCS_TEST_FILES_DIR="${CMAKE_CURRENT_SOURCE_DIR} /test-files" )
365366 add_test (NAME mrdocs-unit-tests COMMAND mrdocs-test --unit=true )
367+
368+ set (COMMON_TEST_COMMAND
369+ mrdocs-test
370+ --unit=false
371+ "${PROJECT_SOURCE_DIR} /test-files/golden-tests"
372+ "--addons=${CMAKE_SOURCE_DIR} /share/mrdocs/addons" )
373+ foreach (I IN LISTS LIBCXX_DIRS)
374+ list (APPEND COMMON_TEST_COMMAND "--stdlib-includes=${I} " )
375+ endforeach ()
376+ list (APPEND COMMON_TEST_COMMAND
377+ "--stdlib-includes=${STDLIB_INCLUDE_DIR} "
378+ "--libc-includes=${CMAKE_SOURCE_DIR} /share/mrdocs/headers/libc-stubs"
379+ --log -level=warn)
380+
366381 foreach (testgenerator IN ITEMS xml adoc html)
367382 add_test (NAME mrdocs-golden-tests-${testgenerator}
368383 COMMAND
369- mrdocs-test
370- --unit=false
384+ ${COMMON_TEST_COMMAND}
371385 --action=test
372- "${PROJECT_SOURCE_DIR} /test-files/golden-tests"
373- "--addons=${CMAKE_SOURCE_DIR} /share/mrdocs/addons"
374386 --generator=${testgenerator}
375- "--stdlib-includes=${LIBCXX_DIR} "
376- "--stdlib-includes=${STDLIB_INCLUDE_DIR} "
377- "--libc-includes=${CMAKE_SOURCE_DIR} /share/mrdocs/headers/libc-stubs"
378- --log -level=warn
379387 )
380388 foreach (action IN ITEMS test create update)
381389 add_custom_target (
382390 mrdocs-${action} -test -fixtures-${testgenerator}
383391 COMMAND
384- mrdocs-test
385- --unit=false
392+ ${COMMON_TEST_COMMAND}
386393 --action=${action}
387- "${PROJECT_SOURCE_DIR} /test-files/golden-tests"
388- "--addons=${CMAKE_SOURCE_DIR} /share/mrdocs/addons"
389394 --generator=${testgenerator}
390- "--stdlib-includes=${LIBCXX_DIR} "
391- "--stdlib-includes=${STDLIB_INCLUDE_DIR} "
392- "--libc-includes=${CMAKE_SOURCE_DIR} /share/mrdocs/headers/libc-stubs"
393- --log -level=warn
394- DEPENDS mrdocs-test
395395 )
396396 endforeach ()
397397 endforeach ()
@@ -537,9 +537,11 @@ if (MRDOCS_INSTALL)
537537 #-------------------------------------------------
538538 # share
539539 #-------------------------------------------------
540- install (DIRECTORY ${LIBCXX_DIR} /
541- DESTINATION ${CMAKE_INSTALL_DATAROOTDIR} /mrdocs/headers/libcxx
542- FILES_MATCHING PATTERN "*" )
540+ foreach (I IN LISTS LIBCXX_DIRS)
541+ install (DIRECTORY ${I} /
542+ DESTINATION ${CMAKE_INSTALL_DATAROOTDIR} /mrdocs/headers/libcxx
543+ FILES_MATCHING PATTERN "*" )
544+ endforeach ()
543545 install (DIRECTORY ${STDLIB_INCLUDE_DIR} /
544546 DESTINATION ${CMAKE_INSTALL_DATAROOTDIR} /mrdocs/headers/clang
545547 FILES_MATCHING PATTERN "*" )
0 commit comments