You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
I'm working on Yocto project and it's easy for Yocto to switch build system for jansson. The version I use is 2.14.
Then I found that JSON_INTEGER_IS_LONG_LONG differs across different build systems (cmake v.s. autotools).
I can see that there are codes related to this, e.g., #ifndef JANSSON_USING_CMAKE /* disabled if using cmake */ #if JSON_INTEGER_IS_LONG_LONG #ifdef _WIN32 #define JSON_INTEGER_FORMAT "I64d" #else #define JSON_INTEGER_FORMAT "lld" #endif typedef long long json_int_t; #else #define JSON_INTEGER_FORMAT "ld" typedef long json_int_t; #endif /* JSON_INTEGER_IS_LONG_LONG */ #endif
But this macro is part of API. We can see this from the doc/apiref.rst.
So if this macro is part of API, then IMHO it should not differ merely because the build system changes.
There's a commit in master branch, 8b975ab (Use dtoa for double to string conversion), that adds JSON_INTEGER_IS_LONG_LONG for cmake. So after this commit, this macro start to become consistent across different build systems.
I have three questions (sorry if that's too many):
What's the maintenance attitude towards JSON_INTEGER_IS_LONG_LONG macro? Should it remains as part of API and keeps consistent across different build systems?
With 8b975ab, should we remove the above JASSON_USING_CMAKE code block?
There's 2.13 branch, but there's no 2.14 branch. Should we create 2.14 branch and extract part of 8b975ab (the JSON_INTEGER_IS_LONG_LONG part) and put it in the 2.14 branch?
The text was updated successfully, but these errors were encountered:
I'm working on Yocto project and it's easy for Yocto to switch build system for jansson. The version I use is 2.14.
Then I found that JSON_INTEGER_IS_LONG_LONG differs across different build systems (cmake v.s. autotools).
I can see that there are codes related to this, e.g.,
#ifndef JANSSON_USING_CMAKE /* disabled if using cmake */ #if JSON_INTEGER_IS_LONG_LONG #ifdef _WIN32 #define JSON_INTEGER_FORMAT "I64d" #else #define JSON_INTEGER_FORMAT "lld" #endif typedef long long json_int_t; #else #define JSON_INTEGER_FORMAT "ld" typedef long json_int_t; #endif /* JSON_INTEGER_IS_LONG_LONG */ #endif
But this macro is part of API. We can see this from the doc/apiref.rst.
So if this macro is part of API, then IMHO it should not differ merely because the build system changes.
There's a commit in master branch, 8b975ab (Use dtoa for double to string conversion), that adds JSON_INTEGER_IS_LONG_LONG for cmake. So after this commit, this macro start to become consistent across different build systems.
I have three questions (sorry if that's too many):
The text was updated successfully, but these errors were encountered: