-
Notifications
You must be signed in to change notification settings - Fork 136
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Provide an installable shared library #127
Comments
Like you're saying, that is something that is pretty easy to do. It mostly comes done to maintaining the build configurations for the different target platforms. What would your approach to that be? |
My approach would be to add a very basic Meson build file that can optionally be used by downstream projects (as a subproject) and distributions to use cgltf without having to copy-paste header files around. The Meson file could look like this: https://git.sr.ht/~emersion/cgltf/tree/master/meson.build (If you don't like Meson, could use something else.) |
Here is a simple CMakeLists I've written for conan package manager (with few modifications: conan-io/conan-center-index#4449). It assumes that Handles static/shared libs (through cmake_minimum_required(VERSION 3.4)
project(cgltf C)
add_library(${PROJECT_NAME} cgltf.c cgltf_write.c)
set_target_properties(${PROJECT_NAME}
PROPERTIES
C_STANDARD 99
WINDOWS_EXPORT_ALL_SYMBOLS ON
)
include(GNUInstallDirs)
install(
TARGETS ${PROJECT_NAME}
RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}
)
install(FILES cgltf.h cgltf_write.h DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}) With few more lines, it could install CMake config file with imported targets, and create a pkgconfig file. |
@jkuhlmann, what do you think? |
i would argue a simple bash script and batch script for windows would be the best option for a project this simple, this way no one needs to install any 3rd party tools just to get a header file in their /usr/include lol |
I understand that for some people a single-header "library" is easier to use, but for some use-cases a proper shared library would be better. Would this be something you'd like to consider?
I think it would basically boil down to a simple
.c
file withCGLTF_IMPLEMENTATION
defined compiled to a shared library.I'm willing to contribute and maintain the shared library, if that helps.
The text was updated successfully, but these errors were encountered: