Skip to content

Commit 70b0418

Browse files
committed
Add a generator for C.
1 parent 0b17346 commit 70b0418

File tree

10 files changed

+4960
-0
lines changed

10 files changed

+4960
-0
lines changed

CMakeLists.txt

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -129,6 +129,7 @@ add_custom_target(sbe-jar
129129
)
130130

131131
set(CODEC_TARGET_DIR "${CMAKE_CURRENT_BINARY_DIR}/generated")
132+
set(C_CODEC_TARGET_DIR "${CODEC_TARGET_DIR}/c")
132133
set(CXX_CODEC_TARGET_DIR "${CODEC_TARGET_DIR}/cpp")
133134
set(CODEC_SCHEMA_DIR "${CMAKE_CURRENT_SOURCE_DIR}/sbe-tool/src/test/resources")
134135
set(CODEC_PERF_SCHEMA_DIR "${CMAKE_CURRENT_SOURCE_DIR}/sbe-benchmarks/src/main/resources")
@@ -137,6 +138,7 @@ set(CODEC_EXAMPLES_SCHEMA_DIR "${CMAKE_CURRENT_SOURCE_DIR}/sbe-samples/src/main/
137138
add_subdirectory(${CMAKE_CURRENT_SOURCE_DIR}/sbe-tool/src/main/cpp)
138139

139140
if(SBE_TESTS)
141+
add_subdirectory(${CMAKE_CURRENT_SOURCE_DIR}/sbe-tool/src/test/c)
140142
add_subdirectory(${CMAKE_CURRENT_SOURCE_DIR}/sbe-tool/src/test/cpp)
141143
endif()
142144

sbe-tool/src/main/java/uk/co/real_logic/sbe/generation/TargetCodeGeneratorLoader.java

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,8 @@
1616
package uk.co.real_logic.sbe.generation;
1717

1818
import org.agrona.generation.PackageOutputManager;
19+
import uk.co.real_logic.sbe.generation.c.CGenerator;
20+
import uk.co.real_logic.sbe.generation.c.COutputManager;
1921
import uk.co.real_logic.sbe.generation.cpp.CppGenerator;
2022
import uk.co.real_logic.sbe.generation.cpp.NamespaceOutputManager;
2123
import uk.co.real_logic.sbe.generation.golang.GolangGenerator;
@@ -42,6 +44,14 @@ public CodeGenerator newInstance(final Ir ir, final String outputDir)
4244
}
4345
},
4446

47+
C()
48+
{
49+
public CodeGenerator newInstance(final Ir ir, final String outputDir)
50+
{
51+
return new CGenerator(ir, new COutputManager(outputDir, ir.applicableNamespace()));
52+
}
53+
},
54+
4555
CPP()
4656
{
4757
public CodeGenerator newInstance(final Ir ir, final String outputDir)

0 commit comments

Comments
 (0)