parent
d650587449
commit
081b2c75de
@ -0,0 +1,88 @@ |
|||||||
|
cmake_minimum_required(VERSION 3.19) # First to support Apple Silicon. |
||||||
|
project(mxml C) |
||||||
|
enable_testing() |
||||||
|
|
||||||
|
# Don't allow source tree pollution. |
||||||
|
if(" ${CMAKE_SOURCE_DIR}" STREQUAL " ${CMAKE_BINARY_DIR}") |
||||||
|
message(FATAL_ERROR " |
||||||
|
FATAL: In-source builds are not allowed. |
||||||
|
You should create a separate directory for build files. |
||||||
|
") |
||||||
|
endif() |
||||||
|
|
||||||
|
if(WIN32) |
||||||
|
# set(CMAKE_WINDOWS_EXPORT_ALL_SYMBOLS ON) # C++ |
||||||
|
|
||||||
|
add_compile_definitions( |
||||||
|
_WIN32_WINNT=0x0601 |
||||||
|
) |
||||||
|
endif(WIN32) |
||||||
|
|
||||||
|
set(MXML_PRIVATE |
||||||
|
mxml-attr.c |
||||||
|
mxml-file.c |
||||||
|
mxml-get.c |
||||||
|
mxml-index.c |
||||||
|
mxml-node.c |
||||||
|
mxml-options.c |
||||||
|
mxml-private.c |
||||||
|
mxml-search.c |
||||||
|
mxml-set.c |
||||||
|
) |
||||||
|
|
||||||
|
set(MXML_PUBLIC |
||||||
|
mxml.h |
||||||
|
|
||||||
|
config.h # TODO: Cmake configure. |
||||||
|
) |
||||||
|
|
||||||
|
set(MXML_COLLECTIVE |
||||||
|
${MXML_PRIVATE} |
||||||
|
${MXML_PUBLIC} |
||||||
|
) |
||||||
|
|
||||||
|
add_library(${PROJECT_NAME} |
||||||
|
${MXML_COLLECTIVE} |
||||||
|
) |
||||||
|
|
||||||
|
# Dfine the header(s) for this library and add to build path. |
||||||
|
target_include_directories(${PROJECT_NAME} PUBLIC |
||||||
|
$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/> |
||||||
|
) |
||||||
|
|
||||||
|
install(TARGETS ${PROJECT_NAME} EXPORT ${PROJECT_NAME}LibraryConfig |
||||||
|
ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR} |
||||||
|
LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} |
||||||
|
RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR} # For Windows |
||||||
|
) |
||||||
|
|
||||||
|
# Importable from the install directory. |
||||||
|
# Config file per-project dir or into "cmake". |
||||||
|
install(EXPORT ${PROJECT_NAME}LibraryConfig DESTINATION share/${PROJECT_NAME}Library/cmake) |
||||||
|
|
||||||
|
# Importable from the build directory. |
||||||
|
export(TARGETS ${PROJECT_NAME} FILE ${PROJECT_NAME}/LibraryConfig.cmake) |
||||||
|
|
||||||
|
# ==================== TESTS ==================== |
||||||
|
add_executable(${PROJECT_NAME}-test |
||||||
|
testmxml.c |
||||||
|
) |
||||||
|
|
||||||
|
add_custom_command( |
||||||
|
TARGET ${PROJECT_NAME}-test |
||||||
|
COMMAND ${CMAKE_COMMAND} -E copy |
||||||
|
${CMAKE_CURRENT_SOURCE_DIR}/test.xml |
||||||
|
$<TARGET_FILE_DIR:${PROJECT_NAME}-test> |
||||||
|
) |
||||||
|
|
||||||
|
target_link_libraries(${PROJECT_NAME}-test |
||||||
|
${PROJECT_NAME} |
||||||
|
) |
||||||
|
|
||||||
|
include(ExternalData) |
||||||
|
ExternalData_Add_Test( |
||||||
|
NAME test-mxml |
||||||
|
${PROJECT_NAME}-test |
||||||
|
DATA{test.xml} |
||||||
|
) |
||||||
|
|
@ -0,0 +1,29 @@ |
|||||||
|
<?xml version="1.0" encoding="UTF-8"?> |
||||||
|
<group> |
||||||
|
<option> |
||||||
|
<keyword type="opaque">InputSlot</keyword> |
||||||
|
<default type="opaque">Auto</default> |
||||||
|
<text>Media Source</text> |
||||||
|
<order type="real">10.42</order> |
||||||
|
<choice> |
||||||
|
<keyword type="opaque">Auto</keyword> |
||||||
|
<text>Auto Tray Selection</text> |
||||||
|
<code type="opaque"/> |
||||||
|
</choice> |
||||||
|
<choice> |
||||||
|
<keyword type="opaque">Upper</keyword> |
||||||
|
<text>Tray 1</text> |
||||||
|
<code type="opaque"><</MediaPosition 0>>setpagedevice</code> |
||||||
|
</choice> |
||||||
|
<choice> |
||||||
|
<keyword type="opaque">Lower</keyword> |
||||||
|
<text>Tray 2</text> |
||||||
|
<code type="opaque"><</MediaPosition 1>>setpagedevice</code> |
||||||
|
</choice> |
||||||
|
</option> |
||||||
|
<integer>123</integer> |
||||||
|
<string>Now is the time for all good men to come to the aid of their |
||||||
|
country.</string> |
||||||
|
<!-- this is a comment --> |
||||||
|
<![CDATA[this is CDATA 0123456789ABCDEF]]> |
||||||
|
</group> |
Loading…
Reference in new issue