Add support for modules (#4999)

* Add support for modules

* Use "" for inclusion

* Fix missing includes on Poco.Data module

* Add PDF and SevenZip modules, and match modules to build macros

* Add CI test

* Add missing link libraries in CMake

* Add remaining libraries DNSSD, CppParser and CppUnit. Changed some static declarations to inline to export

* We also need to forward the ENABLE_NETSSL_* macros

* Update CMakeLists files

* Add samples as requested, with DateTime and URI test for example

* Fix POCO_MODULES_INSTALL macro

* chore(CMake): Combine install macro for libraries and C++ modules into one macro.

* Apply testsuite changes and address include directories concerns

* Restore accidentally deleted build files

* Mistakenly added a file generated by CMake, removed.

---------

Co-authored-by: Matej Kenda <matejken@gmail.com>
This commit is contained in:
Miko
2025-09-19 13:46:36 -04:00
committed by GitHub
parent e2920f36da
commit 041e7feeb7
50 changed files with 3880 additions and 81 deletions

53
modules/Poco/PDF.cppm Normal file
View File

@@ -0,0 +1,53 @@
//
// PDF.cppm
//
// C++ module file
//
// Copyright (c) 2025, Applied Informatics Software Engineering GmbH.
// and Contributors.
//
// SPDX-License-Identifier: BSL-1.0
//
module;
#ifdef ENABLE_PDF
#include "Poco/PDF/AttributedString.h"
#include "Poco/PDF/Cell.h"
#include "Poco/PDF/Destination.h"
#include "Poco/PDF/Encoder.h"
#include "Poco/PDF/Font.h"
#include "Poco/PDF/Image.h"
#include "Poco/PDF/LinkAnnotation.h"
#include "Poco/PDF/Outline.h"
#include "Poco/PDF/Page.h"
#include "Poco/PDF/PDF.h"
#include "Poco/PDF/PDFException.h"
#include "Poco/PDF/Resource.h"
#include "Poco/PDF/Table.h"
#include "Poco/PDF/TextAnnotation.h"
#include "Poco/PDF/XMLTemplate.h"
#endif
export module Poco.PDF;
export namespace Poco::PDF {
#ifdef ENABLE_PDF
using Poco::PDF::AttributedString;
using Poco::PDF::Cell;
using Poco::PDF::Destination;
using Poco::PDF::Document;
using Poco::PDF::Encoder;
using Poco::PDF::Font;
using Poco::PDF::Image;
using Poco::PDF::LinkAnnotation;
using Poco::PDF::Outline;
using Poco::PDF::Page;
using Poco::PDF::PDFCreateException;
using Poco::PDF::PDFException;
using Poco::PDF::Resource;
using Poco::PDF::Table;
using Poco::PDF::TextAnnotation;
using Poco::PDF::XMLTemplate;
#endif
}