-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathCMakeLists.txt
More file actions
157 lines (129 loc) · 5 KB
/
CMakeLists.txt
File metadata and controls
157 lines (129 loc) · 5 KB
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
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
cmake_minimum_required(VERSION 3.5)
project(qore-xml-module)
set (VERSION_MAJOR 2)
set (VERSION_MINOR 2)
set (VERSION_PATCH 0)
find_package(Qore 1.0 REQUIRED)
if (DEFINED ENV{LIBXML2_LIBRARY})
set(LIBXML2_LIBRARY $ENV{LIBXML2_LIBRARY})
endif()
find_package(LibXml2 REQUIRED)
find_package(OpenSSL REQUIRED)
list(APPEND CMAKE_REQUIRED_LIBRARIES ${LIBXML2_LIBRARIES})
list(APPEND CMAKE_REQUIRED_INCLUDES ${LIBXML2_INCLUDE_DIR})
include_directories( ${CMAKE_SOURCE_DIR}/src )
include_directories( ${LIBXML2_INCLUDE_DIR} )
include_directories( ${OPENSSL_INCLUDE_DIR} )
include_directories( ${QORE_INCLUDE_DIR} )
# Check for C++11.
include(CheckCXXCompilerFlag)
CHECK_CXX_COMPILER_FLAG("-std=c++11" COMPILER_SUPPORTS_CXX11)
if(COMPILER_SUPPORTS_CXX11)
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11")
else()
message(FATAL_ERROR "The compiler ${CMAKE_CXX_COMPILER} has no C++11 support. Please use a different C++ compiler.")
endif()
if(CMAKE_SYSTEM_NAME STREQUAL "Windows")
SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -DLIBXML_STATIC=1")
endif()
set (CMAKE_POSITION_INDEPENDENT_CODE TRUE)
#include(CheckSymbolExists)
include(CheckFunctionExists)
macro(qore_check_symbol _symbol _define)
# check_symbol_exists(${_symbol} ${_includes} ${_define})
check_function_exists(${_symbol} ${_define})
if (${_define})
# message(STATUS " adding define: -D${_define}")
add_definitions(-D${_define})
endif(${_define})
endmacro(qore_check_symbol)
qore_check_symbol(xmlTextReaderSetSchema HAVE_XMLTEXTREADERSETSCHEMA)
qore_check_symbol(xmlTextReaderRelaxNGSetSchema HAVE_XMLTEXTREADERRELAXNGSETSCHEMA)
qore_check_symbol(xmlChildElementCount HAVE_XMLCHILDELEMENTCOUNT)
qore_check_symbol(xmlFirstElementChild HAVE_XMLFIRSTELEMENTCHILD)
qore_check_symbol(xmlGetLastChild HAVE_XMLGETLASTCHILD)
qore_check_symbol(xmlLastElementChild HAVE_XMLLASTELEMENTCHILD)
qore_check_symbol(xmlNextElementSibling HAVE_XMLNEXTLEMENTSIBLING)
qore_check_symbol(xmlPreviousElementSibling HAVE_XMLPREVIOUSELEMENTSIBLING)
qore_check_symbol(xmlTextReaderIsNamespaceDecl HAVE_XMLTEXTREADERISNAMESPACEDECL)
qore_check_symbol(xmlTextReaderByteConsumed HAVE_XMLTEXTREADERBYTECONSUMED)
qore_check_symbol(xmlTextReaderGetParserColumnNumber HAVE_XMLTEXTREADERGETPARSERCOLUMNNUMBER)
qore_check_symbol(xmlTextReaderGetParserLineNumber HAVE_XMLTEXTREADERGETPARSERLINENUMBER)
set(QPP_SRC
src/QC_SaxIterator.qpp
src/QC_FileSaxIterator.qpp
src/QC_InputStreamSaxIterator.qpp
src/QC_XmlDoc.qpp
src/QC_XmlNode.qpp
src/QC_XmlReader.qpp
src/QC_XmlRpcClient.qpp
src/ql_xml.qpp
src/qc_option.qpp
src/MakeXmlOpts.qpp
src/QC_AbstractXmlIoInputCallback.qpp
)
set(CPP_SRC
src/xml-module.cpp
src/QoreXmlRpcReader.cpp
src/QoreXmlReader.cpp
)
set(QMOD
qlib/SalesforceSoapClient.qm
qlib/SoapClient.qm
qlib/SoapHandler.qm
qlib/WSDL.qm
qlib/XmlRpcHandler.qm
qlib/XmlRpcConnection.qm
qlib/XmlRpcClientIo
qlib/SaxDataProvider
qlib/SoapDataProvider
qlib/WebDavClient.qm
qlib/WebDavClientDataProvider
qlib/WebDavHandler
qlib/WebContentUtil
)
set(SCRIPTS
bin/soaputil
bin/webdav-server
)
qore_wrap_qpp_value(QPP_SOURCES METALIST QPP_META_SOURCES ${QPP_SRC})
SET (module_name "xml")
set(QORE_DOX_TMPL_SRC
docs/mainpage.doxygen.tmpl
)
add_library(${module_name} MODULE ${QPP_SOURCES} ${CPP_SRC})
if (DEFINED ENV{DOXYGEN_EXECUTABLE})
set(DOXYGEN_EXECUTABLE $ENV{DOXYGEN_EXECUTABLE})
endif()
qore_external_binary_module(${module_name} "${VERSION_MAJOR}.${VERSION_MINOR}.${VERSION_PATCH}" ${LIBXML2_LIBRARIES})
qore_user_modules("${QMOD}")
install(PROGRAMS ${SCRIPTS} DESTINATION bin)
qore_external_user_module("qlib/WSDL.qm" "")
qore_external_user_module("qlib/SoapClient.qm" "WSDL")
qore_external_user_module("qlib/SoapHandler.qm" "WSDL")
qore_external_user_module("qlib/SalesforceSoapClient.qm" "WSDL;SoapClient")
qore_external_user_module("qlib/SoapDataProvider" "WSDL;SoapClient")
qore_external_user_module("qlib/CargoXmlDataProvider" "WSDL")
qore_external_user_module("qlib/WebDavClient.qm" "")
qore_external_user_module("qlib/WebDavClientIo" "WebDavClient")
qore_external_user_module("qlib/WebDavClientDataProvider" "WebDavClient;WebDavClientIo")
qore_external_user_module("qlib/WebDavHandler" "")
qore_external_user_module("qlib/XmlRpcConnection.qm" "XmlRpcClientIo")
qore_external_user_module("qlib/XmlRpcHandler.qm" "")
qore_external_user_module("qlib/XmlRpcClientIo" "")
qore_external_user_module("qlib/SaxDataProvider" "")
qore_external_user_module("qlib/WebContentUtil" "")
# install qpp metadata files
if (COMMAND qore_install_qpp_metadata)
qore_install_qpp_metadata(${module_name} ${QPP_META_SOURCES})
else()
install(FILES ${QPP_META_SOURCES}
DESTINATION ${CMAKE_INSTALL_DATADIR}/qore/metadata)
endif()
qore_dist("${VERSION_MAJOR}.${VERSION_MINOR}.${VERSION_PATCH}")
qore_config_info()
if (DOXYGEN_FOUND)
qore_wrap_dox(QORE_DOX_SRC ${QORE_DOX_TMPL_SRC})
add_custom_target(QORE_MOD_DOX_FILES DEPENDS ${QORE_DOX_SRC})
add_dependencies(docs-module QORE_MOD_DOX_FILES)
endif()