Tan Meng Yue | f20888a | 2018-12-05 23:55:53 +1100 | [diff] [blame] | 1 | cmake_minimum_required(VERSION 3.6) |
| 2 | |
Bryn Lloyd | 85b4322 | 2023-06-21 18:26:43 +0200 | [diff] [blame] | 3 | project(tinygltf) |
Tan Meng Yue | f20888a | 2018-12-05 23:55:53 +1100 | [diff] [blame] | 4 | |
James Luke | 3800303 | 2022-12-27 21:12:54 -0500 | [diff] [blame] | 5 | include(GNUInstallDirs) |
| 6 | include(CMakePackageConfigHelpers) |
| 7 | |
Bryn Lloyd | 85b4322 | 2023-06-21 18:26:43 +0200 | [diff] [blame] | 8 | set(CMAKE_CXX_STANDARD 11) |
| 9 | set(CMAKE_CXX_STANDARD_REQUIRED On) |
| 10 | set(CMAKE_CXX_EXTENSIONS Off) |
| 11 | set(CMAKE_EXPORT_COMPILE_COMMANDS ON) |
Tan Meng Yue | f20888a | 2018-12-05 23:55:53 +1100 | [diff] [blame] | 12 | |
syoyo | 001c870 | 2020-12-18 01:09:44 +0900 | [diff] [blame] | 13 | option(TINYGLTF_BUILD_LOADER_EXAMPLE "Build loader_example(load glTF and dump infos)" ON) |
Syoyo Fujita | 2e70067 | 2020-05-30 02:27:25 +0900 | [diff] [blame] | 14 | option(TINYGLTF_BUILD_GL_EXAMPLES "Build GL exampels(requires glfw, OpenGL, etc)" OFF) |
| 15 | option(TINYGLTF_BUILD_VALIDATOR_EXAMPLE "Build validator exampe" OFF) |
Syoyo Fujita | 58ceed1 | 2021-02-26 18:34:00 +0900 | [diff] [blame] | 16 | option(TINYGLTF_BUILD_BUILDER_EXAMPLE "Build glTF builder example" OFF) |
syoyo | 001c870 | 2020-12-18 01:09:44 +0900 | [diff] [blame] | 17 | option(TINYGLTF_HEADER_ONLY "On: header-only mode. Off: create tinygltf library(No TINYGLTF_IMPLEMENTATION required in your project)" OFF) |
| 18 | option(TINYGLTF_INSTALL "Install tinygltf files during install step. Usually set to OFF if you include tinygltf through add_subdirectory()" ON) |
Tan Meng Yue | f20888a | 2018-12-05 23:55:53 +1100 | [diff] [blame] | 19 | |
Syoyo Fujita | 2e70067 | 2020-05-30 02:27:25 +0900 | [diff] [blame] | 20 | if (TINYGLTF_BUILD_LOADER_EXAMPLE) |
Bryn Lloyd | 85b4322 | 2023-06-21 18:26:43 +0200 | [diff] [blame] | 21 | add_executable(loader_example |
Syoyo Fujita | 4191627 | 2019-10-31 01:55:57 +0900 | [diff] [blame] | 22 | loader_example.cc |
| 23 | ) |
Syoyo Fujita | 2e70067 | 2020-05-30 02:27:25 +0900 | [diff] [blame] | 24 | endif (TINYGLTF_BUILD_LOADER_EXAMPLE) |
Tan Meng Yue | 94fcfde | 2018-12-07 18:01:08 +1100 | [diff] [blame] | 25 | |
Syoyo Fujita | 2e70067 | 2020-05-30 02:27:25 +0900 | [diff] [blame] | 26 | if (TINYGLTF_BUILD_GL_EXAMPLES) |
Bryn Lloyd | 85b4322 | 2023-06-21 18:26:43 +0200 | [diff] [blame] | 27 | add_subdirectory( examples/gltfutil ) |
| 28 | add_subdirectory( examples/glview ) |
Syoyo Fujita | 2e70067 | 2020-05-30 02:27:25 +0900 | [diff] [blame] | 29 | endif (TINYGLTF_BUILD_GL_EXAMPLES) |
Syoyo Fujita | 4191627 | 2019-10-31 01:55:57 +0900 | [diff] [blame] | 30 | |
Syoyo Fujita | 2e70067 | 2020-05-30 02:27:25 +0900 | [diff] [blame] | 31 | if (TINYGLTF_BUILD_VALIDATOR_EXAMPLE) |
Bryn Lloyd | 85b4322 | 2023-06-21 18:26:43 +0200 | [diff] [blame] | 32 | add_subdirectory( examples/validator ) |
Syoyo Fujita | 2e70067 | 2020-05-30 02:27:25 +0900 | [diff] [blame] | 33 | endif (TINYGLTF_BUILD_VALIDATOR_EXAMPLE) |
syoyo | 001c870 | 2020-12-18 01:09:44 +0900 | [diff] [blame] | 34 | |
Syoyo Fujita | 58ceed1 | 2021-02-26 18:34:00 +0900 | [diff] [blame] | 35 | if (TINYGLTF_BUILD_BUILDER_EXAMPLE) |
Bryn Lloyd | 85b4322 | 2023-06-21 18:26:43 +0200 | [diff] [blame] | 36 | add_subdirectory ( examples/build-gltf ) |
Syoyo Fujita | 58ceed1 | 2021-02-26 18:34:00 +0900 | [diff] [blame] | 37 | endif (TINYGLTF_BUILD_BUILDER_EXAMPLE) |
| 38 | |
Syoyo Fujita | 4191627 | 2019-10-31 01:55:57 +0900 | [diff] [blame] | 39 | # |
syoyo | 001c870 | 2020-12-18 01:09:44 +0900 | [diff] [blame] | 40 | # for add_subdirectory and standalone build |
Syoyo Fujita | 4191627 | 2019-10-31 01:55:57 +0900 | [diff] [blame] | 41 | # |
syoyo | 001c870 | 2020-12-18 01:09:44 +0900 | [diff] [blame] | 42 | if (TINYGLTF_HEADER_ONLY) |
| 43 | add_library(tinygltf INTERFACE) |
Syoyo Fujita | f3dc4ac | 2021-07-03 22:01:46 +0900 | [diff] [blame] | 44 | |
syoyo | 001c870 | 2020-12-18 01:09:44 +0900 | [diff] [blame] | 45 | target_include_directories(tinygltf |
| 46 | INTERFACE |
| 47 | $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}> |
| 48 | $<INSTALL_INTERFACE:${CMAKE_INSTALL_INCLUDEDIR}> |
Tan Meng Yue | 94fcfde | 2018-12-07 18:01:08 +1100 | [diff] [blame] | 49 | ) |
Tan Meng Yue | 2123da7 | 2018-12-07 20:45:13 +1100 | [diff] [blame] | 50 | |
syoyo | 001c870 | 2020-12-18 01:09:44 +0900 | [diff] [blame] | 51 | else (TINYGLTF_HEADER_ONLY) |
| 52 | add_library(tinygltf) |
| 53 | target_sources(tinygltf PRIVATE |
| 54 | ${CMAKE_CURRENT_SOURCE_DIR}/tiny_gltf.cc) |
| 55 | target_include_directories(tinygltf |
| 56 | INTERFACE |
| 57 | $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}> |
| 58 | $<INSTALL_INTERFACE:${CMAKE_INSTALL_INCLUDEDIR}> |
| 59 | ) |
| 60 | endif (TINYGLTF_HEADER_ONLY) |
| 61 | |
| 62 | if (TINYGLTF_INSTALL) |
James Luke | 3800303 | 2022-12-27 21:12:54 -0500 | [diff] [blame] | 63 | install(TARGETS tinygltf EXPORT tinygltfTargets) |
| 64 | install(EXPORT tinygltfTargets NAMESPACE tinygltf:: FILE TinyGLTFTargets.cmake DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake) |
| 65 | configure_package_config_file(${CMAKE_CURRENT_SOURCE_DIR}/cmake/TinyGLTFConfig.cmake.in ${CMAKE_CURRENT_BINARY_DIR}/TinyGLTFConfig.cmake INSTALL_DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake) |
| 66 | install(FILES ${CMAKE_CURRENT_BINARY_DIR}/TinyGLTFConfig.cmake DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake) |
syoyo | 001c870 | 2020-12-18 01:09:44 +0900 | [diff] [blame] | 67 | # Do not install .lib even if !TINYGLTF_HEADER_ONLY |
| 68 | |
| 69 | INSTALL ( FILES |
| 70 | json.hpp |
| 71 | stb_image.h |
| 72 | stb_image_write.h |
| 73 | tiny_gltf.h |
| 74 | ${TINYGLTF_EXTRA_SOUECES} |
| 75 | DESTINATION |
| 76 | include |
| 77 | ) |
Syoyo Fujita | f3dc4ac | 2021-07-03 22:01:46 +0900 | [diff] [blame] | 78 | |
syoyo | 001c870 | 2020-12-18 01:09:44 +0900 | [diff] [blame] | 79 | endif(TINYGLTF_INSTALL) |