mirror of
https://gitlab.alpinelinux.org/alpine/aports.git
synced 2025-04-12 17:16:44 +02:00
149 lines
5 KiB
Diff
149 lines
5 KiB
Diff
From: =?utf-8?q?Timo_R=C3=B6hling?= <timo.roehling@fkie.fraunhofer.de>
|
|
Date: Tue, 31 Mar 2020 17:05:46 +0200
|
|
Subject: Fix build system
|
|
|
|
Forwarded: not-needed
|
|
---
|
|
CMakeLists.txt | 94 ++++++++++++++++++++-----------------------
|
|
cmake/TinyGLTFConfig.cmake.in | 8 +++-
|
|
tiny_gltf.cpp | 3 ++
|
|
3 files changed, 53 insertions(+), 52 deletions(-)
|
|
create mode 100644 tiny_gltf.cpp
|
|
|
|
diff --git a/CMakeLists.txt b/CMakeLists.txt
|
|
index 4301fd1..34778cf 100644
|
|
--- a/CMakeLists.txt
|
|
+++ b/CMakeLists.txt
|
|
@@ -1,14 +1,12 @@
|
|
cmake_minimum_required(VERSION 3.6)
|
|
|
|
-project(tinygltf)
|
|
+project(TinyGLTF VERSION ${TINYGLTF_VERSION} LANGUAGES CXX)
|
|
|
|
include(GNUInstallDirs)
|
|
include(CMakePackageConfigHelpers)
|
|
|
|
-set(CMAKE_CXX_STANDARD 11)
|
|
-set(CMAKE_CXX_STANDARD_REQUIRED On)
|
|
-set(CMAKE_CXX_EXTENSIONS Off)
|
|
-set(CMAKE_EXPORT_COMPILE_COMMANDS ON)
|
|
+find_package(nlohmann_json 3 REQUIRED)
|
|
+find_path(stb_INCLUDE_DIRS NAMES stb_image.h PATH_SUFFIXES stb)
|
|
|
|
option(TINYGLTF_BUILD_LOADER_EXAMPLE "Build loader_example(load glTF and dump infos)" ON)
|
|
option(TINYGLTF_BUILD_GL_EXAMPLES "Build GL exampels(requires glfw, OpenGL, etc)" OFF)
|
|
@@ -37,51 +36,44 @@ if (TINYGLTF_BUILD_BUILDER_EXAMPLE)
|
|
add_subdirectory ( examples/build-gltf )
|
|
endif (TINYGLTF_BUILD_BUILDER_EXAMPLE)
|
|
|
|
-#
|
|
-# for add_subdirectory and standalone build
|
|
-#
|
|
-if (TINYGLTF_HEADER_ONLY)
|
|
- add_library(tinygltf INTERFACE)
|
|
+add_library(${PROJECT_NAME} tiny_gltf.h tiny_gltf.cpp)
|
|
+target_include_directories(${PROJECT_NAME}
|
|
+ PUBLIC
|
|
+ $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}>
|
|
+ $<INSTALL_INTERFACE:${CMAKE_INSTALL_INCLUDEDIR}>
|
|
+ PRIVATE
|
|
+ ${stb_INCLUDE_DIRS}
|
|
+)
|
|
+target_link_libraries(${PROJECT_NAME} PRIVATE
|
|
+ ${stb_LIBRARY}
|
|
+ nlohmann_json::nlohmann_json
|
|
+)
|
|
+set_target_properties(${PROJECT_NAME} PROPERTIES
|
|
+ OUTPUT_NAME "tinygltf"
|
|
+ VERSION ${PROJECT_VERSION}
|
|
+ SOVERSION ${TINYGLTF_SOVERSION}
|
|
+)
|
|
+add_library(${PROJECT_NAME}::${PROJECT_NAME} ALIAS ${PROJECT_NAME})
|
|
|
|
- target_include_directories(tinygltf
|
|
- INTERFACE
|
|
- $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}>
|
|
- $<INSTALL_INTERFACE:${CMAKE_INSTALL_INCLUDEDIR}>
|
|
- )
|
|
+install(TARGETS ${PROJECT_NAME} EXPORT ${PROJECT_NAME}Targets
|
|
+ RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
|
|
+ ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}
|
|
+ LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
|
|
+)
|
|
+export(EXPORT ${PROJECT_NAME}Targets NAMESPACE ${PROJECT_NAME}::)
|
|
+install(EXPORT ${PROJECT_NAME}Targets NAMESPACE ${PROJECT_NAME}::
|
|
+ DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/${PROJECT_NAME}
|
|
+)
|
|
+install(FILES tiny_gltf.h DESTINATION ${CMAKE_INSTALL_INCLUDEDIR})
|
|
|
|
-else (TINYGLTF_HEADER_ONLY)
|
|
- add_library(tinygltf)
|
|
- target_sources(tinygltf PRIVATE
|
|
- ${CMAKE_CURRENT_SOURCE_DIR}/tiny_gltf.cc)
|
|
- target_include_directories(tinygltf
|
|
- INTERFACE
|
|
- $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}>
|
|
- $<INSTALL_INTERFACE:${CMAKE_INSTALL_INCLUDEDIR}>
|
|
- )
|
|
-endif (TINYGLTF_HEADER_ONLY)
|
|
-
|
|
-if (TINYGLTF_INSTALL)
|
|
- install(TARGETS tinygltf EXPORT tinygltfTargets)
|
|
- install(EXPORT tinygltfTargets NAMESPACE tinygltf:: FILE TinyGLTFTargets.cmake DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/tinygltf)
|
|
- configure_package_config_file(${CMAKE_CURRENT_SOURCE_DIR}/cmake/TinyGLTFConfig.cmake.in ${CMAKE_CURRENT_BINARY_DIR}/TinyGLTFConfig.cmake INSTALL_DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake)
|
|
- install(FILES ${CMAKE_CURRENT_BINARY_DIR}/TinyGLTFConfig.cmake DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/tinygltf)
|
|
- # Do not install .lib even if !TINYGLTF_HEADER_ONLY
|
|
-
|
|
- INSTALL ( FILES
|
|
- tiny_gltf.h
|
|
- ${TINYGLTF_EXTRA_SOUECES}
|
|
- DESTINATION
|
|
- include
|
|
- )
|
|
-
|
|
- if(TINYGLTF_INSTALL_VENDOR)
|
|
- INSTALL ( FILES
|
|
- json.hpp
|
|
- stb_image.h
|
|
- stb_image_write.h
|
|
- DESTINATION
|
|
- include
|
|
- )
|
|
- endif()
|
|
-
|
|
-endif(TINYGLTF_INSTALL)
|
|
+configure_package_config_file(cmake/${PROJECT_NAME}Config.cmake.in ${PROJECT_NAME}Config.cmake
|
|
+ INSTALL_DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/${PROJECT_NAME}
|
|
+ NO_CHECK_REQUIRED_COMPONENTS_MACRO
|
|
+ NO_SET_AND_CHECK_MACRO
|
|
+)
|
|
+write_basic_package_version_file(${PROJECT_NAME}ConfigVersion.cmake COMPATIBILITY SameMinorVersion)
|
|
+install(FILES
|
|
+ ${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_NAME}Config.cmake
|
|
+ ${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_NAME}ConfigVersion.cmake
|
|
+ DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/${PROJECT_NAME}
|
|
+)
|
|
diff --git a/cmake/TinyGLTFConfig.cmake.in b/cmake/TinyGLTFConfig.cmake.in
|
|
index fcccacf..89f21e4 100644
|
|
--- a/cmake/TinyGLTFConfig.cmake.in
|
|
+++ b/cmake/TinyGLTFConfig.cmake.in
|
|
@@ -1,3 +1,9 @@
|
|
@PACKAGE_INIT@
|
|
|
|
-include(${CMAKE_CURRENT_LIST_DIR}/TinyGLTFTargets.cmake)
|
|
+include(FindPackageHandleStandardArgs)
|
|
+
|
|
+include(${CMAKE_CURRENT_LIST_DIR}/@PROJECT_NAME@Targets.cmake)
|
|
+
|
|
+set(@PROJECT_NAME@_CONFIG ${CMAKE_CURRENT_LIST_FILE})
|
|
+find_package_handle_standard_args(@PROJECT_NAME@ CONFIG_MODE)
|
|
+
|
|
diff --git a/tiny_gltf.cpp b/tiny_gltf.cpp
|
|
new file mode 100644
|
|
index 0000000..43e41f4
|
|
--- /dev/null
|
|
+++ b/tiny_gltf.cpp
|
|
@@ -0,0 +1,3 @@
|
|
+#define TINYGLTF_IMPLEMENTATION
|
|
+#include "tiny_gltf.h"
|
|
+
|