Skip to content

Commit 776a025

Browse files
committed
fix(cmake+msvc): Correct exporting of explicit template instantiations.
1 parent 8a2c8b2 commit 776a025

19 files changed

Lines changed: 20 additions & 19 deletions

.github/workflows/ci.yml

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -645,7 +645,8 @@ jobs:
645645
steps:
646646
- uses: actions/checkout@v4
647647
- run: >-
648-
cmake -S. -Bcmake-build -DENABLE_NETSSL_WIN=ON -DENABLE_NETSSL=OFF
648+
cmake -S. -Bcmake-build -DCMAKE_INTERPROCEDURAL_OPTIMIZATION=ON
649+
-DENABLE_NETSSL_WIN=ON -DENABLE_NETSSL=OFF
649650
-DENABLE_CRYPTO=OFF -DENABLE_JWT=OFF -DENABLE_DATA=ON -DENABLE_DATA_ODBC=ON
650651
-DENABLE_DATA_MYSQL=OFF -DENABLE_DATA_POSTGRESQL=OFF -DENABLE_TESTS=ON
651652
- run: cmake --build cmake-build --config Release --parallel 4

Data/ODBC/include/Poco/Data/ODBC/Diagnostics.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -245,7 +245,7 @@ class Diagnostics
245245
// explicit instantiation definition
246246
#ifndef POCO_DOC
247247

248-
#if defined(POCO_OS_FAMILY_WINDOWS)
248+
#if defined(POCO_OS_FAMILY_WINDOWS) && defined(ODBC_EXPORTS)
249249
extern template class Diagnostics<SQLHENV, SQL_HANDLE_ENV>;
250250
extern template class Diagnostics<SQLHDBC, SQL_HANDLE_DBC>;
251251
extern template class Diagnostics<SQLHSTMT, SQL_HANDLE_STMT>;

Data/ODBC/include/Poco/Data/ODBC/Error.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -126,7 +126,7 @@ class Error
126126
// explicit instantiation definition
127127
#ifndef POCO_DOC
128128

129-
#if defined(POCO_OS_FAMILY_WINDOWS)
129+
#if defined(POCO_OS_FAMILY_WINDOWS) && defined(ODBC_EXPORTS)
130130
extern template class Error<SQLHENV, SQL_HANDLE_ENV>;
131131
extern template class Error<SQLHDBC, SQL_HANDLE_DBC>;
132132
extern template class Error<SQLHSTMT, SQL_HANDLE_STMT>;

Data/ODBC/include/Poco/Data/ODBC/ODBCException.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -140,7 +140,7 @@ class HandleException: public ODBCException
140140
// explicit instantiation definition
141141
#ifndef POCO_DOC
142142

143-
#if defined(POCO_OS_FAMILY_WINDOWS)
143+
#if defined(POCO_OS_FAMILY_WINDOWS) && defined(ODBC_EXPORTS)
144144
extern template class HandleException<SQLHENV, SQL_HANDLE_ENV>;
145145
extern template class HandleException<SQLHDBC, SQL_HANDLE_DBC>;
146146
extern template class HandleException<SQLHSTMT, SQL_HANDLE_STMT>;

Data/ODBC/src/Diagnostics.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ namespace ODBC {
2222
// explicit instantiation definition
2323
#ifndef POCO_DOC
2424

25-
#if defined(POCO_OS_FAMILY_WINDOWS)
25+
#if defined(POCO_OS_FAMILY_WINDOWS) && defined(ODBC_EXPORTS)
2626
template class ODBC_API Diagnostics<SQLHENV, SQL_HANDLE_ENV>;
2727
template class ODBC_API Diagnostics<SQLHDBC, SQL_HANDLE_DBC>;
2828
template class ODBC_API Diagnostics<SQLHSTMT, SQL_HANDLE_STMT>;

Data/ODBC/src/Error.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ namespace ODBC {
2222
// explicit instantiation definition
2323
#ifndef POCO_DOC
2424

25-
#if defined(POCO_OS_FAMILY_WINDOWS)
25+
#if defined(POCO_OS_FAMILY_WINDOWS) && defined(ODBC_EXPORTS)
2626
template class ODBC_API Error<SQLHENV, SQL_HANDLE_ENV>;
2727
template class ODBC_API Error<SQLHDBC, SQL_HANDLE_DBC>;
2828
template class ODBC_API Error<SQLHSTMT, SQL_HANDLE_STMT>;

Data/ODBC/src/ODBCException.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@ namespace Poco {
2020
namespace Data {
2121
namespace ODBC {
2222

23-
#if defined(POCO_OS_FAMILY_WINDOWS)
23+
#if defined(POCO_OS_FAMILY_WINDOWS) && defined(ODBC_EXPORTS)
2424
template class ODBC_API HandleException<SQLHENV, SQL_HANDLE_ENV>;
2525
template class ODBC_API HandleException<SQLHDBC, SQL_HANDLE_DBC>;
2626
template class ODBC_API HandleException<SQLHSTMT, SQL_HANDLE_STMT>;

Foundation/include/Poco/BufferedBidirectionalStreamBuf.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -182,7 +182,7 @@ class BasicBufferedBidirectionalStreamBuf: public std::basic_streambuf<ch, tr>
182182
// We provide an instantiation for char.
183183
//
184184

185-
#if defined(POCO_OS_FAMILY_WINDOWS)
185+
#if defined(POCO_OS_FAMILY_WINDOWS) && defined(Foundation_EXPORTS)
186186
extern template class BasicBufferedBidirectionalStreamBuf<char, std::char_traits<char>>;
187187
#else
188188
extern template class Foundation_API BasicBufferedBidirectionalStreamBuf<char, std::char_traits<char>>;

Foundation/include/Poco/BufferedStreamBuf.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -164,7 +164,7 @@ class BasicBufferedStreamBuf: public std::basic_streambuf<ch, tr>
164164
// We provide an instantiation for char.
165165
//
166166

167-
#if defined(POCO_OS_FAMILY_WINDOWS)
167+
#if defined(POCO_OS_FAMILY_WINDOWS) && defined(Foundation_EXPORTS)
168168
extern template class BasicBufferedStreamBuf<char, std::char_traits<char>>;
169169
#else
170170
extern template class Foundation_API BasicBufferedStreamBuf<char, std::char_traits<char>>;

Foundation/include/Poco/Dynamic/Struct.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -286,7 +286,7 @@ class Struct
286286
};
287287

288288

289-
#if defined(POCO_OS_FAMILY_WINDOWS)
289+
#if defined(POCO_OS_FAMILY_WINDOWS) && defined(Foundation_EXPORTS)
290290

291291
extern template class Struct<std::string>;
292292
extern template class Struct<int>;

0 commit comments

Comments
 (0)