Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
The diff you're trying to view is too large. We only load the first 3000 changed files.
6 changes: 6 additions & 0 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -45,6 +45,9 @@ env:
-DENABLE_ACTIVERECORD=ON -DENABLE_ACTIVERECORD_COMPILER=ON
-DENABLE_CPPPARSER=ON
-DENABLE_PAGECOMPILER=ON -DENABLE_POCODOC=ON -DENABLE_PAGECOMPILER_FILE2PAGE=ON
-DENABLE_CODEGENERATION=ON -DENABLE_REMOTINGNG=ON -DENABLE_REMOTINGNG_REMOTEGEN=ON
-DENABLE_REMOTINGNG_TCP=ON -DENABLE_REMOTINGNG_HTTP=ON -DENABLE_REMOTINGNG_JSONRPC=ON
-DENABLE_REMOTINGNG_REST=ON -DENABLE_REMOTINGNG_SOAP=ON
POCO_CMAKE_FULL_LINUX_EXTRA: >-
-DENABLE_APACHECONNECTOR=ON
-DENABLE_DNSSD=ON -DENABLE_DNSSD_DEFAULT=ON
Expand All @@ -63,6 +66,9 @@ env:
-DENABLE_PDF=ON -DENABLE_PROMETHEUS=ON
-DENABLE_ACTIVERECORD=ON -DENABLE_ACTIVERECORD_COMPILER=ON
-DENABLE_CPPPARSER=ON
-DENABLE_CODEGENERATION=ON -DENABLE_REMOTINGNG=ON -DENABLE_REMOTINGNG_REMOTEGEN=ON
-DENABLE_REMOTINGNG_TCP=ON -DENABLE_REMOTINGNG_HTTP=ON -DENABLE_REMOTINGNG_JSONRPC=ON
-DENABLE_REMOTINGNG_REST=ON -DENABLE_REMOTINGNG_SOAP=ON
# Windows reduced scope (static, Win32, clang-cl): SChannel only, no OpenSSL.
POCO_CMAKE_WINDOWS_MINIMAL: >-
-DPOCO_MINIMAL_BUILD=ON -DENABLE_TESTS=ON
Expand Down
8 changes: 8 additions & 0 deletions CHANGELOG
Original file line number Diff line number Diff line change
Expand Up @@ -42,6 +42,14 @@ Features:
POCO_ENABLE_SQLITE_VEC (gnu make) or ./configure --sqlite-vec. Works with bundled and
unbundled SQLite (3.37 or newer required); optional AVX2/NEON SIMD kernels.

New Components:

- GH #5447 RemotingNG (remote objects framework with TCP, HTTP, JSON-RPC, REST and SOAP
transports and the RemoteGenNG code generator) and CodeGeneration moved from macchina.io into
POCO. CMake options ENABLE_REMOTINGNG, ENABLE_REMOTINGNG_{TCP,HTTP,JSONRPC,REST,SOAP},
ENABLE_REMOTINGNG_REMOTEGEN, ENABLE_CODEGENERATION; make components CodeGeneration,
RemotingNG, RemotingNG/{TCP,HTTP,JSONRPC,REST,SOAP,RemoteGen}.


Release 1.15.4 (2026-09-22)
===========================
Expand Down
67 changes: 67 additions & 0 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -250,6 +250,14 @@ option(ENABLE_PAGECOMPILER "Enable PageCompiler" ${_enable_default})
option(ENABLE_PAGECOMPILER_FILE2PAGE "Enable File2Page" ${_enable_default})
option(ENABLE_ACTIVERECORD "Enable ActiveRecord" ${_enable_default})
option(ENABLE_ACTIVERECORD_COMPILER "Enable ActiveRecord Compiler" ${_enable_default})
option(ENABLE_CODEGENERATION "Enable CodeGeneration" ${_enable_default})
option(ENABLE_REMOTINGNG "Enable RemotingNG" ${_enable_default})
option(ENABLE_REMOTINGNG_TCP "Enable RemotingNG TCP transport" ${_enable_default})
option(ENABLE_REMOTINGNG_HTTP "Enable RemotingNG HTTP transport" ${_enable_default})
option(ENABLE_REMOTINGNG_JSONRPC "Enable RemotingNG JSONRPC transport" ${_enable_default})
option(ENABLE_REMOTINGNG_REST "Enable RemotingNG REST transport" ${_enable_default})
option(ENABLE_REMOTINGNG_SOAP "Enable RemotingNG SOAP transport" ${_enable_default})
option(ENABLE_REMOTINGNG_REMOTEGEN "Enable RemotingNG code generator (RemoteGenNG)" ${_enable_default})

