blob: 0ad3dd31c7a69bbeab77c5494395b0872113cbb5 (
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
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
|
vcpkg_from_github(
OUT_SOURCE_PATH SOURCE_PATH
REPO pocoproject/poco
REF "poco-${VERSION}-release"
SHA512 e192818a5f731ec6f6bddf062573d7bedfd15754157f145882c2c9d9bce497b92cf23f639f989d9e5605cb83029c4f303752cab655b525b5a5b5e5b704714725
HEAD_REF devel
PATCHES
# Fix embedded copy of pcre in static linking mode
0001-static-pcre.patch
# Add the support of arm64-windows
0002-arm64-pcre.patch
0003-fix-dependency.patch
0004-fix-feature-sqlite3.patch
0005-fix-error-c3861.patch
0007-find-pcre2.patch
# MSYS2 repo was used as a source. Thanks MSYS2 team: https://github.com/msys2/MINGW-packages/blob/6e7fba42b7f50e1111b7c0ef50048832243b0ac4/mingw-w64-poco/001-fix-build-on-mingw.patch
0008-fix-mingw-compilation.patch
# Should be removed once https://github.com/pocoproject/poco/issues/4947 is resolved
0009-fix-zip-to-xml-dependency.patch
)
file(REMOVE "${SOURCE_PATH}/Foundation/src/pcre2.h")
file(REMOVE "${SOURCE_PATH}/cmake/V39/FindEXPAT.cmake")
file(REMOVE "${SOURCE_PATH}/cmake/V313/FindSQLite3.cmake")
# vcpkg's PCRE2 does not provide a FindPCRE2, and the bundled one seems to work fine
# file(REMOVE "${SOURCE_PATH}/cmake/FindPCRE2.cmake")
file(REMOVE "${SOURCE_PATH}/XML/src/expat_config.h")
file(REMOVE "${SOURCE_PATH}/cmake/FindMySQL.cmake")
# define Poco linkage type
string(COMPARE EQUAL "${VCPKG_CRT_LINKAGE}" "static" POCO_MT)
vcpkg_check_features(OUT_FEATURE_OPTIONS FEATURE_OPTIONS
FEATURES
crypto ENABLE_CRYPTO
netssl ENABLE_NETSSL
pdf ENABLE_PDF
postgresql ENABLE_DATA_POSTGRESQL
encodings ENABLE_ENCODINGS
encodings-compiler ENABLE_ENCODINGS_COMPILER
xml ENABLE_XML
json ENABLE_JSON
mongodb ENABLE_MONGODB
redis ENABLE_REDIS
prometheus ENABLE_PROMETHEUS
util ENABLE_UTIL
net ENABLE_NET
zip ENABLE_ZIP
pocodoc ENABLE_POCODOC
pagecompiler ENABLE_PAGECOMPILER
pagecompiler-file2page ENABLE_PAGECOMPILER_FILE2PAGE
jwt ENABLE_JWT
data ENABLE_DATA
sqlite ENABLE_DATA_SQLITE
odbc ENABLE_DATA_ODBC
activerecord ENABLE_ACTIVERECORD
activerecord-compiler ENABLE_ACTIVERECORD_COMPILER
sevenzip ENABLE_SEVENZIP
cpp-parser ENABLE_CPPPARSER
)
# POCO_ENABLE_NETSSL_WIN:
# Use the unreleased NetSSL_Win module instead of (OpenSSL) NetSSL.
# This is a variable which can be set in the triplet file.
if(POCO_ENABLE_NETSSL_WIN)
string(REPLACE "ENABLE_NETSSL" "ENABLE_NETSSL_WIN" FEATURE_OPTIONS "${FEATURE_OPTIONS}")
list(APPEND FEATURE_OPTIONS "-DENABLE_NETSSL:BOOL=OFF")
endif()
if ("mysql" IN_LIST FEATURES OR "mariadb" IN_LIST FEATURES)
set(POCO_USE_MYSQL ON)
else()
set(POCO_USE_MYSQL OFF)
endif()
vcpkg_cmake_configure(
SOURCE_PATH "${SOURCE_PATH}"
OPTIONS
${FEATURE_OPTIONS}
# force to use dependencies as external
-DPOCO_UNBUNDLED=ON
# Define linking feature
-DPOCO_MT=${POCO_MT}
-DENABLE_TESTS=OFF
-DENABLE_SAMPLES=OFF
# Allow enabling and disabling components done via features
-DPOCO_DISABLE_INTERNAL_OPENSSL=ON
-DENABLE_APACHECONNECTOR=OFF
-DENABLE_DATA_MYSQL=${POCO_USE_MYSQL}
MAYBE_UNUSED_VARIABLES # these are only used when if(MSVC)
POCO_DISABLE_INTERNAL_OPENSSL
POCO_MT
)
vcpkg_cmake_install()
vcpkg_copy_pdbs()
# Move apps to the tools folder
set(tools)
if (ENABLE_PAGECOMPILER)
list(APPEND tools "cpspc")
endif()
if (ENABLE_PAGECOMPILER_FILE2PAGE)
list(APPEND tools "f2cpsp")
endif()
if (ENABLE_POCODOC)
list(APPEND tools "PocoDoc")
endif()
if (ENABLE_ENCODINGS_COMPILER)
list(APPEND tools "tec")
endif()
if (ENABLE_ACTIVERECORD_COMPILER)
list(APPEND tools "poco-arc")
endif()
if (tools)
vcpkg_copy_tools(TOOL_NAMES ${tools} AUTO_CLEAN)
endif()
if(VCPKG_LIBRARY_LINKAGE STREQUAL "static")
file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/bin" "${CURRENT_PACKAGES_DIR}/debug/bin")
endif()
# Copy additional include files not part of any libraries
if(EXISTS "${CURRENT_PACKAGES_DIR}/include/Poco/SQL")
file(COPY "${SOURCE_PATH}/Data/include" DESTINATION "${CURRENT_PACKAGES_DIR}")
endif()
if(EXISTS "${CURRENT_PACKAGES_DIR}/include/Poco/SQL/MySQL")
file(COPY "${SOURCE_PATH}/Data/MySQL/include" DESTINATION "${CURRENT_PACKAGES_DIR}")
endif()
if(EXISTS "${CURRENT_PACKAGES_DIR}/include/Poco/SQL/ODBC")
file(COPY "${SOURCE_PATH}/Data/ODBC/include" DESTINATION "${CURRENT_PACKAGES_DIR}")
endif()
if(EXISTS "${CURRENT_PACKAGES_DIR}/include/Poco/SQL/PostgreSQL")
file(COPY "${SOURCE_PATH}/Data/PostgreSQL/include" DESTINATION "${CURRENT_PACKAGES_DIR}")
file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/include/libpq")
endif()
if(EXISTS "${CURRENT_PACKAGES_DIR}/include/Poco/SQL/SQLite")
file(COPY "${SOURCE_PATH}/Data/SQLite/include" DESTINATION "${CURRENT_PACKAGES_DIR}")
endif()
if(VCPKG_TARGET_IS_WINDOWS)
vcpkg_cmake_config_fixup(CONFIG_PATH cmake)
else()
vcpkg_cmake_config_fixup(CONFIG_PATH lib/cmake/Poco)
endif()
file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include")
file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/share")
file(COPY "${CMAKE_CURRENT_LIST_DIR}/usage" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}")
vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE")
|