CMakeLists.txt 23 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911
  1. # Open Asset Import Library (assimp)
  2. # ----------------------------------------------------------------------
  3. #
  4. # Copyright (c) 2006-2017, assimp team
  5. # All rights reserved.
  6. #
  7. # Redistribution and use of this software in source and binary forms,
  8. # with or without modification, are permitted provided that the
  9. # following conditions are met:
  10. #
  11. # * Redistributions of source code must retain the above
  12. # copyright notice, this list of conditions and the
  13. # following disclaimer.
  14. #
  15. # * Redistributions in binary form must reproduce the above
  16. # copyright notice, this list of conditions and the
  17. # following disclaimer in the documentation and/or other
  18. # materials provided with the distribution.
  19. #
  20. # * Neither the name of the assimp team, nor the names of its
  21. # contributors may be used to endorse or promote products
  22. # derived from this software without specific prior
  23. # written permission of the assimp team.
  24. #
  25. # THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
  26. # "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
  27. # LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
  28. # A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
  29. # OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
  30. # SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
  31. # LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
  32. # DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
  33. # THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
  34. # (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
  35. # OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  36. #
  37. #----------------------------------------------------------------------
  38. #
  39. # Listing and grouping of all the source files.
  40. # 1) Set the file lists for each component
  41. # 2) Create a Source Group for each component, for IDE project orginization
  42. # 3) Add libassimp using the file lists (eliminates duplication of file names between
  43. # source groups and library command)
  44. #
  45. # Modified by Lasse Oorni and Yao Wei Tjong for Urho3D
  46. LIST(APPEND CMAKE_MODULE_PATH ${CMAKE_CURRENT_SOURCE_DIR}/cmake-modules)
  47. INCLUDE_DIRECTORIES( . code include contrib contrib/unzip contrib/rapidjson/include contrib/irrXML )
  48. SET( HEADER_PATH include/assimp )
  49. SET( COMPILER_HEADERS
  50. ${HEADER_PATH}/Compiler/pushpack1.h
  51. ${HEADER_PATH}/Compiler/poppack1.h
  52. ${HEADER_PATH}/Compiler/pstdint.h
  53. )
  54. SOURCE_GROUP( Compiler FILES ${COMPILER_HEADERS})
  55. SET( PUBLIC_HEADERS
  56. ${HEADER_PATH}/anim.h
  57. ${HEADER_PATH}/ai_assert.h
  58. ${HEADER_PATH}/camera.h
  59. ${HEADER_PATH}/color4.h
  60. ${HEADER_PATH}/color4.inl
  61. ${HEADER_PATH}/config.h
  62. ${HEADER_PATH}/defs.h
  63. ${HEADER_PATH}/cfileio.h
  64. ${HEADER_PATH}/light.h
  65. ${HEADER_PATH}/material.h
  66. ${HEADER_PATH}/material.inl
  67. ${HEADER_PATH}/matrix3x3.h
  68. ${HEADER_PATH}/matrix3x3.inl
  69. ${HEADER_PATH}/matrix4x4.h
  70. ${HEADER_PATH}/matrix4x4.inl
  71. ${HEADER_PATH}/mesh.h
  72. ${HEADER_PATH}/postprocess.h
  73. ${HEADER_PATH}/quaternion.h
  74. ${HEADER_PATH}/quaternion.inl
  75. ${HEADER_PATH}/scene.h
  76. ${HEADER_PATH}/metadata.h
  77. ${HEADER_PATH}/texture.h
  78. ${HEADER_PATH}/types.h
  79. ${HEADER_PATH}/vector2.h
  80. ${HEADER_PATH}/vector2.inl
  81. ${HEADER_PATH}/vector3.h
  82. ${HEADER_PATH}/vector3.inl
  83. ${HEADER_PATH}/version.h
  84. ${HEADER_PATH}/cimport.h
  85. ${HEADER_PATH}/importerdesc.h
  86. ${HEADER_PATH}/Importer.hpp
  87. ${HEADER_PATH}/DefaultLogger.hpp
  88. ${HEADER_PATH}/ProgressHandler.hpp
  89. ${HEADER_PATH}/IOStream.hpp
  90. ${HEADER_PATH}/IOSystem.hpp
  91. ${HEADER_PATH}/Logger.hpp
  92. ${HEADER_PATH}/LogStream.hpp
  93. ${HEADER_PATH}/NullLogger.hpp
  94. ${HEADER_PATH}/cexport.h
  95. ${HEADER_PATH}/Exporter.hpp
  96. ${HEADER_PATH}/DefaultIOStream.h
  97. ${HEADER_PATH}/DefaultIOSystem.h
  98. ${HEADER_PATH}/SceneCombiner.h
  99. )
  100. SET( Core_SRCS
  101. code/Assimp.cpp
  102. )
  103. SET( Logging_SRCS
  104. ${HEADER_PATH}/DefaultLogger.hpp
  105. ${HEADER_PATH}/LogStream.hpp
  106. ${HEADER_PATH}/Logger.hpp
  107. ${HEADER_PATH}/NullLogger.hpp
  108. code/Win32DebugLogStream.h
  109. code/DefaultLogger.cpp
  110. code/FileLogStream.h
  111. code/StdOStreamLogStream.h
  112. )
  113. SOURCE_GROUP(Logging FILES ${Logging_SRCS})
  114. SET( Common_SRCS
  115. code/fast_atof.h
  116. code/qnan.h
  117. code/BaseImporter.cpp
  118. code/BaseImporter.h
  119. code/BaseProcess.cpp
  120. code/BaseProcess.h
  121. code/Importer.h
  122. code/ScenePrivate.h
  123. code/PostStepRegistry.cpp
  124. code/ImporterRegistry.cpp
  125. code/ByteSwapper.h
  126. code/DefaultProgressHandler.h
  127. code/DefaultIOStream.cpp
  128. code/DefaultIOSystem.cpp
  129. code/CInterfaceIOWrapper.cpp
  130. code/CInterfaceIOWrapper.h
  131. code/Hash.h
  132. code/Importer.cpp
  133. code/IFF.h
  134. code/MemoryIOWrapper.h
  135. code/ParsingUtils.h
  136. code/StreamReader.h
  137. code/StreamWriter.h
  138. code/StringComparison.h
  139. code/StringUtils.h
  140. code/SGSpatialSort.cpp
  141. code/SGSpatialSort.h
  142. code/VertexTriangleAdjacency.cpp
  143. code/VertexTriangleAdjacency.h
  144. code/GenericProperty.h
  145. code/SpatialSort.cpp
  146. code/SpatialSort.h
  147. code/SceneCombiner.cpp
  148. code/ScenePreprocessor.cpp
  149. code/ScenePreprocessor.h
  150. code/SkeletonMeshBuilder.cpp
  151. code/SkeletonMeshBuilder.h
  152. code/SplitByBoneCountProcess.cpp
  153. code/SplitByBoneCountProcess.h
  154. code/SmoothingGroups.h
  155. code/StandardShapes.cpp
  156. code/StandardShapes.h
  157. code/TargetAnimation.cpp
  158. code/TargetAnimation.h
  159. code/RemoveComments.cpp
  160. code/RemoveComments.h
  161. code/Subdivision.cpp
  162. code/Subdivision.h
  163. code/scene.cpp
  164. code/Vertex.h
  165. code/LineSplitter.h
  166. code/TinyFormatter.h
  167. code/Profiler.h
  168. code/LogAux.h
  169. code/Bitmap.cpp
  170. code/Bitmap.h
  171. code/XMLTools.h
  172. code/Version.cpp
  173. code/IOStreamBuffer.h
  174. code/CreateAnimMesh.h
  175. code/CreateAnimMesh.cpp
  176. )
  177. SOURCE_GROUP(Common FILES ${Common_SRCS})
  178. IF ( ASSIMP_BUILD_NONFREE_C4D_IMPORTER )
  179. SET( C4D_SRCS
  180. code/C4DImporter.cpp
  181. code/C4DImporter.h
  182. )
  183. SOURCE_GROUP( C4D FILES ${C4D_SRCS})
  184. ENDIF ( ASSIMP_BUILD_NONFREE_C4D_IMPORTER )
  185. # if this variable is set to TRUE, the user can manually disable importers by setting
  186. # ASSIMP_BUILD_XXX_IMPORTER to FALSE for each importer
  187. # if this variable is set to FALSE, the user can manually enable importers by setting
  188. # ASSIMP_BUILD_XXX_IMPORTER to TRUE for each importer
  189. OPTION(ASSIMP_BUILD_ALL_IMPORTERS_BY_DEFAULT "default value of all ASSIMP_BUILD_XXX_IMPORTER value" TRUE)
  190. # macro to add the CMake Option ADD_ASSIMP_IMPORTER_<name> which enables compile of loader
  191. # this way selective loaders can be compiled (reduces filesize + compile time)
  192. MACRO(ADD_ASSIMP_IMPORTER name)
  193. OPTION(ASSIMP_BUILD_${name}_IMPORTER "build the ${name} importer" ${ASSIMP_BUILD_ALL_IMPORTERS_BY_DEFAULT})
  194. IF(ASSIMP_BUILD_${name}_IMPORTER)
  195. LIST(APPEND ASSIMP_LOADER_SRCS ${ARGN})
  196. SET(ASSIMP_IMPORTERS_ENABLED "${ASSIMP_IMPORTERS_ENABLED} ${name}")
  197. SET(${name}_SRCS ${ARGN})
  198. SOURCE_GROUP(${name} FILES ${ARGN})
  199. ELSE()
  200. SET(${name}_SRC "")
  201. SET(ASSIMP_IMPORTERS_DISABLED "${ASSIMP_IMPORTERS_DISABLED} ${name}")
  202. add_definitions(-DASSIMP_BUILD_NO_${name}_IMPORTER)
  203. add_definitions(-DASSIMP_BUILD_NO_${name}_EXPORTER)
  204. ENDIF()
  205. ENDMACRO()
  206. SET(ASSIMP_LOADER_SRCS "")
  207. SET(ASSIMP_IMPORTERS_ENABLED "") # list of enabled importers
  208. SET(ASSIMP_IMPORTERS_DISABLED "") # disabled list (used to print)
  209. ADD_ASSIMP_IMPORTER( AMF
  210. code/AMFImporter.hpp
  211. code/AMFImporter_Macro.hpp
  212. code/AMFImporter_Node.hpp
  213. code/AMFImporter.cpp
  214. code/AMFImporter_Geometry.cpp
  215. code/AMFImporter_Material.cpp
  216. code/AMFImporter_Postprocess.cpp
  217. )
  218. ADD_ASSIMP_IMPORTER( 3DS
  219. code/3DSConverter.cpp
  220. code/3DSHelper.h
  221. code/3DSLoader.cpp
  222. code/3DSLoader.h
  223. code/3DSExporter.h
  224. code/3DSExporter.cpp
  225. )
  226. ADD_ASSIMP_IMPORTER( AC
  227. code/ACLoader.cpp
  228. code/ACLoader.h
  229. )
  230. ADD_ASSIMP_IMPORTER( ASE
  231. code/ASELoader.cpp
  232. code/ASELoader.h
  233. code/ASEParser.cpp
  234. code/ASEParser.h
  235. )
  236. ADD_ASSIMP_IMPORTER( ASSBIN
  237. code/AssbinExporter.h
  238. code/AssbinExporter.cpp
  239. code/AssbinLoader.h
  240. code/AssbinLoader.cpp
  241. )
  242. ADD_ASSIMP_IMPORTER( ASSXML
  243. code/AssxmlExporter.h
  244. code/AssxmlExporter.cpp
  245. )
  246. ADD_ASSIMP_IMPORTER( B3D
  247. code/B3DImporter.cpp
  248. code/B3DImporter.h
  249. )
  250. ADD_ASSIMP_IMPORTER( BVH
  251. code/BVHLoader.cpp
  252. code/BVHLoader.h
  253. )
  254. ADD_ASSIMP_IMPORTER( COLLADA
  255. code/ColladaHelper.h
  256. code/ColladaLoader.cpp
  257. code/ColladaLoader.h
  258. code/ColladaParser.cpp
  259. code/ColladaParser.h
  260. code/ColladaExporter.h
  261. code/ColladaExporter.cpp
  262. )
  263. ADD_ASSIMP_IMPORTER( DXF
  264. code/DXFLoader.cpp
  265. code/DXFLoader.h
  266. code/DXFHelper.h
  267. )
  268. ADD_ASSIMP_IMPORTER( CSM
  269. code/CSMLoader.cpp
  270. code/CSMLoader.h
  271. )
  272. ADD_ASSIMP_IMPORTER( HMP
  273. code/HMPFileData.h
  274. code/HMPLoader.cpp
  275. code/HMPLoader.h
  276. code/HalfLifeFileData.h
  277. )
  278. ADD_ASSIMP_IMPORTER( IRRMESH
  279. code/IRRMeshLoader.cpp
  280. code/IRRMeshLoader.h
  281. code/IRRShared.cpp
  282. code/IRRShared.h
  283. )
  284. ADD_ASSIMP_IMPORTER( IRR
  285. code/IRRLoader.cpp
  286. code/IRRLoader.h
  287. code/IRRShared.cpp
  288. code/IRRShared.h
  289. )
  290. ADD_ASSIMP_IMPORTER( LWO
  291. code/LWOAnimation.cpp
  292. code/LWOAnimation.h
  293. code/LWOBLoader.cpp
  294. code/LWOFileData.h
  295. code/LWOLoader.cpp
  296. code/LWOLoader.h
  297. code/LWOMaterial.cpp
  298. )
  299. ADD_ASSIMP_IMPORTER( LWS
  300. code/LWSLoader.cpp
  301. code/LWSLoader.h
  302. )
  303. ADD_ASSIMP_IMPORTER( MD2
  304. code/MD2FileData.h
  305. code/MD2Loader.cpp
  306. code/MD2Loader.h
  307. code/MD2NormalTable.h
  308. )
  309. ADD_ASSIMP_IMPORTER( MD3
  310. code/MD3FileData.h
  311. code/MD3Loader.cpp
  312. code/MD3Loader.h
  313. )
  314. ADD_ASSIMP_IMPORTER( MD5
  315. code/MD5Loader.cpp
  316. code/MD5Loader.h
  317. code/MD5Parser.cpp
  318. code/MD5Parser.h
  319. )
  320. ADD_ASSIMP_IMPORTER( MDC
  321. code/MDCFileData.h
  322. code/MDCLoader.cpp
  323. code/MDCLoader.h
  324. code/MDCNormalTable.h
  325. )
  326. ADD_ASSIMP_IMPORTER( MDL
  327. code/MDLDefaultColorMap.h
  328. code/MDLFileData.h
  329. code/MDLLoader.cpp
  330. code/MDLLoader.h
  331. code/MDLMaterialLoader.cpp
  332. )
  333. SET( MaterialSystem_SRCS
  334. code/MaterialSystem.cpp
  335. code/MaterialSystem.h
  336. )
  337. SOURCE_GROUP( MaterialSystem FILES ${MaterialSystem_SRCS})
  338. ADD_ASSIMP_IMPORTER( NFF
  339. code/NFFLoader.cpp
  340. code/NFFLoader.h
  341. )
  342. ADD_ASSIMP_IMPORTER( NDO
  343. code/NDOLoader.cpp
  344. code/NDOLoader.h
  345. )
  346. ADD_ASSIMP_IMPORTER( OFF
  347. code/OFFLoader.cpp
  348. code/OFFLoader.h
  349. )
  350. ADD_ASSIMP_IMPORTER( OBJ
  351. code/ObjFileData.h
  352. code/ObjFileImporter.cpp
  353. code/ObjFileImporter.h
  354. code/ObjFileMtlImporter.cpp
  355. code/ObjFileMtlImporter.h
  356. code/ObjFileParser.cpp
  357. code/ObjFileParser.h
  358. code/ObjTools.h
  359. code/ObjExporter.h
  360. code/ObjExporter.cpp
  361. )
  362. ADD_ASSIMP_IMPORTER( OGRE
  363. code/OgreImporter.h
  364. code/OgreStructs.h
  365. code/OgreParsingUtils.h
  366. code/OgreBinarySerializer.h
  367. code/OgreXmlSerializer.h
  368. code/OgreImporter.cpp
  369. code/OgreStructs.cpp
  370. code/OgreBinarySerializer.cpp
  371. code/OgreXmlSerializer.cpp
  372. code/OgreMaterial.cpp
  373. )
  374. ADD_ASSIMP_IMPORTER( OPENGEX
  375. code/OpenGEXExporter.cpp
  376. code/OpenGEXExporter.h
  377. code/OpenGEXImporter.cpp
  378. code/OpenGEXImporter.h
  379. code/OpenGEXStructs.h
  380. )
  381. ADD_ASSIMP_IMPORTER( PLY
  382. code/PlyLoader.cpp
  383. code/PlyLoader.h
  384. code/PlyParser.cpp
  385. code/PlyParser.h
  386. code/PlyExporter.cpp
  387. code/PlyExporter.h
  388. )
  389. ADD_ASSIMP_IMPORTER( MS3D
  390. code/MS3DLoader.cpp
  391. code/MS3DLoader.h
  392. )
  393. ADD_ASSIMP_IMPORTER( COB
  394. code/COBLoader.cpp
  395. code/COBLoader.h
  396. code/COBScene.h
  397. )
  398. ADD_ASSIMP_IMPORTER( BLEND
  399. code/BlenderLoader.cpp
  400. code/BlenderLoader.h
  401. code/BlenderDNA.cpp
  402. code/BlenderDNA.h
  403. code/BlenderDNA.inl
  404. code/BlenderScene.cpp
  405. code/BlenderScene.h
  406. code/BlenderSceneGen.h
  407. code/BlenderIntermediate.h
  408. code/BlenderModifier.h
  409. code/BlenderModifier.cpp
  410. code/BlenderBMesh.h
  411. code/BlenderBMesh.cpp
  412. code/BlenderTessellator.h
  413. code/BlenderTessellator.cpp
  414. )
  415. ADD_ASSIMP_IMPORTER( IFC
  416. code/IFCLoader.cpp
  417. code/IFCLoader.h
  418. code/IFCReaderGen1.cpp
  419. code/IFCReaderGen2.cpp
  420. code/IFCReaderGen.h
  421. code/IFCUtil.h
  422. code/IFCUtil.cpp
  423. code/IFCGeometry.cpp
  424. code/IFCMaterial.cpp
  425. code/IFCProfile.cpp
  426. code/IFCCurve.cpp
  427. code/IFCBoolean.cpp
  428. code/IFCOpenings.cpp
  429. code/STEPFile.h
  430. code/STEPFileReader.h
  431. code/STEPFileReader.cpp
  432. code/STEPFileEncoding.cpp
  433. code/STEPFileEncoding.h
  434. )
  435. if (ASSIMP_BUILD_IFC_IMPORTER)
  436. if (MSVC)
  437. set_source_files_properties(code/IFCReaderGen1.cpp code/IFCReaderGen2.cpp PROPERTIES COMPILE_FLAGS "/bigobj")
  438. elseif(CMAKE_COMPILER_IS_MINGW)
  439. set_source_files_properties(code/IFCReaderGen1.cpp code/IFCReaderGen2.cpp PROPERTIES COMPILE_FLAGS "-O2") # Urho3D: Remove -Wa,-mbig-obj flag as some older MinGW version may not support it yet
  440. endif()
  441. endif (ASSIMP_BUILD_IFC_IMPORTER)
  442. ADD_ASSIMP_IMPORTER( XGL
  443. code/XGLLoader.cpp
  444. code/XGLLoader.h
  445. )
  446. ADD_ASSIMP_IMPORTER( FBX
  447. code/FBXImporter.cpp
  448. code/FBXCompileConfig.h
  449. code/FBXImporter.h
  450. code/FBXParser.cpp
  451. code/FBXParser.h
  452. code/FBXTokenizer.cpp
  453. code/FBXTokenizer.h
  454. code/FBXImportSettings.h
  455. code/FBXConverter.h
  456. code/FBXConverter.cpp
  457. code/FBXUtil.h
  458. code/FBXUtil.cpp
  459. code/FBXDocument.h
  460. code/FBXDocument.cpp
  461. code/FBXProperties.h
  462. code/FBXProperties.cpp
  463. code/FBXMeshGeometry.h
  464. code/FBXMeshGeometry.cpp
  465. code/FBXMaterial.cpp
  466. code/FBXModel.cpp
  467. code/FBXAnimation.cpp
  468. code/FBXNodeAttribute.cpp
  469. code/FBXDeformer.cpp
  470. code/FBXBinaryTokenizer.cpp
  471. code/FBXDocumentUtil.cpp
  472. )
  473. SET( PostProcessing_SRCS
  474. code/CalcTangentsProcess.cpp
  475. code/CalcTangentsProcess.h
  476. code/ComputeUVMappingProcess.cpp
  477. code/ComputeUVMappingProcess.h
  478. code/ConvertToLHProcess.cpp
  479. code/ConvertToLHProcess.h
  480. code/FindDegenerates.cpp
  481. code/FindDegenerates.h
  482. code/FindInstancesProcess.cpp
  483. code/FindInstancesProcess.h
  484. code/FindInvalidDataProcess.cpp
  485. code/FindInvalidDataProcess.h
  486. code/FixNormalsStep.cpp
  487. code/FixNormalsStep.h
  488. code/GenFaceNormalsProcess.cpp
  489. code/GenFaceNormalsProcess.h
  490. code/GenVertexNormalsProcess.cpp
  491. code/GenVertexNormalsProcess.h
  492. code/PretransformVertices.cpp
  493. code/PretransformVertices.h
  494. code/ImproveCacheLocality.cpp
  495. code/ImproveCacheLocality.h
  496. code/JoinVerticesProcess.cpp
  497. code/JoinVerticesProcess.h
  498. code/LimitBoneWeightsProcess.cpp
  499. code/LimitBoneWeightsProcess.h
  500. code/RemoveRedundantMaterials.cpp
  501. code/RemoveRedundantMaterials.h
  502. code/RemoveVCProcess.cpp
  503. code/RemoveVCProcess.h
  504. code/SortByPTypeProcess.cpp
  505. code/SortByPTypeProcess.h
  506. code/SplitLargeMeshes.cpp
  507. code/SplitLargeMeshes.h
  508. code/TextureTransform.cpp
  509. code/TextureTransform.h
  510. code/TriangulateProcess.cpp
  511. code/TriangulateProcess.h
  512. code/ValidateDataStructure.cpp
  513. code/ValidateDataStructure.h
  514. code/OptimizeGraph.cpp
  515. code/OptimizeGraph.h
  516. code/OptimizeMeshes.cpp
  517. code/OptimizeMeshes.h
  518. code/DeboneProcess.cpp
  519. code/DeboneProcess.h
  520. code/ProcessHelper.h
  521. code/ProcessHelper.cpp
  522. code/PolyTools.h
  523. code/MakeVerboseFormat.cpp
  524. code/MakeVerboseFormat.h
  525. )
  526. SOURCE_GROUP( PostProcessing FILES ${PostProcessing_SRCS})
  527. SET( IrrXML_SRCS code/irrXMLWrapper.h )
  528. SOURCE_GROUP( IrrXML FILES ${IrrXML_SRCS})
  529. ADD_ASSIMP_IMPORTER( Q3D
  530. code/Q3DLoader.cpp
  531. code/Q3DLoader.h
  532. )
  533. ADD_ASSIMP_IMPORTER( Q3BSP
  534. code/Q3BSPFileData.h
  535. code/Q3BSPFileParser.h
  536. code/Q3BSPFileParser.cpp
  537. code/Q3BSPFileImporter.h
  538. code/Q3BSPFileImporter.cpp
  539. code/Q3BSPZipArchive.h
  540. code/Q3BSPZipArchive.cpp
  541. )
  542. ADD_ASSIMP_IMPORTER( RAW
  543. code/RawLoader.cpp
  544. code/RawLoader.h
  545. )
  546. ADD_ASSIMP_IMPORTER( SIB
  547. code/SIBImporter.cpp
  548. code/SIBImporter.h
  549. )
  550. ADD_ASSIMP_IMPORTER( SMD
  551. code/SMDLoader.cpp
  552. code/SMDLoader.h
  553. )
  554. ADD_ASSIMP_IMPORTER( STL
  555. code/STLLoader.cpp
  556. code/STLLoader.h
  557. code/STLExporter.h
  558. code/STLExporter.cpp
  559. )
  560. ADD_ASSIMP_IMPORTER( TERRAGEN
  561. code/TerragenLoader.cpp
  562. code/TerragenLoader.h
  563. )
  564. ADD_ASSIMP_IMPORTER( 3D
  565. code/UnrealLoader.cpp
  566. code/UnrealLoader.h
  567. )
  568. ADD_ASSIMP_IMPORTER( X
  569. code/XFileHelper.h
  570. code/XFileImporter.cpp
  571. code/XFileImporter.h
  572. code/XFileParser.cpp
  573. code/XFileParser.h
  574. code/XFileExporter.h
  575. code/XFileExporter.cpp
  576. )
  577. ADD_ASSIMP_IMPORTER(X3D
  578. code/X3DExporter.cpp
  579. code/X3DExporter.hpp
  580. code/X3DImporter.cpp
  581. code/X3DImporter.hpp
  582. code/X3DImporter_Geometry2D.cpp
  583. code/X3DImporter_Geometry3D.cpp
  584. code/X3DImporter_Group.cpp
  585. code/X3DImporter_Light.cpp
  586. code/X3DImporter_Macro.hpp
  587. code/X3DImporter_Metadata.cpp
  588. code/X3DImporter_Networking.cpp
  589. code/X3DImporter_Node.hpp
  590. code/X3DImporter_Postprocess.cpp
  591. code/X3DImporter_Rendering.cpp
  592. code/X3DImporter_Shape.cpp
  593. code/X3DImporter_Texturing.cpp
  594. code/FIReader.hpp
  595. code/FIReader.cpp
  596. code/X3DVocabulary.cpp
  597. )
  598. ADD_ASSIMP_IMPORTER( GLTF
  599. code/glTFAsset.h
  600. code/glTFAsset.inl
  601. code/glTFAssetWriter.h
  602. code/glTFAssetWriter.inl
  603. code/glTFImporter.cpp
  604. code/glTFImporter.h
  605. code/glTFExporter.h
  606. code/glTFExporter.cpp
  607. )
  608. ADD_ASSIMP_IMPORTER( 3MF
  609. code/D3MFImporter.h
  610. code/D3MFImporter.cpp
  611. code/D3MFOpcPackage.h
  612. code/D3MFOpcPackage.cpp
  613. )
  614. ADD_ASSIMP_IMPORTER( MMD
  615. code/MMDCpp14.h
  616. code/MMDImporter.cpp
  617. code/MMDImporter.h
  618. code/MMDPmdParser.h
  619. code/MMDPmxParser.h
  620. code/MMDPmxParser.cpp
  621. code/MMDVmdParser.h
  622. )
  623. SET( Step_SRCS
  624. code/StepExporter.h
  625. code/StepExporter.cpp
  626. )
  627. SOURCE_GROUP( Step FILES ${Step_SRCS})
  628. SET( Exporter_SRCS
  629. code/Exporter.cpp
  630. code/AssimpCExport.cpp
  631. code/BlobIOSystem.h
  632. )
  633. SOURCE_GROUP( Exporter FILES ${Exporter_SRCS})
  634. SET( Extra_SRCS
  635. code/MD4FileData.h
  636. )
  637. SOURCE_GROUP( Extra FILES ${Extra_SRCS})
  638. SET( IrrXML_SRCS
  639. code/irrXMLWrapper.h
  640. contrib/irrXML/CXMLReaderImpl.h
  641. contrib/irrXML/heapsort.h
  642. contrib/irrXML/irrArray.h
  643. contrib/irrXML/irrString.h
  644. contrib/irrXML/irrTypes.h
  645. contrib/irrXML/irrXML.cpp
  646. contrib/irrXML/irrXML.h
  647. )
  648. SOURCE_GROUP( IrrXML FILES ${IrrXML_SRCS})
  649. SET( Clipper_SRCS
  650. contrib/clipper/clipper.hpp
  651. contrib/clipper/clipper.cpp
  652. )
  653. SOURCE_GROUP( Clipper FILES ${Clipper_SRCS})
  654. SET( Poly2Tri_SRCS
  655. contrib/poly2tri/poly2tri/common/shapes.cc
  656. contrib/poly2tri/poly2tri/common/shapes.h
  657. contrib/poly2tri/poly2tri/common/utils.h
  658. contrib/poly2tri/poly2tri/sweep/advancing_front.h
  659. contrib/poly2tri/poly2tri/sweep/advancing_front.cc
  660. contrib/poly2tri/poly2tri/sweep/cdt.cc
  661. contrib/poly2tri/poly2tri/sweep/cdt.h
  662. contrib/poly2tri/poly2tri/sweep/sweep.cc
  663. contrib/poly2tri/poly2tri/sweep/sweep.h
  664. contrib/poly2tri/poly2tri/sweep/sweep_context.cc
  665. contrib/poly2tri/poly2tri/sweep/sweep_context.h
  666. )
  667. SOURCE_GROUP( Poly2Tri FILES ${Poly2Tri_SRCS})
  668. SET( unzip_SRCS
  669. contrib/unzip/crypt.h
  670. contrib/unzip/ioapi.c
  671. contrib/unzip/ioapi.h
  672. contrib/unzip/unzip.c
  673. contrib/unzip/unzip.h
  674. )
  675. SOURCE_GROUP( unzip FILES ${unzip_SRCS})
  676. SET( zlib_SRCS
  677. contrib/zlib/adler32.c
  678. contrib/zlib/compress.c
  679. contrib/zlib/crc32.c
  680. contrib/zlib/crc32.h
  681. contrib/zlib/deflate.c
  682. contrib/zlib/deflate.h
  683. # contrib/zlib/gzclose.c
  684. # contrib/zlib/gzguts.h
  685. # contrib/zlib/gzlib.c
  686. # contrib/zlib/gzread.c
  687. # contrib/zlib/gzwrite.c
  688. contrib/zlib/infback.c
  689. contrib/zlib/inffast.c
  690. contrib/zlib/inffast.h
  691. contrib/zlib/inffixed.h
  692. contrib/zlib/inflate.c
  693. contrib/zlib/inflate.h
  694. contrib/zlib/inftrees.c
  695. contrib/zlib/inftrees.h
  696. contrib/zlib/trees.c
  697. contrib/zlib/trees.h
  698. contrib/zlib/uncompr.c
  699. contrib/zlib/zconf.h
  700. contrib/zlib/zlib.h
  701. contrib/zlib/zutil.c
  702. contrib/zlib/zutil.h
  703. )
  704. SOURCE_GROUP( zlib FILES ${zlib_SRCS})
  705. SET ( openddl_parser_SRCS
  706. contrib/openddlparser/code/OpenDDLExport.cpp
  707. contrib/openddlparser/code/OpenDDLCommon.cpp
  708. contrib/openddlparser/code/OpenDDLParser.cpp
  709. contrib/openddlparser/code/DDLNode.cpp
  710. contrib/openddlparser/code/Value.cpp
  711. contrib/openddlparser/code/OpenDDLStream.cpp
  712. contrib/openddlparser/include/openddlparser/OpenDDLParser.h
  713. contrib/openddlparser/include/openddlparser/OpenDDLParserUtils.h
  714. contrib/openddlparser/include/openddlparser/OpenDDLCommon.h
  715. contrib/openddlparser/include/openddlparser/OpenDDLExport.h
  716. contrib/openddlparser/include/openddlparser/OpenDDLStream.h
  717. contrib/openddlparser/include/openddlparser/DDLNode.h
  718. contrib/openddlparser/include/openddlparser/Value.h
  719. )
  720. SOURCE_GROUP( openddl_parser FILES ${openddl_parser_SRCS})
  721. SET ( open3dgc_SRCS
  722. contrib/Open3DGC/o3dgcAdjacencyInfo.h
  723. contrib/Open3DGC/o3dgcArithmeticCodec.cpp
  724. contrib/Open3DGC/o3dgcArithmeticCodec.h
  725. contrib/Open3DGC/o3dgcBinaryStream.h
  726. contrib/Open3DGC/o3dgcCommon.h
  727. contrib/Open3DGC/o3dgcDVEncodeParams.h
  728. contrib/Open3DGC/o3dgcDynamicVectorDecoder.cpp
  729. contrib/Open3DGC/o3dgcDynamicVectorDecoder.h
  730. contrib/Open3DGC/o3dgcDynamicVectorEncoder.cpp
  731. contrib/Open3DGC/o3dgcDynamicVectorEncoder.h
  732. contrib/Open3DGC/o3dgcDynamicVector.h
  733. contrib/Open3DGC/o3dgcFIFO.h
  734. contrib/Open3DGC/o3dgcIndexedFaceSet.h
  735. contrib/Open3DGC/o3dgcIndexedFaceSet.inl
  736. contrib/Open3DGC/o3dgcSC3DMCDecoder.h
  737. contrib/Open3DGC/o3dgcSC3DMCDecoder.inl
  738. contrib/Open3DGC/o3dgcSC3DMCEncodeParams.h
  739. contrib/Open3DGC/o3dgcSC3DMCEncoder.h
  740. contrib/Open3DGC/o3dgcSC3DMCEncoder.inl
  741. contrib/Open3DGC/o3dgcTimer.h
  742. contrib/Open3DGC/o3dgcTools.cpp
  743. contrib/Open3DGC/o3dgcTriangleFans.cpp
  744. contrib/Open3DGC/o3dgcTriangleFans.h
  745. contrib/Open3DGC/o3dgcTriangleListDecoder.h
  746. contrib/Open3DGC/o3dgcTriangleListDecoder.inl
  747. contrib/Open3DGC/o3dgcTriangleListEncoder.h
  748. contrib/Open3DGC/o3dgcTriangleListEncoder.inl
  749. contrib/Open3DGC/o3dgcVector.h
  750. contrib/Open3DGC/o3dgcVector.inl
  751. )
  752. SOURCE_GROUP( open3dgc FILES ${open3dgc_SRCS})
  753. # Check dependencies for glTF importer with Open3DGC-compression.
  754. # RT-extensions is used in "contrib/Open3DGC/o3dgcTimer.h" for collecting statistics. Pointed file
  755. # has implementation for different platforms: WIN32, __MACH__ and other ("else" block).
  756. FIND_PACKAGE(RT QUIET)
  757. IF (RT_FOUND OR MSVC)
  758. SET( ASSIMP_IMPORTER_GLTF_USE_OPEN3DGC 1 )
  759. ADD_DEFINITIONS( -DASSIMP_IMPORTER_GLTF_USE_OPEN3DGC=1 )
  760. ELSE ()
  761. SET (open3dgc_SRCS "")
  762. # Urho3D: disable status prints
  763. # MESSAGE (INFO " RT-extension not found. glTF import/export will be built without Open3DGC-compression.")
  764. #!TODO: off course is better to remove statistics timers from o3dgc codec. Or propose to choose what to use.
  765. ENDIF ()
  766. # VC2010 fixes
  767. if(MSVC10)
  768. option( VC10_STDINT_FIX "Fix for VC10 Compiler regarding pstdint.h redefinition errors" OFF )
  769. if( VC10_STDINT_FIX )
  770. ADD_DEFINITIONS( -D_STDINT )
  771. endif( VC10_STDINT_FIX )
  772. endif(MSVC10)
  773. if ( MSVC )
  774. ADD_DEFINITIONS( -D_SCL_SECURE_NO_WARNINGS )
  775. ADD_DEFINITIONS( -D_CRT_SECURE_NO_WARNINGS )
  776. endif ( MSVC )
  777. # Urho3D: disable status prints
  778. # MESSAGE(STATUS "Enabled formats:${ASSIMP_IMPORTERS_ENABLED}")
  779. # MESSAGE(STATUS "Disabled formats:${ASSIMP_IMPORTERS_DISABLED}")
  780. SET( SOURCE_FILES
  781. # Assimp Files
  782. ${Core_SRCS}
  783. ${Common_SRCS}
  784. ${Logging_SRCS}
  785. ${Exporter_SRCS}
  786. ${PostProcessing_SRCS}
  787. ${MaterialSystem_SRCS}
  788. ${Step_SRCS}
  789. # Model Support
  790. ${ASSIMP_LOADER_SRCS}
  791. # Third-party libraries
  792. ${IrrXML_SRCS}
  793. ${unzip_SRCS}
  794. ${zlib_SRCS}
  795. ${Poly2Tri_SRCS}
  796. ${Clipper_SRCS}
  797. ${openddl_parser_SRCS}
  798. ${open3dgc_SRCS}
  799. # Necessary to show the headers in the project when using the VC++ generator:
  800. ${PUBLIC_HEADERS}
  801. ${COMPILER_HEADERS}
  802. )
  803. ADD_DEFINITIONS( -DOPENDDLPARSER_BUILD )
  804. INCLUDE_DIRECTORIES(
  805. ${IRRXML_INCLUDE_DIR}
  806. contrib/openddlparser/include
  807. )
  808. # Urho3D: set the corresponding "no importer" define
  809. IF (ASSIMP_BUILD_NONFREE_C4D_IMPORTER)
  810. SET( SOURCE_FILES ${SOURCE_FILES} ${C4D_SRCS})
  811. INCLUDE_DIRECTORIES(${C4D_INCLUDES})
  812. ELSE (ASSIMP_BUILD_NONFREE_C4D_IMPORTER)
  813. add_definitions(-DASSIMP_BUILD_NO_C4D_IMPORTER)
  814. ENDIF (ASSIMP_BUILD_NONFREE_C4D_IMPORTER)
  815. set (TARGET_NAME Assimp)
  816. list (APPEND TARGET_PROPERTIES XCODE_ATTRIBUTE_ONLY_ACTIVE_ARCH YES) # Since we only build AssetImporter as a single-arch native tool, there is no point to build Assimp as universal binary library
  817. setup_library ()
  818. # When performing Xcode CI build suppress all the warnings for 3rd party libraries because there are just too many of them
  819. if (XCODE AND DEFINED ENV{CI})
  820. set (CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -w")
  821. set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -w")
  822. endif ()