if(WIN32)
option(ENABLE_NETSSL_WIN "Enable NetSSL Windows" OFF)
Expand Down Expand Up @@ -397,6 +405,31 @@ if(ENABLE_JWT)
set(ENABLE_JSON ON CACHE BOOL "Enable JSON" FORCE)
endif()

if(ENABLE_REMOTINGNG_REMOTEGEN)
set(ENABLE_REMOTINGNG ON CACHE BOOL "Enable RemotingNG" FORCE)
set(ENABLE_CODEGENERATION ON CACHE BOOL "Enable CodeGeneration" FORCE)
set(ENABLE_CPPPARSER ON CACHE BOOL "Enable C++ parser" FORCE)
set(ENABLE_UTIL ON CACHE BOOL "Enable Util" FORCE)
set(ENABLE_XML ON CACHE BOOL "Enable XML" FORCE)
set(ENABLE_JSON ON CACHE BOOL "Enable JSON" FORCE)
set(ENABLE_NET ON CACHE BOOL "Enable Net" FORCE)
endif()

if(ENABLE_REMOTINGNG_TCP OR ENABLE_REMOTINGNG_HTTP OR ENABLE_REMOTINGNG_JSONRPC OR ENABLE_REMOTINGNG_REST)
set(ENABLE_REMOTINGNG ON CACHE BOOL "Enable RemotingNG" FORCE)
set(ENABLE_NET ON CACHE BOOL "Enable Net" FORCE)
endif()

if(ENABLE_REMOTINGNG_SOAP)
set(ENABLE_REMOTINGNG ON CACHE BOOL "Enable RemotingNG" FORCE)
set(ENABLE_NET ON CACHE BOOL "Enable Net" FORCE)
set(ENABLE_XML ON CACHE BOOL "Enable XML" FORCE)
endif()

if(ENABLE_CODEGENERATION)
set(ENABLE_CPPPARSER ON CACHE BOOL "Enable C++ parser" FORCE)
endif()

if(ENABLE_MONGODB OR ENABLE_REDIS OR ENABLE_PROMETHEUS)
set(ENABLE_NET ON CACHE BOOL "Enable Net" FORCE)
endif()
Expand Down Expand Up @@ -638,6 +671,40 @@ if(EXISTS ${PROJECT_SOURCE_DIR}/CppParser AND ENABLE_CPPPARSER)
list(APPEND Poco_COMPONENTS "CppParser")
endif()

if(EXISTS ${PROJECT_SOURCE_DIR}/CodeGeneration AND ENABLE_CODEGENERATION)
add_subdirectory(CodeGeneration)
list(APPEND Poco_COMPONENTS "CodeGeneration")
endif()

if(EXISTS ${PROJECT_SOURCE_DIR}/RemotingNG AND ENABLE_REMOTINGNG)
add_subdirectory(RemotingNG)
list(APPEND Poco_COMPONENTS "RemotingNG")
endif()

if(EXISTS ${PROJECT_SOURCE_DIR}/RemotingNG/TCP AND ENABLE_REMOTINGNG_TCP)
list(APPEND Poco_COMPONENTS "RemotingNG/TCP")
endif()

if(EXISTS ${PROJECT_SOURCE_DIR}/RemotingNG/HTTP AND ENABLE_REMOTINGNG_HTTP)
list(APPEND Poco_COMPONENTS "RemotingNG/HTTP")
endif()

if(EXISTS ${PROJECT_SOURCE_DIR}/RemotingNG/JSONRPC AND ENABLE_REMOTINGNG_JSONRPC)
list(APPEND Poco_COMPONENTS "RemotingNG/JSONRPC")
endif()

if(EXISTS ${PROJECT_SOURCE_DIR}/RemotingNG/REST AND ENABLE_REMOTINGNG_REST)
list(APPEND Poco_COMPONENTS "RemotingNG/REST")
endif()

if(EXISTS ${PROJECT_SOURCE_DIR}/RemotingNG/SOAP AND ENABLE_REMOTINGNG_SOAP)
list(APPEND Poco_COMPONENTS "RemotingNG/SOAP")
endif()

if(EXISTS ${PROJECT_SOURCE_DIR}/RemotingNG/RemoteGen AND ENABLE_REMOTINGNG_REMOTEGEN)
list(APPEND Poco_COMPONENTS "RemotingNG/RemoteGen")
endif()

if(EXISTS ${PROJECT_SOURCE_DIR}/PocoDoc AND ENABLE_POCODOC)
add_subdirectory(PocoDoc)
list(APPEND Poco_COMPONENTS "PocoDoc")
Expand Down
37 changes: 37 additions & 0 deletions CodeGeneration/CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,37 @@
# Sources
file(GLOB SRCS_G "src/*.cpp")
POCO_SOURCES_AUTO(SRCS ${SRCS_G})

