| # Test cxx descriptor functionality |
| |
| Import('env') |
| |
| base_env = env.Clone() |
| base_env.Replace(NANOPBFLAGS = '--cpp-descriptor') |
| base_env.NanopbProto('message') |
| |
| for std in ["c++03", "c++11", "c++14", "c++17", "c++20"]: |
| e = base_env.Clone() |
| e.Append(CXXFLAGS = '-std={}'.format(std)) |
| |
| # Make sure compiler supports this version of C++ before we actually run the |
| # test. |
| conf = Configure(e) |
| compiler_valid = conf.CheckCXX() |
| e = conf.Finish() |
| if not compiler_valid: |
| print("Skipping {} test - compiler doesn't support it".format(std)) |
| continue |
| |
| if std == 'c++03': |
| e.Append(CPPDEFINES = {'PB_C99_STATIC_ASSERT': 1}) |
| |
| o1 = e.Object('message_descriptor_{}'.format(std), 'message_descriptor.cc') |
| o2 = e.Object('message.pb_{}'.format(std), 'message.pb.c') |
| p = e.Program([o1, o2]) |
| e.RunTest(p) |