diff options
author | Tor Lillqvist <tml@collabora.com> | 2014-05-06 18:44:03 +0300 |
---|---|---|
committer | Tor Lillqvist <tml@collabora.com> | 2014-05-06 18:55:13 +0300 |
commit | 8c51ef52e26766949a4eae57b8e3054f242da7f6 (patch) | |
tree | 3217925796c7b6ad41aa529e316a19c7f3bbd5c3 /external/libgltf | |
parent | Fix indentation (diff) | |
download | core-8c51ef52e26766949a4eae57b8e3054f242da7f6.tar.gz core-8c51ef52e26766949a4eae57b8e3054f242da7f6.zip |
Don't use extern "C" for a function which return C++ types
Fix error: 'gltf_get_model_center_pos' has C-linkage specified, but returns
user-defined type 'glm::vec3' (aka 'tvec3<mediump_float>') which is
incompatible with C.
I don't really understand the reason for the extern "C" use in
libgltf.h. After all, the header clearly is intended to be included from C++
code (after all, the use of 'extern "C"' is unconditional and it is not valid
in C), and the implementation of the functions is in C++. Also, we build
libgltf as a static library, so it can't be the case that we would need to
look up its symbols dynamically (when unmangled names would be better). But
maybe I am missing something.
Change-Id: I19f025610301f8c535178a83f4ab2e58455bad57
Diffstat (limited to 'external/libgltf')
-rw-r--r-- | external/libgltf/UnpackedTarball_libgltf.mk | 1 | ||||
-rw-r--r-- | external/libgltf/patches/extern-C.patch | 10 |
2 files changed, 11 insertions, 0 deletions
diff --git a/external/libgltf/UnpackedTarball_libgltf.mk b/external/libgltf/UnpackedTarball_libgltf.mk index 7b4c51923897..bd2ee0bdd1d4 100644 --- a/external/libgltf/UnpackedTarball_libgltf.mk +++ b/external/libgltf/UnpackedTarball_libgltf.mk @@ -27,6 +27,7 @@ $(eval $(call gb_UnpackedTarball_add_patches,libgltf,\ external/libgltf/patches/get_bitmap_new_syntax.patch \ external/libgltf/patches/remove_extra_include.patch \ external/libgltf/patches/fmod_error_handling.patch \ + external/libgltf/patches/extern-C.patch \ )) # vim: set noet sw=4 ts=4: diff --git a/external/libgltf/patches/extern-C.patch b/external/libgltf/patches/extern-C.patch new file mode 100644 index 000000000000..fd34f8a815f7 --- /dev/null +++ b/external/libgltf/patches/extern-C.patch @@ -0,0 +1,10 @@ +--- libgltf/inc/libgltf.h ++++ libgltf/inc/libgltf.h +@@ -48,7 +48,6 @@ + void gltf_get_camera_pos(glm::vec3 *pos,glm::vec3 *view,glm::vec3 *up);
+
+ /*get model center position information*/
+-extern "C"
+ glm::vec3 gltf_get_model_center_pos();
+ /*get camera position information*/
+ extern "C"
|