I'm trying to get daw_json_link into vcpkg to make it easier to use. See microsoft/vcpkg#18411
If you are not familiar with vcpkg, it makes it almost rust-simple to include dependencies in your CMake build (you need to have a manifest file holding your program's dependencies and use the vcpkg build tooling) but it does have some quirks. One of the quirks is that the port names must be lower case and cannot have underscores. Another is that when trying your best to build across multiple architectures, you sometimes run into incompatibilities that you don't expect.
So, the first change is the name of the package you use with CMake's find_package(). They are changed to daw::daw-header-libraries, daw::daw-utf-range, and daw::daw-json-link. I think I could have kept the same CMake package names but this was easier (because of some vcpkg-related automated CMake package fixup). Plus this style is more expected for vcpkg ports ;-)
The way vpkg builds work, I had to actually make 3 ports, daw-header-libraries, daw-utf-range, and daw-json-link with the proper dependencies...The vcpkg automated build system didn't like CMake's FetchContent_Declare() on, I think, Linux. So, I patched those calls out of the build and used vcpkg's dependency mechanism to get the same results.
The last issues I ran into was that utf_range includes source from the same place as the vcpkg utfcpp port. To ameliorate any conflicts that could arise from somebody wanting both daw-json-link and utfcpp, I moved the utf8 namespace daw_json_link uses under daw::utf8 and also moved the files under the include/daw directory.
Vcpkg doesn't have dragonbox yet so I left that as it was but perhaps I shouldn't have...
You can take a look at the patch files in the 3 port directories I linked in this message to see the changes.
Thanks for a stellar JSON library - I cannot wait to see what you do with reflection :-)
I'm trying to get daw_json_link into vcpkg to make it easier to use. See microsoft/vcpkg#18411
If you are not familiar with vcpkg, it makes it almost rust-simple to include dependencies in your CMake build (you need to have a manifest file holding your program's dependencies and use the vcpkg build tooling) but it does have some quirks. One of the quirks is that the port names must be lower case and cannot have underscores. Another is that when trying your best to build across multiple architectures, you sometimes run into incompatibilities that you don't expect.
So, the first change is the name of the package you use with CMake's
find_package(). They are changed todaw::daw-header-libraries,daw::daw-utf-range, anddaw::daw-json-link. I think I could have kept the same CMake package names but this was easier (because of some vcpkg-related automated CMake package fixup). Plus this style is more expected for vcpkg ports ;-)The way vpkg builds work, I had to actually make 3 ports, daw-header-libraries, daw-utf-range, and daw-json-link with the proper dependencies...The vcpkg automated build system didn't like CMake's
FetchContent_Declare()on, I think, Linux. So, I patched those calls out of the build and used vcpkg's dependency mechanism to get the same results.The last issues I ran into was that utf_range includes source from the same place as the vcpkg utfcpp port. To ameliorate any conflicts that could arise from somebody wanting both daw-json-link and utfcpp, I moved the
utf8namespace daw_json_link uses underdaw::utf8and also moved the files under theinclude/dawdirectory.Vcpkg doesn't have dragonbox yet so I left that as it was but perhaps I shouldn't have...
You can take a look at the patch files in the 3 port directories I linked in this message to see the changes.
Thanks for a stellar JSON library - I cannot wait to see what you do with reflection :-)