Findassimp.cmake 3.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113
  1. if(CMAKE_SIZEOF_VOID_P EQUAL 8)
  2. set(ASSIMP_ARCHITECTURE "64")
  3. elseif(CMAKE_SIZEOF_VOID_P EQUAL 4)
  4. set(ASSIMP_ARCHITECTURE "32")
  5. endif(CMAKE_SIZEOF_VOID_P EQUAL 8)
  6. if(WIN32)
  7. set(ASSIMP_ROOT_DIR CACHE PATH "ASSIMP root directory")
  8. # Find path of each library
  9. find_path(ASSIMP_INCLUDE_DIR
  10. NAMES
  11. assimp/anim.h
  12. HINTS
  13. ${ASSIMP_ROOT_DIR}/include
  14. )
  15. if(MSVC12)
  16. set(ASSIMP_MSVC_VERSION "vc120")
  17. elseif(MSVC14)
  18. set(ASSIMP_MSVC_VERSION "vc140")
  19. endif(MSVC12)
  20. if(MSVC12 OR MSVC14)
  21. find_path(ASSIMP_LIBRARY_DIR
  22. NAMES
  23. assimp-${ASSIMP_MSVC_VERSION}-mt.lib
  24. HINTS
  25. ${ASSIMP_ROOT_DIR}/lib${ASSIMP_ARCHITECTURE}
  26. )
  27. find_library(ASSIMP_LIBRARY_RELEASE assimp-${ASSIMP_MSVC_VERSION}-mt.lib PATHS ${ASSIMP_LIBRARY_DIR})
  28. find_library(ASSIMP_LIBRARY_DEBUG assimp-${ASSIMP_MSVC_VERSION}-mtd.lib PATHS ${ASSIMP_LIBRARY_DIR})
  29. set(ASSIMP_LIBRARY
  30. optimized ${ASSIMP_LIBRARY_RELEASE}
  31. debug ${ASSIMP_LIBRARY_DEBUG}
  32. )
  33. set(ASSIMP_LIBRARIES "ASSIMP_LIBRARY_RELEASE" "ASSIMP_LIBRARY_DEBUG")
  34. FUNCTION(ASSIMP_COPY_BINARIES TargetDirectory)
  35. ADD_CUSTOM_TARGET(AssimpCopyBinaries
  36. COMMAND ${CMAKE_COMMAND} -E copy ${ASSIMP_ROOT_DIR}/bin${ASSIMP_ARCHITECTURE}/assimp-${ASSIMP_MSVC_VERSION}-mtd.dll ${TargetDirectory}/Debug/assimp-${ASSIMP_MSVC_VERSION}-mtd.dll
  37. COMMAND ${CMAKE_COMMAND} -E copy ${ASSIMP_ROOT_DIR}/bin${ASSIMP_ARCHITECTURE}/assimp-${ASSIMP_MSVC_VERSION}-mt.dll ${TargetDirectory}/Release/assimp-${ASSIMP_MSVC_VERSION}-mt.dll
  38. COMMENT "Copying Assimp binaries to '${TargetDirectory}'"
  39. VERBATIM)
  40. ENDFUNCTION(ASSIMP_COPY_BINARIES)
  41. if (NOT TARGET ASSIMP)
  42. set(INCLUDE_DIRS ${ASSIMP_ROOT_DIR}/include)
  43. find_library(ASSIMP_LIB_DEBUG
  44. NAMES assimp-${ASSIMP_MSVC_VERSION}-mtd.lib
  45. PATHS ${ASSIMP_LIBRARY_DIR})
  46. find_file(ASSIMP_DLL_DEBUG
  47. NAMES assimp-${ASSIMP_MSVC_VERSION}-mtd.dll
  48. PATHS ${ASSIMP_ROOT_DIR}/bin${ASSIMP_ARCHITECTURE})
  49. find_library(ASSIMP_LIB_RELEASE
  50. NAMES assimp-${ASSIMP_MSVC_VERSION}-mt.lib
  51. PATHS ${ASSIMP_LIBRARY_DIR})
  52. find_file(ASSIMP_DLL_RELEASE
  53. NAMES assimp-${ASSIMP_MSVC_VERSION}-mt.dll
  54. PATHS ${ASSIMP_ROOT_DIR}/bin${ASSIMP_ARCHITECTURE})
  55. add_library(ASSIMP SHARED IMPORTED)
  56. set_target_properties(ASSIMP PROPERTIES
  57. INTERFACE_INCLUDE_DIRECTORIES "${INCLUDE_DIRS}"
  58. IMPORTED_IMPLIB_DEBUG ${ASSIMP_LIB_DEBUG}
  59. IMPORTED_IMPLIB_RELEASE ${ASSIMP_LIB_RELEASE}
  60. IMPORTED_LOCATION_DEBUG ${ASSIMP_DLL_DEBUG}
  61. IMPORTED_LOCATION_RELEASE ${ASSIMP_DLL_RELEASE}
  62. )
  63. endif()
  64. endif()
  65. else(WIN32)
  66. find_path(
  67. assimp_INCLUDE_DIRS
  68. NAMES assimp/postprocess.h assimp/scene.h assimp/version.h assimp/config.h assimp/cimport.h
  69. PATHS /usr/local/include
  70. PATHS /usr/include/
  71. )
  72. find_library(
  73. assimp_LIBRARIES
  74. NAMES assimp
  75. PATHS /usr/local/lib/
  76. PATHS /usr/lib64/
  77. PATHS /usr/lib/
  78. )
  79. if (assimp_INCLUDE_DIRS AND assimp_LIBRARIES)
  80. SET(assimp_FOUND TRUE)
  81. ENDIF (assimp_INCLUDE_DIRS AND assimp_LIBRARIES)
  82. if (assimp_FOUND)
  83. if (NOT assimp_FIND_QUIETLY)
  84. message(STATUS "Found asset importer library: ${assimp_LIBRARIES}")
  85. endif (NOT assimp_FIND_QUIETLY)
  86. else (assimp_FOUND)
  87. if (assimp_FIND_REQUIRED)
  88. message(FATAL_ERROR "Could not find asset importer library")
  89. endif (assimp_FIND_REQUIRED)
  90. endif (assimp_FOUND)
  91. endif(WIN32)