header for gcc-4-8.hpp not found
We are trying to use the library on compilers ranging from gcc 4.8 to modern day. We are incorporating the library through our project's makefiles. The library is the delivered via vcpkg.
We finally got around to testing the new feature set on a platform with gcc 4.8. The build breaks with the following:
/home/vsts/work/1/vcpkg/installed/x64-linux/include/c4/compiler.hpp:105:41: fatal error: c4/gcc-4.8.hpp: No such file or directory
# include "c4/gcc-4.8.hpp"
I quickly scanned the file listing in repo to see if the file exists but I could not find it.
Setup:
- use vcpkg to install library
- use makefiles to build application. in makefile, we simply add library using '-lryml -lc4core'
The app runs on Windows, Linux and macOS. We test on each platform with 8 compilers (msvc, clang, gcc - at least 2-3 versions of each).
Questions:
- is this file auto-generated?
- is issue related to how the port was created in vcpkg? if so, i can follow up as needed.
- we don't use cmake. have I missed a configuration change for the older compiler that needs to be addressed when solely using makefiles?
Thanks.
- There is a 4.8 compatibility header located at cmake/compat/c4/gcc-4.8.hpp.
- The cmake script adds its directory to the include path when it detects gcc >= 4.8 and < 5.
- Then the header
c4/compiler.hppincludes that shim header under the same conditions.
Thanks for the info. In looking at the vckpg install, there is no folder called compat in the c4core port. I will follow up with package repo to see if they can address the issue (and also publish v0.5.0).
@biojppm I think the vcpkg setup has some issues but I also believe there might be a problem with c4core itself. I am following up with that team to address a few different issues.
However, I just tried building the c4core project and installing it to a local folder. In the local folder, I can see two folders -- include and lib. The include folder does not have the gcc-4.8.hpp file that is referenced in compiler.hpp. There is no way to use the install artifacts if/when you hit the conditional that adds the include c4/gcc-4.8.hpp. It seems to me that this test case has been overlooked. Even if the vcpkg team addresses the issues, the c4core cmake scripts are don't seem to be doing the right thing for the compat header.
Can you confirm you see the same?
Thanks for reporting. I need to investigate. It will take one or two weeks before I can get to that.
@mprather There is indeed a problem where the 4.8 header is not installed. In #123 I have a tentative solution that explicitly installs the header.
I'm not sure this will address the downstream problems in the vcpkg package, so for now I will leave this open even after #123 is merged.
@biojppm thanks for the update. I will follow up with the vcpkg team to get the packaging issues sorted.
Is there a plan in the near term to roll the version number? There are quite a few changes, including this one, since the 0.1.11 release.
Thanks for reminding me. I've been working on a major feature for rapidyaml and this got somewhat deprioritised. I'll enable to make a release soon.
Thanks for reminding me. I've been working on a major feature for rapidyaml and this got somewhat deprioritised. I'll endeavour to make a release soon.
@biojppm i am just touching base. I noticed some releases with the ryml and c4core repos in the past couple of months. However, it seems that ryml is using an interim commit between v 0.2.1 and current. is that intended?