diff --git a/modules/CMakeLists.txt b/modules/CMakeLists.txt index f5bf887871..f03c4d0b00 100644 --- a/modules/CMakeLists.txt +++ b/modules/CMakeLists.txt @@ -7,20 +7,17 @@ set(POCO_MODULES Poco.cppm ) -if(ENABLE_FOUNDATION) - list(APPEND POCO_MODULES - Poco/Foundation.cppm - Poco/Dynamic.cppm - ) +list(APPEND POCO_MODULES + Poco/Foundation.cppm +) - target_compile_definitions(Modules PUBLIC ENABLE_FOUNDATION) +target_compile_definitions(Modules PUBLIC ENABLE_FOUNDATION) - target_link_libraries(Modules PUBLIC Poco::Foundation) - if(ENABLE_ENCODINGS) - target_compile_definitions(Modules PUBLIC ENABLE_ENCODINGS) +target_link_libraries(Modules PUBLIC Poco::Foundation) +if(ENABLE_ENCODINGS) + target_compile_definitions(Modules PUBLIC ENABLE_ENCODINGS) - target_link_libraries(Modules PUBLIC Poco::Encodings) - endif() + target_link_libraries(Modules PUBLIC Poco::Encodings) endif() if(ENABLE_ACTIVERECORD) diff --git a/modules/CppUnit.cppm b/modules/CppUnit.cppm index d1bc9a4ba6..0c0cdda11f 100644 --- a/modules/CppUnit.cppm +++ b/modules/CppUnit.cppm @@ -1,3 +1,14 @@ +// +// CppUnit.cppm +// +// C++ module file +// +// Copyright (c) 2025, Applied Informatics Software Engineering GmbH. +// and Contributors. +// +// SPDX-License-Identifier: BSL-1.0 +// + module; #ifdef ENABLE_CPPUNIT diff --git a/modules/Poco.cppm b/modules/Poco.cppm index dbab82ff5f..d7ebf7e84f 100644 --- a/modules/Poco.cppm +++ b/modules/Poco.cppm @@ -11,57 +11,53 @@ export module Poco; -#ifdef ENABLE_FOUNDATION -export import Poco.Foundation; -#endif +export import :Foundation; + #ifdef ENABLE_ACTIVERECORD -export import Poco.ActiveRecord; +export import :ActiveRecord; #endif #ifdef ENABLE_CPPPARSER -export import Poco.CppParser; +export import :CppParser; #endif #ifdef ENABLE_CRYPTO -export import Poco.Crypto; +export import :Crypto; #endif #ifdef ENABLE_DNSSD -export import Poco.DNSSD; +export import :DNSSD; #endif #ifdef ENABLE_DATA -export import Poco.Data; -#endif -#ifdef ENABLE_DYNAMIC -export import Poco.Dynamic; +export import :Data; #endif #ifdef ENABLE_JSON -export import Poco.JSON; +export import :JSON; #endif #ifdef ENABLE_JWT -export import Poco.JWT; +export import :JWT; #endif #ifdef ENABLE_MONGODB -export import Poco.MongoDB; +export import :MongoDB; #endif #ifdef ENABLE_NET -export import Poco.Net; +export import :Net; #endif #ifdef ENABLE_PDF -export import Poco.PDF; +export import :PDF; #endif #ifdef ENABLE_PROMETHEUS -export import Poco.Prometheus; +export import :Prometheus; #endif #ifdef ENABLE_REDIS -export import Poco.Redis; +export import :Redis; #endif #ifdef ENABLE_SEVENZIP -export import Poco.SevenZip; +export import :SevenZip; #endif #ifdef ENABLE_UTIL -export import Poco.Util; +export import :Util; #endif #ifdef ENABLE_XML -export import Poco.XML; +export import :XML; #endif #ifdef ENABLE_ZIP -export import Poco.Zip; +export import :Zip; #endif diff --git a/modules/Poco/ActiveRecord.cppm b/modules/Poco/ActiveRecord.cppm index 0be5912948..515861c3f4 100644 --- a/modules/Poco/ActiveRecord.cppm +++ b/modules/Poco/ActiveRecord.cppm @@ -20,7 +20,7 @@ module; #include "Poco/ActiveRecord/StatementPlaceholderProvider.h" #endif -export module Poco.ActiveRecord; +export module Poco:ActiveRecord; export namespace Poco::ActiveRecord { #ifdef ENABLE_ACTIVERECORD diff --git a/modules/Poco/CppParser.cppm b/modules/Poco/CppParser.cppm index ee73ebea66..01fe26be6a 100644 --- a/modules/Poco/CppParser.cppm +++ b/modules/Poco/CppParser.cppm @@ -31,7 +31,7 @@ module; #include "Poco/CppParser/Variable.h" #endif -export module Poco.CppParser; +export module Poco:CppParser; export namespace Poco::CppParser { #ifdef ENABLE_CPPPARSER diff --git a/modules/Poco/Crypto.cppm b/modules/Poco/Crypto.cppm index 4cd22c9c2d..c2cba15d12 100644 --- a/modules/Poco/Crypto.cppm +++ b/modules/Poco/Crypto.cppm @@ -39,7 +39,7 @@ module; #include "Poco/Crypto/X509Certificate.h" #endif -export module Poco.Crypto; +export module Poco:Crypto; export namespace Poco::Crypto { #ifdef ENABLE_CRYPTO diff --git a/modules/Poco/DNSSD.cppm b/modules/Poco/DNSSD.cppm index b970beb771..63d3141375 100644 --- a/modules/Poco/DNSSD.cppm +++ b/modules/Poco/DNSSD.cppm @@ -23,13 +23,13 @@ module; #include "Poco/DNSSD/Service.h" #endif -export module Poco.DNSSD; +export module Poco:DNSSD; #ifdef ENABLE_DNSSD_AVAHI -export import :Avahi; +export import :DNSSD.Avahi; #endif #ifdef ENABLE_DNSSD_BONJOUR -export import :Bonjour; +export import :DNSSD.Bonjour; #endif export namespace Poco::DNSSD { diff --git a/modules/Poco/DNSSD/Avahi.cppm b/modules/Poco/DNSSD/Avahi.cppm index ea5dbdee02..af9fa93410 100644 --- a/modules/Poco/DNSSD/Avahi.cppm +++ b/modules/Poco/DNSSD/Avahi.cppm @@ -17,7 +17,7 @@ module; #include "Poco/DNSSD/Avahi/AvahiResponderImpl.h" #endif -export module Poco.DNSSD:Avahi; +export module Poco:DNSSD.Avahi; export namespace Poco::DNSSD { #ifdef ENABLE_DNSSD diff --git a/modules/Poco/DNSSD/Bonjour.cppm b/modules/Poco/DNSSD/Bonjour.cppm index 457ad8b182..8cd53f13c8 100644 --- a/modules/Poco/DNSSD/Bonjour.cppm +++ b/modules/Poco/DNSSD/Bonjour.cppm @@ -18,7 +18,7 @@ module; #include "Poco/DNSSD/Bonjour/EventLoop.h" #endif -export module Poco.DNSSD:Bonjour; +export module Poco:DNSSD.Bonjour; export namespace Poco::DNSSD { #ifdef ENABLE_DNSSD diff --git a/modules/Poco/Data.cppm b/modules/Poco/Data.cppm index 03e3008d94..5099dc87ac 100644 --- a/modules/Poco/Data.cppm +++ b/modules/Poco/Data.cppm @@ -65,19 +65,19 @@ module; #include "Poco/Data/TypeHandler.h" #endif -export module Poco.Data; +export module Poco:Data; #ifdef ENABLE_DATA_MYSQL -export import :MySQL; +export import :Data.MySQL; #endif #ifdef ENABLE_DATA_ODBC -export import :ODBC; +export import :Data.ODBC; #endif #ifdef ENABLE_DATA_POSTGRESQL -export import :PostgreSQL; +export import :Data.PostgreSQL; #endif #ifdef ENABLE_DATA_SQLITE -export import :SQLite; +export import :Data.SQLite; #endif export namespace Poco::Data { diff --git a/modules/Poco/Data/MySQL.cppm b/modules/Poco/Data/MySQL.cppm index 9977c07ce3..c9c47b45b6 100644 --- a/modules/Poco/Data/MySQL.cppm +++ b/modules/Poco/Data/MySQL.cppm @@ -25,7 +25,7 @@ module; #include "Poco/Data/MySQL/Utility.h" #endif -export module Poco.Data:MySQL; +export module Poco:Data.MySQL; export namespace Poco::Data::MySQL { #ifdef ENABLE_DATA_MYSQL diff --git a/modules/Poco/Data/ODBC.cppm b/modules/Poco/Data/ODBC.cppm index dea37ff3b4..8717e6894c 100644 --- a/modules/Poco/Data/ODBC.cppm +++ b/modules/Poco/Data/ODBC.cppm @@ -34,7 +34,7 @@ module; #include "Poco/Data/ODBC/Utility.h" #endif -export module Poco.Data:ODBC; +export module Poco:Data.ODBC; export namespace Poco::Data::ODBC { #ifdef ENABLE_DATA_ODBC diff --git a/modules/Poco/Data/PostgreSQL.cppm b/modules/Poco/Data/PostgreSQL.cppm index 76887da3f6..d84c8df039 100644 --- a/modules/Poco/Data/PostgreSQL.cppm +++ b/modules/Poco/Data/PostgreSQL.cppm @@ -26,7 +26,7 @@ module; #include "Poco/Data/PostgreSQL/Utility.h" #endif -export module Poco.Data:PostgreSQL; +export module Poco:Data.PostgreSQL; export namespace Poco::Data::PostgreSQL { #ifdef ENABLE_DATA_POSTGRESQL diff --git a/modules/Poco/Data/SQLite.cppm b/modules/Poco/Data/SQLite.cppm index 4d962b7648..2eb4f39b7a 100644 --- a/modules/Poco/Data/SQLite.cppm +++ b/modules/Poco/Data/SQLite.cppm @@ -23,7 +23,7 @@ module; #include "Poco/Data/SQLite/Utility.h" #endif -export module Poco.Data:SQLite; +export module Poco:Data.SQLite; export namespace Poco::Data::SQLite { #ifdef ENABLE_DATA_SQLITE diff --git a/modules/Poco/Dynamic.cppm b/modules/Poco/Dynamic.cppm deleted file mode 100644 index 922c72d4a9..0000000000 --- a/modules/Poco/Dynamic.cppm +++ /dev/null @@ -1,64 +0,0 @@ -// -// Dynamic.cppm -// -// C++ module file -// -// Copyright (c) 2025, Applied Informatics Software Engineering GmbH. -// and Contributors. -// -// SPDX-License-Identifier: BSL-1.0 -// - -module; - -#ifdef ENABLE_FOUNDATION -#include "Poco/Dynamic/Pair.h" -#include "Poco/Dynamic/Struct.h" -#include "Poco/Dynamic/Var.h" -#include "Poco/Dynamic/VarHolder.h" -#include "Poco/Dynamic/VarIterator.h" -#include "Poco/Dynamic/VarVisitor.h" -#endif - -export module Poco.Dynamic; - -export namespace Poco::Dynamic { - #ifdef ENABLE_FOUNDATION - using Poco::Dynamic::Pair; - using Poco::Dynamic::Struct; - using Poco::Dynamic::Var; - using Poco::Dynamic::VarHolder; - using Poco::Dynamic::VarHolderImpl; - using Poco::Dynamic::VarIterator; - using Poco::Dynamic::Visitor; - - using Poco::Dynamic::Array; - using Poco::Dynamic::Deque; - using Poco::Dynamic::List; - using Poco::Dynamic::Vector; - - using Poco::Dynamic::operator!=; - using Poco::Dynamic::operator*; - using Poco::Dynamic::operator*=; - using Poco::Dynamic::operator+; - using Poco::Dynamic::operator+=; - using Poco::Dynamic::operator-; - using Poco::Dynamic::operator-=; - using Poco::Dynamic::operator/; - using Poco::Dynamic::operator/=; - using Poco::Dynamic::operator<; - using Poco::Dynamic::operator<=; - using Poco::Dynamic::operator==; - using Poco::Dynamic::operator>; - using Poco::Dynamic::operator>=; - using Poco::Dynamic::structToString; - - namespace Impl { - using Poco::Dynamic::Impl::appendJSONKey; - using Poco::Dynamic::Impl::appendJSONString; - using Poco::Dynamic::Impl::appendJSONValue; - using Poco::Dynamic::Impl::containerToJSON; - using Poco::Dynamic::Impl::isJSONString; - } - #endif -} diff --git a/modules/Poco/Foundation.cppm b/modules/Poco/Foundation.cppm index 991ecb2729..70611dab69 100644 --- a/modules/Poco/Foundation.cppm +++ b/modules/Poco/Foundation.cppm @@ -11,7 +11,6 @@ module; -#ifdef ENABLE_FOUNDATION #include "Poco/AbstractCache.h" #include "Poco/AbstractDelegate.h" #include "Poco/AbstractEvent.h" @@ -294,12 +293,17 @@ module; #ifdef _WIN32 #include "Poco/WindowsConsoleChannel.h" #endif -#endif -export module Poco.Foundation; +#include "Poco/Dynamic/Pair.h" +#include "Poco/Dynamic/Struct.h" +#include "Poco/Dynamic/Var.h" +#include "Poco/Dynamic/VarHolder.h" +#include "Poco/Dynamic/VarIterator.h" +#include "Poco/Dynamic/VarVisitor.h" + +export module Poco:Foundation; export namespace Poco { - #ifdef ENABLE_FOUNDATION using Poco::ASCIIEncoding; using Poco::AbstractCache; using Poco::AbstractDelegate; @@ -853,5 +857,43 @@ export namespace Poco { using Poco::Impl::Ptr; using Poco::Impl::hashCombine; } - #endif + + namespace Dynamic { + using Poco::Dynamic::Pair; + using Poco::Dynamic::Struct; + using Poco::Dynamic::Var; + using Poco::Dynamic::VarHolder; + using Poco::Dynamic::VarHolderImpl; + using Poco::Dynamic::VarIterator; + using Poco::Dynamic::Visitor; + + using Poco::Dynamic::Array; + using Poco::Dynamic::Deque; + using Poco::Dynamic::List; + using Poco::Dynamic::Vector; + + using Poco::Dynamic::operator!=; + using Poco::Dynamic::operator*; + using Poco::Dynamic::operator*=; + using Poco::Dynamic::operator+; + using Poco::Dynamic::operator+=; + using Poco::Dynamic::operator-; + using Poco::Dynamic::operator-=; + using Poco::Dynamic::operator/; + using Poco::Dynamic::operator/=; + using Poco::Dynamic::operator<; + using Poco::Dynamic::operator<=; + using Poco::Dynamic::operator==; + using Poco::Dynamic::operator>; + using Poco::Dynamic::operator>=; + using Poco::Dynamic::structToString; + + namespace Impl { + using Poco::Dynamic::Impl::appendJSONKey; + using Poco::Dynamic::Impl::appendJSONString; + using Poco::Dynamic::Impl::appendJSONValue; + using Poco::Dynamic::Impl::containerToJSON; + using Poco::Dynamic::Impl::isJSONString; + } + } } diff --git a/modules/Poco/JSON.cppm b/modules/Poco/JSON.cppm index 6cbc241ccc..01c63eece6 100644 --- a/modules/Poco/JSON.cppm +++ b/modules/Poco/JSON.cppm @@ -27,7 +27,7 @@ module; #include "Poco/JSON/Template.h" #endif -export module Poco.JSON; +export module Poco:JSON; export namespace Poco::JSON { #ifdef ENABLE_JSON diff --git a/modules/Poco/JWT.cppm b/modules/Poco/JWT.cppm index 55cffafe47..719ae69807 100644 --- a/modules/Poco/JWT.cppm +++ b/modules/Poco/JWT.cppm @@ -19,7 +19,7 @@ module; #include "Poco/JWT/Token.h" #endif -export module Poco.JWT; +export module Poco:JWT; export namespace Poco::JWT { #ifdef ENABLE_JWT diff --git a/modules/Poco/MongoDB.cppm b/modules/Poco/MongoDB.cppm index 1f6b317712..2a41b6663b 100644 --- a/modules/Poco/MongoDB.cppm +++ b/modules/Poco/MongoDB.cppm @@ -39,7 +39,7 @@ module; #include "Poco/MongoDB/TopologyDescription.h" #endif -export module Poco.MongoDB; +export module Poco:MongoDB; export namespace Poco::MongoDB { #ifdef ENABLE_MONGODB diff --git a/modules/Poco/Net.cppm b/modules/Poco/Net.cppm index 470f89b4f1..79f7f31441 100644 --- a/modules/Poco/Net.cppm +++ b/modules/Poco/Net.cppm @@ -193,7 +193,7 @@ module; #endif #endif -export module Poco.Net; +export module Poco:Net; export namespace Poco::Net { #ifdef ENABLE_NET diff --git a/modules/Poco/PDF.cppm b/modules/Poco/PDF.cppm index b47b88275e..40de2ed65c 100644 --- a/modules/Poco/PDF.cppm +++ b/modules/Poco/PDF.cppm @@ -29,7 +29,7 @@ module; #include "Poco/PDF/XMLTemplate.h" #endif -export module Poco.PDF; +export module Poco:PDF; export namespace Poco::PDF { #ifdef ENABLE_PDF diff --git a/modules/Poco/Prometheus.cppm b/modules/Poco/Prometheus.cppm index 3b0352a533..d2aaeb0399 100644 --- a/modules/Poco/Prometheus.cppm +++ b/modules/Poco/Prometheus.cppm @@ -33,7 +33,7 @@ module; #include "Poco/Prometheus/ThreadPoolCollector.h" #endif -export module Poco.Prometheus; +export module Poco:Prometheus; export namespace Poco::Prometheus { #ifdef ENABLE_PROMETHEUS diff --git a/modules/Poco/Redis.cppm b/modules/Poco/Redis.cppm index 5d174770c0..d4a29bb0cb 100644 --- a/modules/Poco/Redis.cppm +++ b/modules/Poco/Redis.cppm @@ -25,7 +25,7 @@ module; #include "Poco/Redis/Type.h" #endif -export module Poco.Redis; +export module Poco:Redis; export namespace Poco::Redis { #ifdef ENABLE_REDIS diff --git a/modules/Poco/SevenZip.cppm b/modules/Poco/SevenZip.cppm index c8e3813cc9..b91a789126 100644 --- a/modules/Poco/SevenZip.cppm +++ b/modules/Poco/SevenZip.cppm @@ -17,7 +17,7 @@ module; #include "Poco/SevenZip/SevenZip.h" #endif -export module Poco.SevenZip; +export module Poco:SevenZip; export namespace Poco::SevenZip { #ifdef ENABLE_SEVENZIP diff --git a/modules/Poco/Util.cppm b/modules/Poco/Util.cppm index db4cb544e6..50d077771a 100644 --- a/modules/Poco/Util.cppm +++ b/modules/Poco/Util.cppm @@ -50,7 +50,7 @@ module; #include "Poco/Util/XMLConfiguration.h" #endif -export module Poco.Util; +export module Poco:Util; export namespace Poco::Util { #ifdef ENABLE_UTIL diff --git a/modules/Poco/XML.cppm b/modules/Poco/XML.cppm index 1c7cf0990f..9cf04dd55b 100644 --- a/modules/Poco/XML.cppm +++ b/modules/Poco/XML.cppm @@ -88,7 +88,7 @@ module; #include "Poco/XML/XMLWriter.h" #endif -export module Poco.XML; +export module Poco:XML; export namespace Poco::XML { #ifdef ENABLE_XML diff --git a/modules/Poco/Zip.cppm b/modules/Poco/Zip.cppm index efbf574611..6be991c237 100644 --- a/modules/Poco/Zip.cppm +++ b/modules/Poco/Zip.cppm @@ -37,7 +37,7 @@ module; #include "Poco/Zip/ZipUtil.h" #endif -export module Poco.Zip; +export module Poco:Zip; export namespace Poco::Zip { #ifdef ENABLE_ZIP