From 2edc9c6fd10e34ca1da0d25d3ceb9b67a6b9c73c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?P=C5=99emysl=20Eric=20Janouch?= Date: Fri, 7 Jul 2023 12:25:14 +0200 Subject: Add a C++ backend for LibertyXDR Also change the C backend so that it also de/serializes unions without any other fields besides the tag. --- CMakeLists.txt | 22 +++++++++++++++++----- 1 file changed, 17 insertions(+), 5 deletions(-) (limited to 'CMakeLists.txt') diff --git a/CMakeLists.txt b/CMakeLists.txt index 42590a1..0da5470 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1,5 +1,5 @@ cmake_minimum_required (VERSION 2.8.12) -project (liberty C) +project (liberty C CXX) # Moar warnings if ("${CMAKE_C_COMPILER_ID}" MATCHES "GNU" OR CMAKE_COMPILER_IS_GNUCC) @@ -72,7 +72,7 @@ add_test (test-cmake-parser # Test protocol code generation set (lxdrgen_outputs) set (lxdrgen_base "${PROJECT_BINARY_DIR}/lxdrgen.lxdr") -foreach (backend c go mjs swift) +foreach (backend c cpp go mjs swift) list (APPEND lxdrgen_outputs ${lxdrgen_base}.${backend}) add_custom_command (OUTPUT ${lxdrgen_base}.${backend} COMMAND env LC_ALL=C awk @@ -91,9 +91,21 @@ add_custom_target (test-lxdrgen-outputs ALL DEPENDS ${lxdrgen_outputs}) set_source_files_properties (${lxdrgen_base}.c PROPERTIES HEADER_FILE_ONLY TRUE) -add_executable (test-lxdrgen tests/lxdrgen.c ${lxdrgen_base}.c) -target_include_directories (test-lxdrgen PUBLIC ${PROJECT_BINARY_DIR}) -add_test (NAME test-lxdrgen-c COMMAND test-lxdrgen) +add_executable (test-lxdrgen-c tests/lxdrgen.c ${lxdrgen_base}.c) +target_include_directories (test-lxdrgen-c PUBLIC ${PROJECT_BINARY_DIR}) +add_test (NAME test-lxdrgen-c COMMAND test-lxdrgen-c) + +set_source_files_properties (${lxdrgen_base}.cpp + PROPERTIES HEADER_FILE_ONLY TRUE) +if (WIN32) + add_executable (test-lxdrgen-cpp tests/lxdrgen.cpp + ${lxdrgen_base}.cpp tools/lxdrgen-cpp-win32.cpp) +else () + add_executable (test-lxdrgen-cpp tests/lxdrgen.cpp + ${lxdrgen_base}.cpp tools/lxdrgen-cpp-posix.cpp) +endif () +target_include_directories (test-lxdrgen-cpp PUBLIC ${PROJECT_BINARY_DIR}) +add_test (NAME test-lxdrgen-cpp COMMAND test-lxdrgen-cpp) find_program (GO_EXECUTABLE go) if (GO_EXECUTABLE) -- cgit v1.2.3