FindFCollada.cmake 2.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788
  1. # Filename: FindFCollada.cmake
  2. # Author: CFSworks (17 Mar, 2019)
  3. #
  4. # Usage:
  5. # find_package(FCollada [REQUIRED] [QUIET])
  6. #
  7. # Once done this will define:
  8. # FCOLLADA_FOUND - system has FCollada
  9. # FCOLLADA_INCLUDE_DIR - the FCollada include directory
  10. #
  11. # FCOLLADA_RELEASE_LIBRARY - the filepath of the FCollada release library
  12. # FCOLLADA_DEBUG_LIBRARY - the filepath of the FCollada debug library
  13. #
  14. # FCollada::FCollada - The recommended FCollada library to link against
  15. #
  16. # Find the FCollada include files
  17. find_path(FCOLLADA_INCLUDE_DIR "FCollada.h" PATH_SUFFIXES "FCollada")
  18. # Find the library built for release
  19. find_library(FCOLLADA_RELEASE_LIBRARY
  20. NAMES "FCollada" "libFCollada"
  21. "FColladaS" "libFColladaS"
  22. "FColladaU" "libFColladaU"
  23. "FColladaSU" "libFColladaSU"
  24. )
  25. # Find the library built for debug
  26. find_library(FCOLLADA_DEBUG_LIBRARY
  27. NAMES "FColladaD" "libFColladaD"
  28. "FColladaSD" "libFColladaSD"
  29. "FColladaUD" "libFColladaUD"
  30. "FColladaSUD" "libFColladaSUD"
  31. )
  32. mark_as_advanced(FCOLLADA_INCLUDE_DIR)
  33. mark_as_advanced(FCOLLADA_RELEASE_LIBRARY)
  34. mark_as_advanced(FCOLLADA_DEBUG_LIBRARY)
  35. set(_defines)
  36. if(FCOLLADA_RELEASE_LIBRARY MATCHES "FCollada[^/]*U" OR
  37. FCOLLADA_DEBUG_LIBRARY MATCHES "FCollada[^/]*U")
  38. list(APPEND _defines "UNICODE")
  39. endif()
  40. if(NOT MSVC AND
  41. NOT FCOLLADA_RELEASE_LIBRARY MATCHES "FCollada[^/]*S" AND
  42. NOT FCOLLADA_DEBUG_LIBRARY MATCHES "FCollada[^/]*S")
  43. list(APPEND _defines "FCOLLADA_DLL")
  44. endif()
  45. # Identify the configs which we have available
  46. set(_configs)
  47. if(FCOLLADA_INCLUDE_DIR)
  48. if(FCOLLADA_RELEASE_LIBRARY)
  49. list(APPEND _configs RELEASE)
  50. endif()
  51. if(FCOLLADA_DEBUG_LIBRARY)
  52. list(APPEND _configs DEBUG)
  53. endif()
  54. if(_configs)
  55. set(_HAS_FCOLLADA_LIBRARY ON)
  56. add_library(FCollada::FCollada UNKNOWN IMPORTED GLOBAL)
  57. set_target_properties(FCollada::FCollada PROPERTIES
  58. INTERFACE_COMPILE_DEFINITIONS "${_defines}"
  59. INTERFACE_INCLUDE_DIRECTORIES "${FCOLLADA_INCLUDE_DIR}")
  60. endif()
  61. endif()
  62. foreach(_config ${_configs})
  63. set_property(TARGET FCollada::FCollada
  64. APPEND PROPERTY IMPORTED_CONFIGURATIONS "${_config}")
  65. set_target_properties(FCollada::FCollada PROPERTIES
  66. IMPORTED_LOCATION_${_config} "${FCOLLADA_${_config}_LIBRARY}")
  67. endforeach(_config)
  68. unset(_config)
  69. unset(_configs)
  70. unset(_defines)
  71. include(FindPackageHandleStandardArgs)
  72. find_package_handle_standard_args(FCollada DEFAULT_MSG FCOLLADA_INCLUDE_DIR _HAS_FCOLLADA_LIBRARY)
  73. unset(_HAS_FCOLLADA_LIBRARY)