CMakeLists.txt 6.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178
  1. # Open Asset Import Library (assimp)
  2. # ----------------------------------------------------------------------
  3. # Copyright (c) 2006-2017, assimp team
  4. # All rights reserved.
  5. #
  6. # Redistribution and use of this software in source and binary forms,
  7. # with or without modification, are permitted provided that the
  8. # following conditions are met:
  9. #
  10. # * Redistributions of source code must retain the above
  11. # copyright notice, this list of conditions and the
  12. # following disclaimer.
  13. #
  14. # * Redistributions in binary form must reproduce the above
  15. # copyright notice, this list of conditions and the
  16. # following disclaimer in the documentation and/or other
  17. # materials provided with the distribution.
  18. #
  19. # * Neither the name of the assimp team, nor the names of its
  20. # contributors may be used to endorse or promote products
  21. # derived from this software without specific prior
  22. # written permission of the assimp team.
  23. #
  24. # THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
  25. # "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
  26. # LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
  27. # A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
  28. # OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
  29. # SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
  30. # LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
  31. # DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
  32. # THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
  33. # (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
  34. # OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  35. #----------------------------------------------------------------------
  36. # Modified by Yao Wei Tjong for Urho3D
  37. PROJECT( Assimp )
  38. # Urho3D - only keep options that are relevant for building Assimp as static dependency lib for AssetImporter
  39. # All supported options ###############################################
  40. OPTION( ASSIMP_DOUBLE_PRECISION
  41. "Set to ON to enable double precision processing"
  42. OFF
  43. )
  44. OPTION( ASSIMP_NO_EXPORT
  45. "Disable Assimp's export functionality."
  46. OFF
  47. )
  48. if (WIN32)
  49. ADD_DEFINITIONS( -DWIN32_LEAN_AND_MEAN )
  50. endif()
  51. # Define here the needed parameters
  52. SET (ASSIMP_VERSION_MAJOR 4)
  53. SET (ASSIMP_VERSION_MINOR 1)
  54. SET (ASSIMP_VERSION_PATCH 0)
  55. SET (ASSIMP_VERSION ${ASSIMP_VERSION_MAJOR}.${ASSIMP_VERSION_MINOR}.${ASSIMP_VERSION_PATCH})
  56. SET (ASSIMP_SOVERSION 4)
  57. SET (PROJECT_VERSION "${ASSIMP_VERSION}")
  58. SET( ASSIMP_PACKAGE_VERSION "0" CACHE STRING "the package-specific version used for uploading the sources" )
  59. # Needed for openddl_parser config, no use of c++11 at this moment
  60. ADD_DEFINITIONS( -DOPENDDL_NO_USE_CPP11 )
  61. # Get the current working branch
  62. SET (GIT_BRANCH modified-for-urho3d)
  63. # Get the latest abbreviated commit hash of the working branch
  64. SET (GIT_COMMIT_HASH 80799bd)
  65. IF(NOT GIT_COMMIT_HASH)
  66. SET(GIT_COMMIT_HASH 0)
  67. ENDIF(NOT GIT_COMMIT_HASH)
  68. IF(ASSIMP_DOUBLE_PRECISION)
  69. ADD_DEFINITIONS(-DASSIMP_DOUBLE_PRECISION)
  70. ENDIF(ASSIMP_DOUBLE_PRECISION)
  71. CONFIGURE_FILE(
  72. ${CMAKE_CURRENT_LIST_DIR}/revision.h.in
  73. ${CMAKE_CURRENT_BINARY_DIR}/revision.h
  74. )
  75. CONFIGURE_FILE(
  76. ${CMAKE_CURRENT_LIST_DIR}/include/assimp/config.h.in
  77. ${CMAKE_CURRENT_BINARY_DIR}/include/assimp/config.h
  78. )
  79. # Urho3D: pulled up from zlib's CMakeLists.txt
  80. CONFIGURE_FILE(
  81. ${CMAKE_CURRENT_SOURCE_DIR}/contrib/zlib/zconf.h.cmakein
  82. ${CMAKE_CURRENT_BINARY_DIR}/contrib/zlib/zconf.h @ONLY
  83. )
  84. INCLUDE_DIRECTORIES(
  85. ./
  86. include
  87. ${CMAKE_CURRENT_BINARY_DIR}
  88. ${CMAKE_CURRENT_BINARY_DIR}/include
  89. )
  90. LIST(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/cmake-modules" )
  91. IF ( ASSIMP_NO_EXPORT )
  92. ADD_DEFINITIONS( -DASSIMP_BUILD_NO_EXPORT)
  93. MESSAGE( STATUS "Build an import-only version of Assimp." )
  94. ENDIF( ASSIMP_NO_EXPORT )
  95. SET ( ASSIMP_BUILD_ARCHITECTURE "" CACHE STRING
  96. "describe the current architecture."
  97. )
  98. IF ( ASSIMP_BUILD_ARCHITECTURE STREQUAL "")
  99. ELSE ( ASSIMP_BUILD_ARCHITECTURE STREQUAL "")
  100. ADD_DEFINITIONS ( -D'ASSIMP_BUILD_ARCHITECTURE="${ASSIMP_BUILD_ARCHITECTURE}"' )
  101. ENDIF ( ASSIMP_BUILD_ARCHITECTURE STREQUAL "")
  102. # ${CMAKE_GENERATOR}
  103. SET ( ASSIMP_BUILD_COMPILER "" CACHE STRING
  104. "describe the current compiler."
  105. )
  106. IF ( ASSIMP_BUILD_COMPILER STREQUAL "")
  107. ELSE ( ASSIMP_BUILD_COMPILER STREQUAL "")
  108. ADD_DEFINITIONS ( -D'ASSIMP_BUILD_COMPILER="${ASSIMP_BUILD_COMPILER}"' )
  109. ENDIF ( ASSIMP_BUILD_COMPILER STREQUAL "")
  110. MARK_AS_ADVANCED ( ASSIMP_BUILD_ARCHITECTURE ASSIMP_BUILD_COMPILER )
  111. SET ( ASSIMP_BUILD_NONFREE_C4D_IMPORTER OFF CACHE BOOL
  112. "Build the C4D importer, which relies on the non-free Melange SDK."
  113. )
  114. IF (ASSIMP_BUILD_NONFREE_C4D_IMPORTER)
  115. IF ( MSVC )
  116. SET(C4D_INCLUDES "${CMAKE_CURRENT_SOURCE_DIR}/contrib/Melange/includes")
  117. # pick the correct prebuilt library
  118. IF(MSVC14)
  119. SET(C4D_LIB_POSTFIX "_2015")
  120. ELSEIF(MSVC12)
  121. SET(C4D_LIB_POSTFIX "_2013")
  122. ELSEIF(MSVC11)
  123. SET(C4D_LIB_POSTFIX "_2012")
  124. ELSEIF(MSVC10)
  125. SET(C4D_LIB_POSTFIX "_2010")
  126. ELSE()
  127. MESSAGE( FATAL_ERROR
  128. "C4D is currently only supported with MSVC 10, 11, 12, 14"
  129. )
  130. ENDIF()
  131. SET(C4D_LIB_BASE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/contrib/Melange/libraries/win")
  132. SET(C4D_DEBUG_LIBRARIES
  133. "${C4D_LIB_BASE_PATH}/melangelib${C4D_LIB_POSTFIX}/melangelib_debug.lib"
  134. "${C4D_LIB_BASE_PATH}/jpeglib${C4D_LIB_POSTFIX}/jpeglib_debug.lib"
  135. )
  136. SET(C4D_RELEASE_LIBRARIES
  137. "${C4D_LIB_BASE_PATH}/melangelib${C4D_LIB_POSTFIX}/melangelib_release.lib"
  138. "${C4D_LIB_BASE_PATH}/jpeglib${C4D_LIB_POSTFIX}/jpeglib_release.lib"
  139. )
  140. # winsock and winmm are necessary dependencies of melange (this is undocumented, but true.)
  141. SET(C4D_EXTRA_LIBRARIES WSock32.lib Winmm.lib)
  142. ELSE ()
  143. MESSAGE( FATAL_ERROR
  144. "C4D is currently only available on Windows with melange SDK installed in contrib/Melange"
  145. )
  146. ENDIF ( MSVC )
  147. ELSE (ASSIMP_BUILD_NONFREE_C4D_IMPORTER)
  148. ADD_DEFINITIONS( -DASSIMP_BUILD_NO_C4D_IMPORTER )
  149. ENDIF (ASSIMP_BUILD_NONFREE_C4D_IMPORTER)
  150. ADD_SUBDIRECTORY( code/ )