From 1f33a1b1b5c6e59ce63832899cdd6215a8c3adc5 Mon Sep 17 00:00:00 2001 From: Rahul Sheth Date: Thu, 8 Oct 2020 13:01:26 -0400 Subject: [PATCH 1/2] Initial Hunterization --- CMakeLists.txt | 82 +++++++++++++++++++++++++++++++++++++++++++ cgltf.c | 3 ++ cmake/Config.cmake.in | 16 +++++++++ 3 files changed, 101 insertions(+) create mode 100644 CMakeLists.txt create mode 100644 cgltf.c create mode 100644 cmake/Config.cmake.in diff --git a/CMakeLists.txt b/CMakeLists.txt new file mode 100644 index 0000000..5308e67 --- /dev/null +++ b/CMakeLists.txt @@ -0,0 +1,82 @@ +cmake_minimum_required(VERSION 3.0) + +project(cgltf LANGUAGES C CXX VERSION 1.7) + +# Introduce variables: +# * CMAKE_INSTALL_LIBDIR +# * CMAKE_INSTALL_BINDIR +# * CMAKE_INSTALL_INCLUDEDIR +include(GNUInstallDirs) + +option(BUILD_AS_LIBRARY "Build library" FALSE) +option(BUILD_SHARED_LIBS "Build shared libraries" FALSE) +option(BUILD_TESTS "Build tests" FALSE) + +if(MSVC AND BUILD_SHARED_LIBS) + set(CMAKE_WINDOWS_EXPORT_ALL_SYMBOLS TRUE) +endif() + +set(CGLTF_SRC_LIST cgltf.c) +set(CGLTF_HDR_LIST cgltf.h cgltf_write.h) +if(BUILD_AS_LIBRARY) + if(BUILD_SHARED_LIBS) + add_library(cgltf SHARED ${CGLTF_SRC_LIST} ${CGLTF_HDR_LIST}) + else() + add_library(cgltf STATIC ${CGLTF_SRC_LIST} ${CGLTF_HDR_LIST}) + endif() +else() + add_library(cgltf INTERFACE) +endif() +target_include_directories(cgltf INTERFACE + $ + $ +) + +if(BUILD_TESTS) + add_subdirectory(test) +endif() + +set(GENERATED_DIR "${CMAKE_CURRENT_BINARY_DIR}/generated") +set(VERSION_CONFIG "${GENERATED_DIR}/${PROJECT_NAME}ConfigVersion.cmake") +set(PROJECT_CONFIG "${GENERATED_DIR}/${PROJECT_NAME}Config.cmake") + +set(CONFIG_INSTALL_DIR "${CMAKE_INSTALL_LIBDIR}/cmake/${PROJECT_NAME}") + +set(TARGETS_EXPORT_NAME "${PROJECT_NAME}Targets") +set(NAMESPACE "${PROJECT_NAME}::") + +include(CMakePackageConfigHelpers) +write_basic_package_version_file( + "${VERSION_CONFIG}" COMPATIBILITY ExactVersion +) + +configure_package_config_file( + "cmake/Config.cmake.in" + "${PROJECT_CONFIG}" + INSTALL_DESTINATION "${CONFIG_INSTALL_DIR}" +) + +install( + TARGETS cgltf + EXPORT "${TARGETS_EXPORT_NAME}" + INCLUDES DESTINATION "${CMAKE_INSTALL_INCLUDEDIR}" + RUNTIME DESTINATION "${CMAKE_INSTALL_BINDIR}" + LIBRARY DESTINATION "${CMAKE_INSTALL_LIBDIR}" + ARCHIVE DESTINATION "${CMAKE_INSTALL_LIBDIR}" +) + +install( + FILES ${CGLTF_HDR_LIST} + DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/${PROJECT_NAME} +) + +install( + FILES "${PROJECT_CONFIG}" "${VERSION_CONFIG}" + DESTINATION "${CONFIG_INSTALL_DIR}" +) + +install( + EXPORT "${TARGETS_EXPORT_NAME}" + NAMESPACE "${NAMESPACE}" + DESTINATION "${CONFIG_INSTALL_DIR}" +) diff --git a/cgltf.c b/cgltf.c new file mode 100644 index 0000000..e1ec6ae --- /dev/null +++ b/cgltf.c @@ -0,0 +1,3 @@ +#define CGLTF_IMPLEMENTATION +#define CGLTF_WRITE_IMPLEMENTATION +#include "cgltf_write.h" diff --git a/cmake/Config.cmake.in b/cmake/Config.cmake.in new file mode 100644 index 0000000..84bc1ba --- /dev/null +++ b/cmake/Config.cmake.in @@ -0,0 +1,16 @@ +# Copyright (c) 2016, Ruslan Baratov +# +# Licensed under the MIT License (the "License"); you may not use this file except +# in compliance with the License. You may obtain a copy of the License at +# +# http://opensource.org/licenses/MIT +# +# Unless required by applicable law or agreed to in writing, software distributed +# under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR +# CONDITIONS OF ANY KIND, either express or implied. See the License for the +# specific language governing permissions and limitations under the License. + +@PACKAGE_INIT@ + +include("${CMAKE_CURRENT_LIST_DIR}/@TARGETS_EXPORT_NAME@.cmake") +check_required_components("@PROJECT_NAME@") \ No newline at end of file From fb9c030e95497f34b91d0506d7cb236e3d49325d Mon Sep 17 00:00:00 2001 From: Eli Semory Date: Tue, 30 Mar 2021 19:45:23 -0400 Subject: [PATCH 2/2] Add eol --- cmake/Config.cmake.in | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cmake/Config.cmake.in b/cmake/Config.cmake.in index 84bc1ba..cc15d72 100644 --- a/cmake/Config.cmake.in +++ b/cmake/Config.cmake.in @@ -13,4 +13,4 @@ @PACKAGE_INIT@ include("${CMAKE_CURRENT_LIST_DIR}/@TARGETS_EXPORT_NAME@.cmake") -check_required_components("@PROJECT_NAME@") \ No newline at end of file +check_required_components("@PROJECT_NAME@")