From a13a67c2507d18ae9cbf69a72d3d5d7dce6919e9 Mon Sep 17 00:00:00 2001 From: beaglejoe Date: Tue, 4 Apr 2023 15:15:42 +0000 Subject: [PATCH] Find TinyGLTF on Windows git-svn-id: https://svn.code.sf.net/p/speed-dreams/code/trunk@8865 30fe4595-0a0c-4342-8851-515496e4dcbd --- cmake/FindTinyGLTF.cmake | 22 ++++++++++++++++++++++ cmake/checks.cmake | 20 ++++++++++++++++++++ cmake/customthirdparty.cmake | 6 ++++++ cmake/thirdpartydeps.cmake | 10 +++++----- 4 files changed, 53 insertions(+), 5 deletions(-) create mode 100644 cmake/FindTinyGLTF.cmake diff --git a/cmake/FindTinyGLTF.cmake b/cmake/FindTinyGLTF.cmake new file mode 100644 index 000000000..f04eaa448 --- /dev/null +++ b/cmake/FindTinyGLTF.cmake @@ -0,0 +1,22 @@ +# Locate TinyGLTF (optionally header-only) library +# This module defines +# TINYGLTF_FOUND : +# TINYGLTF_INCLUDE_DIR : where to find the headers +# Created by Joe Thompson + +find_path(TINYGLTF_INCLUDE_DIR tiny_gltf.h) + +find_library(TINYGLTF_LIBRARY NAMES tinygltf) + +# handle the QUIETLY and REQUIRED arguments and set TINYGLTF_FOUND to TRUE if +# all listed variables are TRUE +include(FindPackageHandleStandardArgs) +FIND_PACKAGE_HANDLE_STANDARD_ARGS(TinyGLTF DEFAULT_MSG TINYGLTF_LIBRARY TINYGLTF_INCLUDE_DIR) + +#if(TINYGLTF_FOUND) +set(TINYGLTF_LIBRARIES ${TINYGLTF_LIBRARY}) +#endif() +# Set the old TINYGLTF_INCLUDE_DIRS variable for backwards compatibility +set(TINYGLTF_INCLUDE_DIRS ${TINYGLTF_INCLUDE_DIR}) + +mark_as_advanced(TINYGLTF_LIBRARY TINYGLTF_INCLUDE_DIR) diff --git a/cmake/checks.cmake b/cmake/checks.cmake index be3b2e16f..6287c04bf 100644 --- a/cmake/checks.cmake +++ b/cmake/checks.cmake @@ -343,5 +343,25 @@ MACRO(CHECK_LIBRARIES) ENDIF(OPTION_3RDPARTY_SQLITE3) + # GLM + Find_Package(GLM) + + IF(GLM_FOUND) + SET(HAVE_GLM 1) + MESSAGE(STATUS "Looking for library GLM - found") + ELSE(GLM_FOUND) + MESSAGE(STATUS "Looking for library GLM - NOT found") + ENDIF(GLM_FOUND) + + # TinyGLTF + Find_Package(TinyGLTF) + + IF(TINYGLTF_FOUND) + SET(HAVE_TINYGLTF 1) + MESSAGE(STATUS "Looking for library TinyGLTF - found") + ELSE(TINYGLTF_FOUND) + MESSAGE(STATUS "Looking for library TinyGLTF - NOT found") + ENDIF(TINYGLTF_FOUND) + ENDMACRO(CHECK_LIBRARIES) diff --git a/cmake/customthirdparty.cmake b/cmake/customthirdparty.cmake index 069e80360..75dcad01d 100644 --- a/cmake/customthirdparty.cmake +++ b/cmake/customthirdparty.cmake @@ -214,6 +214,9 @@ MACRO(SD_FIND_CUSTOM_3RDPARTY) SET(SDEXT_CUSTOM_3DPARTY_DIR "${PARENT_DIR}/3rdparty" CACHE PATH "Location of 3rdParty dependencies") IF(EXISTS ${SDEXT_CUSTOM_3DPARTY_DIR}) + LIST(PREPEND CMAKE_PREFIX_PATH ${SDEXT_CUSTOM_3DPARTY_DIR}) + #MESSAGE(STATUS "SDEXT_CUSTOM_3DPARTY_DIR : ${SDEXT_CUSTOM_3DPARTY_DIR}") + #MESSAGE(STATUS "CMAKE_PREFIX_PATH : ${CMAKE_PREFIX_PATH}") _FIND_3RDPARTY_DEPENDENCIES(${SDEXT_CUSTOM_3DPARTY_DIR}) ELSE(EXISTS ${SDEXT_CUSTOM_3DPARTY_DIR}) MESSAGE(STATUS "... but it doesn't exist : ${SDEXT_CUSTOM_3DPARTY_DIR}") @@ -382,6 +385,9 @@ MACRO(SD_INSTALL_CUSTOM_3RDPARTY TARGET_NAME) _FIND_3RDPARTY_DLL("${CURL_LIBRARY}" "curl" "lib" _DLL_PATHNAME) LIST(APPEND _THIRDPARTY_DLL_PATHNAMES "${_DLL_PATHNAME}") + _FIND_3RDPARTY_DLL("${TINYGLTF_LIBRARY}" "tinygltf" "lib" _DLL_PATHNAME) + LIST(APPEND _THIRDPARTY_DLL_PATHNAMES "${_DLL_PATHNAME}") + # 2) Copy found 3rd party DLL files to the bin folder (for running without installing). #MESSAGE(STATUS "3rdParty dependencies : Will install ${_THIRDPARTY_DLL_PATHNAMES}") SET(_NOINST_DIR "${CMAKE_BINARY_DIR}/${SD_BINDIR}") diff --git a/cmake/thirdpartydeps.cmake b/cmake/thirdpartydeps.cmake index 37c292f75..6bbb3e7f6 100644 --- a/cmake/thirdpartydeps.cmake +++ b/cmake/thirdpartydeps.cmake @@ -129,7 +129,7 @@ ENDMACRO(ADD_OSG_LIBRARY TARGET) MACRO(ADD_TINYGLTF_INCLUDEDIR) - IF(OPTION_3RDPARTY_TINYGLTF) + IF(OPTION_TINYGLTF) FIND_PACKAGE(TINYGLTF) @@ -139,23 +139,23 @@ MACRO(ADD_TINYGLTF_INCLUDEDIR) MESSAGE(FATAL_ERROR "Cannot find tinygltf header files") ENDIF(TINYGLTF_FOUND) - ENDIF(OPTION_3RDPARTY_TINYGLTF) + ENDIF(OPTION_TINYGLTF) ENDMACRO(ADD_TINYGLTF_INCLUDEDIR) MACRO(ADD_TINYGLTF_LIBRARY TARGET) - IF(OPTION_3RDPARTY_TINYGLTF) + IF(OPTION_TINYGLTF) FIND_PACKAGE(TINYGLTF) IF(TINYGLTF_FOUND) TARGET_LINK_LIBRARIES(${TARGET} ${TINYGLTF_LIBRARY}) ELSE(TINYGLTF_FOUND) - MESSAGE(FATAL_ERROR "Cannot find tinygltf libraries") + MESSAGE(WARNING "Cannot find tinygltf libraries") ENDIF(TINYGLTF_FOUND) - ENDIF(OPTION_3RDPARTY_TINYGLTF) + ENDIF(OPTION_TINYGLTF) ENDMACRO(ADD_TINYGLTF_LIBRARY TARGET)