You are viewing a plain text version of this content. The canonical link for it is here.
Posted to c-commits@axis.apache.org by ro...@apache.org on 2025/11/21 22:45:50 UTC
(axis-axis2-c-core) 02/02: Add CMake build configuration for native WSDL2C generator
This is an automated email from the ASF dual-hosted git repository.
robertlazarski pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/axis-axis2-c-core.git
commit 0d3dffed82b48f0ae177e3313bc7d6911b72bcb2
Author: Robert Lazarski <rl...@alphatheory.com>
AuthorDate: Fri Nov 21 12:44:51 2025 -1000
Add CMake build configuration for native WSDL2C generator
Provides alternative build system alongside Autotools for:
- Cross-platform compatibility
- IDE integration support
- Standalone development builds
---
tools/codegen/native/CMakeLists.txt | 70 +++++++++++++++++++++++++++++++++++++
1 file changed, 70 insertions(+)
diff --git a/tools/codegen/native/CMakeLists.txt b/tools/codegen/native/CMakeLists.txt
new file mode 100644
index 000000000..71e84eaf7
--- /dev/null
+++ b/tools/codegen/native/CMakeLists.txt
@@ -0,0 +1,70 @@
+cmake_minimum_required(VERSION 3.10)
+project(wsdl2c-native VERSION 1.0.0 LANGUAGES C)
+
+# Set C standard
+set(CMAKE_C_STANDARD 99)
+set(CMAKE_C_STANDARD_REQUIRED ON)
+
+# Find required packages
+find_package(PkgConfig REQUIRED)
+pkg_check_modules(LIBXML2 REQUIRED libxml-2.0)
+
+# Include directories
+include_directories(
+ include
+ ${LIBXML2_INCLUDE_DIRS}
+ ${CMAKE_SOURCE_DIR}/include
+ ${CMAKE_SOURCE_DIR}/axiom/include
+ ${CMAKE_SOURCE_DIR}/util/include
+)
+
+# Source files
+set(SOURCES
+ src/main.c
+ src/options.c
+ src/wsdl_parser.c
+ src/stub_generator.c
+ # TODO: Add these when implemented
+ # src/schema_parser.c
+ # src/type_mapper.c
+ # src/skel_generator.c
+ # src/template_engine.c
+)
+
+# Create executable
+add_executable(wsdl2c-native ${SOURCES})
+
+# Link libraries
+target_link_libraries(wsdl2c-native
+ ${LIBXML2_LIBRARIES}
+ # axutil
+ # axiom
+)
+
+# Compiler flags
+target_compile_options(wsdl2c-native PRIVATE
+ ${LIBXML2_CFLAGS_OTHER}
+ -Wall -Wextra -pedantic
+ -DHAVE_CONFIG_H
+)
+
+# For standalone testing without full Axis2/C build
+target_compile_definitions(wsdl2c-native PRIVATE
+ AXIS2_SUCCESS=0
+ AXIS2_FAILURE=-1
+ AXIS2_TRUE=1
+ AXIS2_FALSE=0
+ AXIS2_LOG_LEVEL_INFO=2
+ STANDALONE_BUILD=1
+)
+
+# Install target
+install(TARGETS wsdl2c-native
+ RUNTIME DESTINATION bin/tools/wsdl2c
+)
+
+# Install templates
+install(DIRECTORY templates/
+ DESTINATION share/axis2c/codegen/templates
+ OPTIONAL
+)
\ No newline at end of file