# Headers
file(GLOB_RECURSE HDRS_G "include/*.h")
POCO_HEADERS_AUTO(SRCS ${HDRS_G})

# Version Resource
if(MSVC AND BUILD_SHARED_LIBS)
source_group("Resources" FILES ${PROJECT_SOURCE_DIR}/DLLVersion.rc)
list(APPEND SRCS ${PROJECT_SOURCE_DIR}/DLLVersion.rc)
endif()

add_library(CodeGeneration ${SRCS})
add_library(Poco::CodeGeneration ALIAS CodeGeneration)
set_target_properties(CodeGeneration
PROPERTIES
VERSION ${SHARED_LIBRARY_VERSION} SOVERSION ${SHARED_LIBRARY_VERSION}
OUTPUT_NAME PocoCodeGeneration
DEFINE_SYMBOL CodeGeneration_EXPORTS
)

target_link_libraries(CodeGeneration PUBLIC Poco::CppParser Poco::Foundation)
target_include_directories(CodeGeneration
PUBLIC
$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/include>
$<INSTALL_INTERFACE:${CMAKE_INSTALL_INCLUDEDIR}>
PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}/src
)

POCO_INSTALL(CodeGeneration)
POCO_GENERATE_PACKAGE(CodeGeneration)

if(ENABLE_TESTS)
add_subdirectory(testsuite)
endif()
17 changes: 17 additions & 0 deletions CodeGeneration/Makefile
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
#
# Makefile
#
# Makefile for Poco CodeGeneration
#

include $(POCO_BASE)/build/rules/global

SHAREDOPT_CXX += -DCodeGeneration_EXPORTS

objects = CodeGenerator CppGenerator GeneratorEngine MethodPropertyFilter Utility

target = PocoCodeGeneration
target_version = $(LIBVERSION)
target_libs = PocoCppParser PocoFoundation

include $(POCO_BASE)/build/rules/lib
4 changes: 4 additions & 0 deletions CodeGeneration/cmake/PocoCodeGenerationConfig.cmake
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
include(CMakeFindDependencyMacro)
find_dependency(PocoFoundation)
find_dependency(PocoCppParser)
include("${CMAKE_CURRENT_LIST_DIR}/PocoCodeGenerationTargets.cmake")
2 changes: 2 additions & 0 deletions CodeGeneration/dependencies
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
CppParser
Foundation
64 changes: 64 additions & 0 deletions CodeGeneration/include/Poco/CodeGeneration/CodeGeneration.h
Original file line number Diff line number Diff line change
@@ -0,0 +1,64 @@
//
// CodeGeneration.h
//
// Library: CodeGeneration
// Package: CodeGeneration
// Module: CodeGeneration
//
// Basic definitions for the Poco CodeGeneration library.
// This file must be the first file included by every other CodeGeneration
// header file.
//
// Copyright (c) 2006-2014, Applied Informatics Software Engineering GmbH.
// All rights reserved.
//
// SPDX-License-Identifier: BSL-1.0
//


#ifndef CodeGeneration_CodeGeneration_INCLUDED
#define CodeGeneration_CodeGeneration_INCLUDED


#ifndef Foundation_Foundation_INCLUDED
#include "Poco/Foundation.h"
#endif


//
// The following block is the standard way of creating macros which make exporting
// from a DLL simpler. All files within this DLL are compiled with the CodeGeneration_EXPORTS
// symbol defined on the command line. This symbol should not be defined on any project
// that uses this DLL. This way any other project whose source files include this file sees
// CodeGeneration_API functions as being imported from a DLL, whereas this DLL sees symbols
// defined with this macro as being exported.
//
#if defined(_WIN32) && defined(POCO_DLL)
#if defined(CodeGeneration_EXPORTS)
#define CodeGeneration_API __declspec(dllexport)
#else
#define CodeGeneration_API __declspec(dllimport)
#endif
#endif


#if !defined(CodeGeneration_API)
#if !defined(POCO_NO_GCC_API_ATTRIBUTE) && defined (__GNUC__) && (__GNUC__ >= 4)
#define CodeGeneration_API __attribute__ ((visibility ("default")))
#else
#define CodeGeneration_API
#endif
#endif


//
// Automatically link CodeGeneration library.
//
#if defined(_MSC_VER)
#if !defined(POCO_NO_AUTOMATIC_LIBS) && !defined(CodeGeneration_EXPORTS)
#pragma comment(lib, "PocoCodeGeneration" POCO_LIB_SUFFIX)
#endif
#endif


#endif // CodeGeneration_CodeGeneration_INCLUDED
Loading
Loading