aboutsummaryrefslogtreecommitdiff
path: root/vcpkg/ports/libxmlmm/CMakeLists.txt
blob: 98b281ff548a4ca22c5b1877c15deb1b4ead2b4f (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
cmake_minimum_required(VERSION 3.8)
project(libxmlmm CXX)

find_package(LibXml2 REQUIRED)

set(HEADERS_LIBXMLMM
	libxmlmm/Attribute.h
	libxmlmm/CData.h
	libxmlmm/Comment.h
	libxmlmm/Content.h
	libxmlmm/defines.h
	libxmlmm/Document.h
	libxmlmm/Element.h
	libxmlmm/exceptions.h
	libxmlmm/libxmlmm.h
	libxmlmm/LibXmlSentry.h
	libxmlmm/Node.h
	libxmlmm/ProcessingInstruction.h
	libxmlmm/Text.h
	libxmlmm/utils.h
)

set(SOURCES_LIBXMLMM
	libxmlmm/Attribute.cpp
	libxmlmm/CData.cpp
	libxmlmm/Comment.cpp
	libxmlmm/Content.cpp
	libxmlmm/Document.cpp
	libxmlmm/Element.cpp
	libxmlmm/LibXmlSentry.cpp
	libxmlmm/Node.cpp
	libxmlmm/ProcessingInstruction.cpp
	libxmlmm/Text.cpp
	libxmlmm/utils.cpp
)

add_library(libxmlmm ${SOURCES_LIBXMLMM})
target_link_libraries (libxmlmm PUBLIC LibXml2::LibXml2)

set_target_properties(libxmlmm PROPERTIES
    CXX_STANDARD 17
    PUBLIC_HEADER "${HEADERS_LIBXMLMM}"
    OUTPUT_NAME xmlmm
)

target_include_directories(libxmlmm PUBLIC
    $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/libxmlmm>
    $<INSTALL_INTERFACE:include/libxmlmm>)

install(TARGETS libxmlmm
    EXPORT unofficial-libxmlmm-targets
    RUNTIME DESTINATION bin
    LIBRARY DESTINATION lib
    ARCHIVE DESTINATION lib
    PUBLIC_HEADER DESTINATION include/libxmlmm
)
install(EXPORT unofficial-libxmlmm-targets
    NAMESPACE unofficial::libxmlmm::
    DESTINATION share/unofficial-libxmlmm
)

configure_file(libxmlmm.pc.in ${CMAKE_CURRENT_BINARY_DIR}/libxmlmm.pc @ONLY)
install(FILES ${CMAKE_CURRENT_BINARY_DIR}/libxmlmm.pc DESTINATION lib/pkgconfig)