diff --git a/generator/CMakeLists.txt b/generator/CMakeLists.txt index 7ceae6c..9102176 100644 --- a/generator/CMakeLists.txt +++ b/generator/CMakeLists.txt @@ -72,4 +72,13 @@ add_reflection_generator_invocation( include(TestTarget) include(ShellCompletion) include(Doxygen) + +# add paths for include dirs of c++utilities and RapidJSON to config header so test cases can use it +set(META_CUSTOM_CONFIG "#define CPP_UTILITIES_INCLUDE_DIRS \"${CPP_UTILITIES_INCLUDE_DIRS}\"\n") +if(RapidJSON_FOUND) + string(APPEND META_CUSTOM_CONFIG "#define RAPIDJSON_INCLUDE_DIRS \"${RAPIDJSON_INCLUDE_DIRS}\"\n") +endif() + +# make config header include(ConfigHeader) + diff --git a/generator/tests/jsongenerator.cpp b/generator/tests/jsongenerator.cpp index b1d0150..3129564 100644 --- a/generator/tests/jsongenerator.cpp +++ b/generator/tests/jsongenerator.cpp @@ -65,7 +65,7 @@ void JsonGeneratorTests::testGeneratorItself() { const string inputFilePath(testFilePath("some_structs.h")); const vector inputFiles{ inputFilePath.data() }; - const vector clangOptions{}; + const vector clangOptions{"-I" CPP_UTILITIES_INCLUDE_DIRS, "-I" RAPIDJSON_INCLUDE_DIRS}; stringstream buffer; JsonSerializationCodeGenerator::Options jsonOptions; @@ -88,7 +88,7 @@ void JsonGeneratorTests::testCLI() string stdout, stderr; const string inputFilePath(testFilePath("some_structs.h")); - const char *const args1[] = { PROJECT_NAME, "-i", inputFilePath.data(), "--json-classes", "TestNamespace2::ThirdPartyStruct", nullptr }; + const char *const args1[] = { PROJECT_NAME, "-i", inputFilePath.data(), "--json-classes", "TestNamespace2::ThirdPartyStruct", "--clang-opt", "-I" CPP_UTILITIES_INCLUDE_DIRS, "-I" RAPIDJSON_INCLUDE_DIRS, nullptr }; TESTUTILS_ASSERT_EXEC(args1); assertEqualityLinewise(m_expectedCode, toArrayOfLines(stdout)); #endif