CMakeLists.txt 23 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967
  1. # Open Asset Import Library (assimp)
  2. # ----------------------------------------------------------------------
  3. #
  4. # Copyright (c) 2006-2016, 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. # Listing and grouping of all the source files.
  39. # 1) Set the file lists for each component
  40. # 2) Create a Source Group for each component, for IDE project orginization
  41. # 3) Add libassimp using the file lists (eliminates duplication of file names between
  42. # source groups and library command)
  43. #
  44. cmake_minimum_required( VERSION 2.6 )
  45. SET( HEADER_PATH ../include/assimp )
  46. SET( COMPILER_HEADERS
  47. ${HEADER_PATH}/Compiler/pushpack1.h
  48. ${HEADER_PATH}/Compiler/poppack1.h
  49. ${HEADER_PATH}/Compiler/pstdint.h
  50. )
  51. SOURCE_GROUP( Compiler FILES ${COMPILER_HEADERS})
  52. SET( PUBLIC_HEADERS
  53. ${HEADER_PATH}/anim.h
  54. ${HEADER_PATH}/ai_assert.h
  55. ${HEADER_PATH}/camera.h
  56. ${HEADER_PATH}/color4.h
  57. ${HEADER_PATH}/color4.inl
  58. ${HEADER_PATH}/config.h
  59. ${HEADER_PATH}/defs.h
  60. ${HEADER_PATH}/cfileio.h
  61. ${HEADER_PATH}/light.h
  62. ${HEADER_PATH}/material.h
  63. ${HEADER_PATH}/material.inl
  64. ${HEADER_PATH}/matrix3x3.h
  65. ${HEADER_PATH}/matrix3x3.inl
  66. ${HEADER_PATH}/matrix4x4.h
  67. ${HEADER_PATH}/matrix4x4.inl
  68. ${HEADER_PATH}/mesh.h
  69. ${HEADER_PATH}/postprocess.h
  70. ${HEADER_PATH}/quaternion.h
  71. ${HEADER_PATH}/quaternion.inl
  72. ${HEADER_PATH}/scene.h
  73. ${HEADER_PATH}/metadata.h
  74. ${HEADER_PATH}/texture.h
  75. ${HEADER_PATH}/types.h
  76. ${HEADER_PATH}/vector2.h
  77. ${HEADER_PATH}/vector2.inl
  78. ${HEADER_PATH}/vector3.h
  79. ${HEADER_PATH}/vector3.inl
  80. ${HEADER_PATH}/version.h
  81. ${HEADER_PATH}/cimport.h
  82. ${HEADER_PATH}/importerdesc.h
  83. ${HEADER_PATH}/Importer.hpp
  84. ${HEADER_PATH}/DefaultLogger.hpp
  85. ${HEADER_PATH}/ProgressHandler.hpp
  86. ${HEADER_PATH}/IOStream.hpp
  87. ${HEADER_PATH}/IOSystem.hpp
  88. ${HEADER_PATH}/Logger.hpp
  89. ${HEADER_PATH}/LogStream.hpp
  90. ${HEADER_PATH}/NullLogger.hpp
  91. ${HEADER_PATH}/cexport.h
  92. ${HEADER_PATH}/Exporter.hpp
  93. )
  94. SET( Core_SRCS
  95. Assimp.cpp
  96. )
  97. SET( Logging_SRCS
  98. ${HEADER_PATH}/DefaultLogger.hpp
  99. ${HEADER_PATH}/LogStream.hpp
  100. ${HEADER_PATH}/Logger.hpp
  101. ${HEADER_PATH}/NullLogger.hpp
  102. Win32DebugLogStream.h
  103. DefaultLogger.cpp
  104. FileLogStream.h
  105. StdOStreamLogStream.h
  106. )
  107. SOURCE_GROUP(Logging FILES ${Logging_SRCS})
  108. SET( Common_SRCS
  109. fast_atof.h
  110. qnan.h
  111. BaseImporter.cpp
  112. BaseImporter.h
  113. BaseProcess.cpp
  114. BaseProcess.h
  115. Importer.h
  116. ScenePrivate.h
  117. PostStepRegistry.cpp
  118. ImporterRegistry.cpp
  119. ByteSwapper.h
  120. DefaultProgressHandler.h
  121. DefaultIOStream.cpp
  122. DefaultIOStream.h
  123. DefaultIOSystem.cpp
  124. DefaultIOSystem.h
  125. CInterfaceIOWrapper.cpp
  126. CInterfaceIOWrapper.h
  127. Hash.h
  128. Importer.cpp
  129. IFF.h
  130. MemoryIOWrapper.h
  131. ParsingUtils.h
  132. StreamReader.h
  133. StreamWriter.h
  134. StringComparison.h
  135. StringUtils.h
  136. SGSpatialSort.cpp
  137. SGSpatialSort.h
  138. VertexTriangleAdjacency.cpp
  139. VertexTriangleAdjacency.h
  140. GenericProperty.h
  141. SpatialSort.cpp
  142. SpatialSort.h
  143. SceneCombiner.cpp
  144. SceneCombiner.h
  145. ScenePreprocessor.cpp
  146. ScenePreprocessor.h
  147. SkeletonMeshBuilder.cpp
  148. SkeletonMeshBuilder.h
  149. SplitByBoneCountProcess.cpp
  150. SplitByBoneCountProcess.h
  151. SmoothingGroups.h
  152. StandardShapes.cpp
  153. StandardShapes.h
  154. TargetAnimation.cpp
  155. TargetAnimation.h
  156. RemoveComments.cpp
  157. RemoveComments.h
  158. Subdivision.cpp
  159. Subdivision.h
  160. scene.cpp
  161. Vertex.h
  162. LineSplitter.h
  163. TinyFormatter.h
  164. Profiler.h
  165. LogAux.h
  166. Bitmap.cpp
  167. Bitmap.h
  168. XMLTools.h
  169. Version.cpp
  170. IOStreamBuffer.h
  171. CreateAnimMesh.h
  172. CreateAnimMesh.cpp
  173. )
  174. SOURCE_GROUP(Common FILES ${Common_SRCS})
  175. IF ( ASSIMP_BUILD_NONFREE_C4D_IMPORTER )
  176. SET( C4D_SRCS
  177. C4DImporter.cpp
  178. C4DImporter.h
  179. )
  180. SOURCE_GROUP( C4D FILES ${C4D_SRCS})
  181. ENDIF ( ASSIMP_BUILD_NONFREE_C4D_IMPORTER )
  182. # if this variable is set to TRUE, the user can manually disable importers by setting
  183. # ASSIMP_BUILD_XXX_IMPORTER to FALSE for each importer
  184. # if this variable is set to FALSE, the user can manually enable importers by setting
  185. # ASSIMP_BUILD_XXX_IMPORTER to TRUE for each importer
  186. OPTION(ASSIMP_BUILD_ALL_IMPORTERS_BY_DEFAULT "default value of all ASSIMP_BUILD_XXX_IMPORTER value" TRUE)
  187. # macro to add the CMake Option ADD_ASSIMP_IMPORTER_<name> which enables compile of loader
  188. # this way selective loaders can be compiled (reduces filesize + compile time)
  189. MACRO(ADD_ASSIMP_IMPORTER name)
  190. OPTION(ASSIMP_BUILD_${name}_IMPORTER "build the ${name} importer" ${ASSIMP_BUILD_ALL_IMPORTERS_BY_DEFAULT})
  191. IF(ASSIMP_BUILD_${name}_IMPORTER)
  192. LIST(APPEND ASSIMP_LOADER_SRCS ${ARGN})
  193. SET(ASSIMP_IMPORTERS_ENABLED "${ASSIMP_IMPORTERS_ENABLED} ${name}")
  194. SET(${name}_SRCS ${ARGN})
  195. SOURCE_GROUP(${name} FILES ${ARGN})
  196. ELSE()
  197. SET(${name}_SRC "")
  198. SET(ASSIMP_IMPORTERS_DISABLED "${ASSIMP_IMPORTERS_DISABLED} ${name}")
  199. add_definitions(-DASSIMP_BUILD_NO_${name}_IMPORTER)
  200. add_definitions(-DASSIMP_BUILD_NO_${name}_EXPORTER)
  201. ENDIF()
  202. ENDMACRO()
  203. SET(ASSIMP_LOADER_SRCS "")
  204. SET(ASSIMP_IMPORTERS_ENABLED "") # list of enabled importers
  205. SET(ASSIMP_IMPORTERS_DISABLED "") # disabled list (used to print)
  206. ADD_ASSIMP_IMPORTER( AMF
  207. AMFImporter.hpp
  208. AMFImporter_Macro.hpp
  209. AMFImporter_Node.hpp
  210. AMFImporter.cpp
  211. AMFImporter_Geometry.cpp
  212. AMFImporter_Material.cpp
  213. AMFImporter_Postprocess.cpp
  214. )
  215. ADD_ASSIMP_IMPORTER( 3DS
  216. 3DSConverter.cpp
  217. 3DSHelper.h
  218. 3DSLoader.cpp
  219. 3DSLoader.h
  220. 3DSExporter.h
  221. 3DSExporter.cpp
  222. )
  223. ADD_ASSIMP_IMPORTER( AC
  224. ACLoader.cpp
  225. ACLoader.h
  226. )
  227. ADD_ASSIMP_IMPORTER( ASE
  228. ASELoader.cpp
  229. ASELoader.h
  230. ASEParser.cpp
  231. ASEParser.h
  232. )
  233. ADD_ASSIMP_IMPORTER( ASSBIN
  234. AssbinExporter.h
  235. AssbinExporter.cpp
  236. AssbinLoader.h
  237. AssbinLoader.cpp
  238. )
  239. ADD_ASSIMP_IMPORTER( ASSXML
  240. AssxmlExporter.h
  241. AssxmlExporter.cpp
  242. )
  243. ADD_ASSIMP_IMPORTER( B3D
  244. B3DImporter.cpp
  245. B3DImporter.h
  246. )
  247. ADD_ASSIMP_IMPORTER( BVH
  248. BVHLoader.cpp
  249. BVHLoader.h
  250. )
  251. ADD_ASSIMP_IMPORTER( COLLADA
  252. ColladaHelper.h
  253. ColladaLoader.cpp
  254. ColladaLoader.h
  255. ColladaParser.cpp
  256. ColladaParser.h
  257. ColladaExporter.h
  258. ColladaExporter.cpp
  259. )
  260. ADD_ASSIMP_IMPORTER( DXF
  261. DXFLoader.cpp
  262. DXFLoader.h
  263. DXFHelper.h
  264. )
  265. ADD_ASSIMP_IMPORTER( CSM
  266. CSMLoader.cpp
  267. CSMLoader.h
  268. )
  269. ADD_ASSIMP_IMPORTER( HMP
  270. HMPFileData.h
  271. HMPLoader.cpp
  272. HMPLoader.h
  273. HalfLifeFileData.h
  274. )
  275. ADD_ASSIMP_IMPORTER( IRRMESH
  276. IRRMeshLoader.cpp
  277. IRRMeshLoader.h
  278. IRRShared.cpp
  279. IRRShared.h
  280. )
  281. ADD_ASSIMP_IMPORTER( IRR
  282. IRRLoader.cpp
  283. IRRLoader.h
  284. IRRShared.cpp
  285. IRRShared.h
  286. )
  287. ADD_ASSIMP_IMPORTER( LWO
  288. LWOAnimation.cpp
  289. LWOAnimation.h
  290. LWOBLoader.cpp
  291. LWOFileData.h
  292. LWOLoader.cpp
  293. LWOLoader.h
  294. LWOMaterial.cpp
  295. )
  296. ADD_ASSIMP_IMPORTER( LWS
  297. LWSLoader.cpp
  298. LWSLoader.h
  299. )
  300. ADD_ASSIMP_IMPORTER( MD2
  301. MD2FileData.h
  302. MD2Loader.cpp
  303. MD2Loader.h
  304. MD2NormalTable.h
  305. )
  306. ADD_ASSIMP_IMPORTER( MD3
  307. MD3FileData.h
  308. MD3Loader.cpp
  309. MD3Loader.h
  310. )
  311. ADD_ASSIMP_IMPORTER( MD5
  312. MD5Loader.cpp
  313. MD5Loader.h
  314. MD5Parser.cpp
  315. MD5Parser.h
  316. )
  317. ADD_ASSIMP_IMPORTER( MDC
  318. MDCFileData.h
  319. MDCLoader.cpp
  320. MDCLoader.h
  321. MDCNormalTable.h
  322. )
  323. ADD_ASSIMP_IMPORTER( MDL
  324. MDLDefaultColorMap.h
  325. MDLFileData.h
  326. MDLLoader.cpp
  327. MDLLoader.h
  328. MDLMaterialLoader.cpp
  329. )
  330. SET( MaterialSystem_SRCS
  331. MaterialSystem.cpp
  332. MaterialSystem.h
  333. )
  334. SOURCE_GROUP( MaterialSystem FILES ${MaterialSystem_SRCS})
  335. ADD_ASSIMP_IMPORTER( NFF
  336. NFFLoader.cpp
  337. NFFLoader.h
  338. )
  339. ADD_ASSIMP_IMPORTER( NDO
  340. NDOLoader.cpp
  341. NDOLoader.h
  342. )
  343. ADD_ASSIMP_IMPORTER( OFF
  344. OFFLoader.cpp
  345. OFFLoader.h
  346. )
  347. ADD_ASSIMP_IMPORTER( OBJ
  348. ObjFileData.h
  349. ObjFileImporter.cpp
  350. ObjFileImporter.h
  351. ObjFileMtlImporter.cpp
  352. ObjFileMtlImporter.h
  353. ObjFileParser.cpp
  354. ObjFileParser.h
  355. ObjTools.h
  356. ObjExporter.h
  357. ObjExporter.cpp
  358. )
  359. ADD_ASSIMP_IMPORTER( OGRE
  360. OgreImporter.h
  361. OgreStructs.h
  362. OgreParsingUtils.h
  363. OgreBinarySerializer.h
  364. OgreXmlSerializer.h
  365. OgreImporter.cpp
  366. OgreStructs.cpp
  367. OgreBinarySerializer.cpp
  368. OgreXmlSerializer.cpp
  369. OgreMaterial.cpp
  370. )
  371. ADD_ASSIMP_IMPORTER( OPENGEX
  372. OpenGEXExporter.cpp
  373. OpenGEXExporter.h
  374. OpenGEXImporter.cpp
  375. OpenGEXImporter.h
  376. OpenGEXStructs.h
  377. )
  378. ADD_ASSIMP_IMPORTER( PLY
  379. PlyLoader.cpp
  380. PlyLoader.h
  381. PlyParser.cpp
  382. PlyParser.h
  383. PlyExporter.cpp
  384. PlyExporter.h
  385. )
  386. ADD_ASSIMP_IMPORTER( MS3D
  387. MS3DLoader.cpp
  388. MS3DLoader.h
  389. )
  390. ADD_ASSIMP_IMPORTER( COB
  391. COBLoader.cpp
  392. COBLoader.h
  393. COBScene.h
  394. )
  395. ADD_ASSIMP_IMPORTER( BLEND
  396. BlenderLoader.cpp
  397. BlenderLoader.h
  398. BlenderDNA.cpp
  399. BlenderDNA.h
  400. BlenderDNA.inl
  401. BlenderScene.cpp
  402. BlenderScene.h
  403. BlenderSceneGen.h
  404. BlenderIntermediate.h
  405. BlenderModifier.h
  406. BlenderModifier.cpp
  407. BlenderBMesh.h
  408. BlenderBMesh.cpp
  409. BlenderTessellator.h
  410. BlenderTessellator.cpp
  411. )
  412. ADD_ASSIMP_IMPORTER( IFC
  413. IFCLoader.cpp
  414. IFCLoader.h
  415. IFCReaderGen1.cpp
  416. IFCReaderGen2.cpp
  417. IFCReaderGen.h
  418. IFCUtil.h
  419. IFCUtil.cpp
  420. IFCGeometry.cpp
  421. IFCMaterial.cpp
  422. IFCProfile.cpp
  423. IFCCurve.cpp
  424. IFCBoolean.cpp
  425. IFCOpenings.cpp
  426. STEPFile.h
  427. STEPFileReader.h
  428. STEPFileReader.cpp
  429. STEPFileEncoding.cpp
  430. STEPFileEncoding.h
  431. )
  432. if (ASSIMP_BUILD_IFC_IMPORTER)
  433. if (MSVC)
  434. set_source_files_properties(IFCReaderGen1.cpp IFCReaderGen2.cpp PROPERTIES COMPILE_FLAGS "/bigobj")
  435. elseif(CMAKE_COMPILER_IS_MINGW)
  436. set_source_files_properties(IFCReaderGen1.cpp IFCReaderGen2.cpp PROPERTIES COMPILE_FLAGS "-O2 -Wa,-mbig-obj")
  437. endif()
  438. endif (ASSIMP_BUILD_IFC_IMPORTER)
  439. ADD_ASSIMP_IMPORTER( XGL
  440. XGLLoader.cpp
  441. XGLLoader.h
  442. )
  443. ADD_ASSIMP_IMPORTER( FBX
  444. FBXImporter.cpp
  445. FBXCompileConfig.h
  446. FBXImporter.h
  447. FBXParser.cpp
  448. FBXParser.h
  449. FBXTokenizer.cpp
  450. FBXTokenizer.h
  451. FBXImportSettings.h
  452. FBXConverter.h
  453. FBXConverter.cpp
  454. FBXUtil.h
  455. FBXUtil.cpp
  456. FBXDocument.h
  457. FBXDocument.cpp
  458. FBXProperties.h
  459. FBXProperties.cpp
  460. FBXMeshGeometry.h
  461. FBXMeshGeometry.cpp
  462. FBXMaterial.cpp
  463. FBXModel.cpp
  464. FBXAnimation.cpp
  465. FBXNodeAttribute.cpp
  466. FBXDeformer.cpp
  467. FBXBinaryTokenizer.cpp
  468. FBXDocumentUtil.cpp
  469. )
  470. SET( PostProcessing_SRCS
  471. CalcTangentsProcess.cpp
  472. CalcTangentsProcess.h
  473. ComputeUVMappingProcess.cpp
  474. ComputeUVMappingProcess.h
  475. ConvertToLHProcess.cpp
  476. ConvertToLHProcess.h
  477. FindDegenerates.cpp
  478. FindDegenerates.h
  479. FindInstancesProcess.cpp
  480. FindInstancesProcess.h
  481. FindInvalidDataProcess.cpp
  482. FindInvalidDataProcess.h
  483. FixNormalsStep.cpp
  484. FixNormalsStep.h
  485. GenFaceNormalsProcess.cpp
  486. GenFaceNormalsProcess.h
  487. GenVertexNormalsProcess.cpp
  488. GenVertexNormalsProcess.h
  489. PretransformVertices.cpp
  490. PretransformVertices.h
  491. ImproveCacheLocality.cpp
  492. ImproveCacheLocality.h
  493. JoinVerticesProcess.cpp
  494. JoinVerticesProcess.h
  495. LimitBoneWeightsProcess.cpp
  496. LimitBoneWeightsProcess.h
  497. RemoveRedundantMaterials.cpp
  498. RemoveRedundantMaterials.h
  499. RemoveVCProcess.cpp
  500. RemoveVCProcess.h
  501. SortByPTypeProcess.cpp
  502. SortByPTypeProcess.h
  503. SplitLargeMeshes.cpp
  504. SplitLargeMeshes.h
  505. TextureTransform.cpp
  506. TextureTransform.h
  507. TriangulateProcess.cpp
  508. TriangulateProcess.h
  509. ValidateDataStructure.cpp
  510. ValidateDataStructure.h
  511. OptimizeGraph.cpp
  512. OptimizeGraph.h
  513. OptimizeMeshes.cpp
  514. OptimizeMeshes.h
  515. DeboneProcess.cpp
  516. DeboneProcess.h
  517. ProcessHelper.h
  518. ProcessHelper.cpp
  519. PolyTools.h
  520. MakeVerboseFormat.cpp
  521. MakeVerboseFormat.h
  522. )
  523. SOURCE_GROUP( PostProcessing FILES ${PostProcessing_SRCS})
  524. ADD_ASSIMP_IMPORTER( Q3D
  525. Q3DLoader.cpp
  526. Q3DLoader.h
  527. )
  528. ADD_ASSIMP_IMPORTER( Q3BSP
  529. Q3BSPFileData.h
  530. Q3BSPFileParser.h
  531. Q3BSPFileParser.cpp
  532. Q3BSPFileImporter.h
  533. Q3BSPFileImporter.cpp
  534. Q3BSPZipArchive.h
  535. Q3BSPZipArchive.cpp
  536. )
  537. ADD_ASSIMP_IMPORTER( RAW
  538. RawLoader.cpp
  539. RawLoader.h
  540. )
  541. ADD_ASSIMP_IMPORTER( SIB
  542. SIBImporter.cpp
  543. SIBImporter.h
  544. )
  545. ADD_ASSIMP_IMPORTER( SMD
  546. SMDLoader.cpp
  547. SMDLoader.h
  548. )
  549. ADD_ASSIMP_IMPORTER( STL
  550. STLLoader.cpp
  551. STLLoader.h
  552. STLExporter.h
  553. STLExporter.cpp
  554. )
  555. ADD_ASSIMP_IMPORTER( TERRAGEN
  556. TerragenLoader.cpp
  557. TerragenLoader.h
  558. )
  559. ADD_ASSIMP_IMPORTER( 3D
  560. UnrealLoader.cpp
  561. UnrealLoader.h
  562. )
  563. ADD_ASSIMP_IMPORTER( X
  564. XFileHelper.h
  565. XFileImporter.cpp
  566. XFileImporter.h
  567. XFileParser.cpp
  568. XFileParser.h
  569. XFileExporter.h
  570. XFileExporter.cpp
  571. )
  572. ADD_ASSIMP_IMPORTER(X3D
  573. X3DExporter.cpp
  574. X3DExporter.hpp
  575. X3DImporter.cpp
  576. X3DImporter.hpp
  577. X3DImporter_Geometry2D.cpp
  578. X3DImporter_Geometry3D.cpp
  579. X3DImporter_Group.cpp
  580. X3DImporter_Light.cpp
  581. X3DImporter_Macro.hpp
  582. X3DImporter_Metadata.cpp
  583. X3DImporter_Networking.cpp
  584. X3DImporter_Node.hpp
  585. X3DImporter_Postprocess.cpp
  586. X3DImporter_Rendering.cpp
  587. X3DImporter_Shape.cpp
  588. X3DImporter_Texturing.cpp
  589. )
  590. ADD_ASSIMP_IMPORTER( GLTF
  591. glTFAsset.h
  592. glTFAsset.inl
  593. glTFAssetWriter.h
  594. glTFAssetWriter.inl
  595. glTFImporter.cpp
  596. glTFImporter.h
  597. glTFExporter.h
  598. glTFExporter.cpp
  599. )
  600. ADD_ASSIMP_IMPORTER( 3MF
  601. D3MFImporter.h
  602. D3MFImporter.cpp
  603. D3MFOpcPackage.h
  604. D3MFOpcPackage.cpp
  605. )
  606. ADD_ASSIMP_IMPORTER( MMD
  607. MMDCpp14.h
  608. MMDImporter.cpp
  609. MMDImporter.h
  610. MMDPmdParser.h
  611. MMDPmxParser.h
  612. MMDPmxParser.cpp
  613. MMDVmdParser.h
  614. )
  615. SET( Step_SRCS
  616. StepExporter.h
  617. StepExporter.cpp
  618. )
  619. SOURCE_GROUP( Step FILES ${Step_SRCS})
  620. SET( Exporter_SRCS
  621. Exporter.cpp
  622. AssimpCExport.cpp
  623. BlobIOSystem.h
  624. )
  625. SOURCE_GROUP( Exporter FILES ${Exporter_SRCS})
  626. SET( Extra_SRCS
  627. MD4FileData.h
  628. )
  629. SOURCE_GROUP( Extra FILES ${Extra_SRCS})
  630. SET( IrrXML_SRCS
  631. irrXMLWrapper.h
  632. ../contrib/irrXML/CXMLReaderImpl.h
  633. ../contrib/irrXML/heapsort.h
  634. ../contrib/irrXML/irrArray.h
  635. ../contrib/irrXML/irrString.h
  636. ../contrib/irrXML/irrTypes.h
  637. ../contrib/irrXML/irrXML.cpp
  638. ../contrib/irrXML/irrXML.h
  639. )
  640. SOURCE_GROUP( IrrXML FILES ${IrrXML_SRCS})
  641. SET( ConvertUTF_SRCS
  642. ../contrib/ConvertUTF/ConvertUTF.h
  643. ../contrib/ConvertUTF/ConvertUTF.c
  644. )
  645. SOURCE_GROUP( ConvertUTF FILES ${ConvertUTF_SRCS})
  646. SET( Clipper_SRCS
  647. ../contrib/clipper/clipper.hpp
  648. ../contrib/clipper/clipper.cpp
  649. )
  650. SOURCE_GROUP( Clipper FILES ${Clipper_SRCS})
  651. SET( Poly2Tri_SRCS
  652. ../contrib/poly2tri/poly2tri/common/shapes.cc
  653. ../contrib/poly2tri/poly2tri/common/shapes.h
  654. ../contrib/poly2tri/poly2tri/common/utils.h
  655. ../contrib/poly2tri/poly2tri/sweep/advancing_front.h
  656. ../contrib/poly2tri/poly2tri/sweep/advancing_front.cc
  657. ../contrib/poly2tri/poly2tri/sweep/cdt.cc
  658. ../contrib/poly2tri/poly2tri/sweep/cdt.h
  659. ../contrib/poly2tri/poly2tri/sweep/sweep.cc
  660. ../contrib/poly2tri/poly2tri/sweep/sweep.h
  661. ../contrib/poly2tri/poly2tri/sweep/sweep_context.cc
  662. ../contrib/poly2tri/poly2tri/sweep/sweep_context.h
  663. )
  664. SOURCE_GROUP( Poly2Tri FILES ${Poly2Tri_SRCS})
  665. SET( unzip_SRCS
  666. ../contrib/unzip/crypt.h
  667. ../contrib/unzip/ioapi.c
  668. ../contrib/unzip/ioapi.h
  669. ../contrib/unzip/unzip.c
  670. ../contrib/unzip/unzip.h
  671. )
  672. SOURCE_GROUP( unzip FILES ${unzip_SRCS})
  673. SET ( openddl_parser_SRCS
  674. ../contrib/openddlparser/code/OpenDDLParser.cpp
  675. ../contrib/openddlparser/code/DDLNode.cpp
  676. ../contrib/openddlparser/code/OpenDDLCommon.cpp
  677. ../contrib/openddlparser/code/OpenDDLExport.cpp
  678. ../contrib/openddlparser/code/Value.cpp
  679. ../contrib/openddlparser/include/openddlparser/OpenDDLParser.h
  680. ../contrib/openddlparser/include/openddlparser/OpenDDLParserUtils.h
  681. ../contrib/openddlparser/include/openddlparser/OpenDDLCommon.h
  682. ../contrib/openddlparser/include/openddlparser/OpenDDLExport.h
  683. ../contrib/openddlparser/include/openddlparser/DDLNode.h
  684. ../contrib/openddlparser/include/openddlparser/Value.h
  685. )
  686. SOURCE_GROUP( openddl_parser FILES ${openddl_parser_SRCS})
  687. SET ( open3dgc_SRCS
  688. ../contrib/Open3DGC/o3dgcAdjacencyInfo.h
  689. ../contrib/Open3DGC/o3dgcArithmeticCodec.cpp
  690. ../contrib/Open3DGC/o3dgcArithmeticCodec.h
  691. ../contrib/Open3DGC/o3dgcBinaryStream.h
  692. ../contrib/Open3DGC/o3dgcCommon.h
  693. ../contrib/Open3DGC/o3dgcDVEncodeParams.h
  694. ../contrib/Open3DGC/o3dgcDynamicVectorDecoder.cpp
  695. ../contrib/Open3DGC/o3dgcDynamicVectorDecoder.h
  696. ../contrib/Open3DGC/o3dgcDynamicVectorEncoder.cpp
  697. ../contrib/Open3DGC/o3dgcDynamicVectorEncoder.h
  698. ../contrib/Open3DGC/o3dgcDynamicVector.h
  699. ../contrib/Open3DGC/o3dgcFIFO.h
  700. ../contrib/Open3DGC/o3dgcIndexedFaceSet.h
  701. ../contrib/Open3DGC/o3dgcIndexedFaceSet.inl
  702. ../contrib/Open3DGC/o3dgcSC3DMCDecoder.h
  703. ../contrib/Open3DGC/o3dgcSC3DMCDecoder.inl
  704. ../contrib/Open3DGC/o3dgcSC3DMCEncodeParams.h
  705. ../contrib/Open3DGC/o3dgcSC3DMCEncoder.h
  706. ../contrib/Open3DGC/o3dgcSC3DMCEncoder.inl
  707. ../contrib/Open3DGC/o3dgcTimer.h
  708. ../contrib/Open3DGC/o3dgcTools.cpp
  709. ../contrib/Open3DGC/o3dgcTriangleFans.cpp
  710. ../contrib/Open3DGC/o3dgcTriangleFans.h
  711. ../contrib/Open3DGC/o3dgcTriangleListDecoder.h
  712. ../contrib/Open3DGC/o3dgcTriangleListDecoder.inl
  713. ../contrib/Open3DGC/o3dgcTriangleListEncoder.h
  714. ../contrib/Open3DGC/o3dgcTriangleListEncoder.inl
  715. ../contrib/Open3DGC/o3dgcVector.h
  716. ../contrib/Open3DGC/o3dgcVector.inl
  717. )
  718. SOURCE_GROUP( open3dgc FILES ${open3dgc_SRCS})
  719. # Check dependencies for glTF importer with Open3DGC-compression.
  720. # RT-extensions is used in "contrib/Open3DGC/o3dgcTimer.h" for collecting statistics. Pointed file
  721. # has implementation for different platforms: WIN32, __MACH__ and other ("else" block).
  722. FIND_PACKAGE(RT QUIET)
  723. IF (RT_FOUND OR MSVC)
  724. SET( ASSIMP_IMPORTER_GLTF_USE_OPEN3DGC 1 )
  725. ADD_DEFINITIONS( -DASSIMP_IMPORTER_GLTF_USE_OPEN3DGC=1 )
  726. ELSE ()
  727. SET (open3dgc_SRCS "")
  728. MESSAGE (INFO " RT-extension not found. glTF import/export will be built without Open3DGC-compression.")
  729. #!TODO: off course is better to remove statistics timers from o3dgc codec. Or propose to choose what to use.
  730. ENDIF ()
  731. INCLUDE_DIRECTORIES( "../contrib/rapidjson/include" )
  732. INCLUDE_DIRECTORIES( "../contrib" )
  733. # VC2010 fixes
  734. if(MSVC10)
  735. option( VC10_STDINT_FIX "Fix for VC10 Compiler regarding pstdint.h redefinition errors" OFF )
  736. if( VC10_STDINT_FIX )
  737. ADD_DEFINITIONS( -D_STDINT )
  738. endif( VC10_STDINT_FIX )
  739. endif(MSVC10)
  740. ADD_DEFINITIONS( -DASSIMP_BUILD_DLL_EXPORT )
  741. if ( MSVC )
  742. ADD_DEFINITIONS( -D_SCL_SECURE_NO_WARNINGS )
  743. ADD_DEFINITIONS( -D_CRT_SECURE_NO_WARNINGS )
  744. endif ( MSVC )
  745. if (UNZIP_FOUND)
  746. SET (unzip_compile_SRCS "")
  747. else (UNZIP_FOUND)
  748. SET (unzip_compile_SRCS ${unzip_SRCS})
  749. INCLUDE_DIRECTORIES( "../contrib/unzip/" )
  750. endif (UNZIP_FOUND)
  751. MESSAGE(STATUS "Enabled formats:${ASSIMP_IMPORTERS_ENABLED}")
  752. MESSAGE(STATUS "Disabled formats:${ASSIMP_IMPORTERS_DISABLED}")
  753. SET( assimp_src
  754. # Assimp Files
  755. ${Core_SRCS}
  756. ${Common_SRCS}
  757. ${Logging_SRCS}
  758. ${Exporter_SRCS}
  759. ${PostProcessing_SRCS}
  760. ${MaterialSystem_SRCS}
  761. ${Step_SRCS}
  762. # Model Support
  763. ${ASSIMP_LOADER_SRCS}
  764. # Third-party libraries
  765. ${IrrXML_SRCS}
  766. ${ConvertUTF_SRCS}
  767. ${unzip_compile_SRCS}
  768. ${Poly2Tri_SRCS}
  769. ${Clipper_SRCS}
  770. ${openddl_parser_SRCS}
  771. ${open3dgc_SRCS}
  772. # Necessary to show the headers in the project when using the VC++ generator:
  773. ${PUBLIC_HEADERS}
  774. ${COMPILER_HEADERS}
  775. )
  776. ADD_DEFINITIONS( -DOPENDDLPARSER_BUILD )
  777. INCLUDE_DIRECTORIES(
  778. ../contrib/openddlparser/include
  779. )
  780. IF (ASSIMP_BUILD_NONFREE_C4D_IMPORTER)
  781. SET( assimp_src ${assimp_src} ${C4D_SRCS})
  782. INCLUDE_DIRECTORIES(${C4D_INCLUDES})
  783. ENDIF (ASSIMP_BUILD_NONFREE_C4D_IMPORTER)
  784. INCLUDE_DIRECTORIES(${ICU_INCLUDE_DIRS})
  785. ADD_LIBRARY( assimp ${assimp_src} )
  786. TARGET_LINK_LIBRARIES(assimp ${ZLIB_LIBRARIES} ${OPENDDL_PARSER_LIBRARIES} ${ICU_LIBRARIES} )
  787. if(ANDROID AND ASSIMP_ANDROID_JNIIOSYSTEM)
  788. set(ASSIMP_ANDROID_JNIIOSYSTEM_PATH port/AndroidJNI)
  789. add_subdirectory(../${ASSIMP_ANDROID_JNIIOSYSTEM_PATH}/ ../${ASSIMP_ANDROID_JNIIOSYSTEM_PATH}/)
  790. target_link_libraries(assimp android_jniiosystem)
  791. endif(ANDROID AND ASSIMP_ANDROID_JNIIOSYSTEM)
  792. IF (ASSIMP_BUILD_NONFREE_C4D_IMPORTER)
  793. TARGET_LINK_LIBRARIES(assimp optimized ${C4D_RELEASE_LIBRARIES})
  794. TARGET_LINK_LIBRARIES(assimp debug ${C4D_DEBUG_LIBRARIES})
  795. TARGET_LINK_LIBRARIES(assimp ${C4D_EXTRA_LIBRARIES})
  796. ENDIF (ASSIMP_BUILD_NONFREE_C4D_IMPORTER)
  797. if( MSVC )
  798. # in order to prevent DLL hell, each of the DLLs have to be suffixed with the major version and msvc prefix
  799. if( MSVC70 OR MSVC71 )
  800. set(MSVC_PREFIX "vc70")
  801. elseif( MSVC80 )
  802. set(MSVC_PREFIX "vc80")
  803. elseif( MSVC90 )
  804. set(MSVC_PREFIX "vc90")
  805. elseif( MSVC10 )
  806. set(MSVC_PREFIX "vc100")
  807. elseif( MSVC11 )
  808. set(MSVC_PREFIX "vc110")
  809. elseif( MSVC12 )
  810. set(MSVC_PREFIX "vc120")
  811. elseif( MSVC14 )
  812. set(MSVC_PREFIX "vc140")
  813. else()
  814. set(MSVC_PREFIX "vc150")
  815. endif()
  816. set(LIBRARY_SUFFIX "${ASSIMP_LIBRARY_SUFFIX}-${MSVC_PREFIX}-mt" CACHE STRING "the suffix for the assimp windows library")
  817. endif()
  818. SET_TARGET_PROPERTIES( assimp PROPERTIES
  819. VERSION ${ASSIMP_VERSION}
  820. SOVERSION ${ASSIMP_SOVERSION} # use full version
  821. OUTPUT_NAME assimp${LIBRARY_SUFFIX}
  822. )
  823. if (APPLE)
  824. SET_TARGET_PROPERTIES( assimp PROPERTIES INSTALL_NAME_DIR "${CMAKE_INSTALL_PREFIX}/${ASSIMP_LIB_INSTALL_DIR}")
  825. endif()
  826. # Build against external unzip, or add ../contrib/unzip so
  827. # assimp can #include "unzip.h"
  828. if (UNZIP_FOUND)
  829. INCLUDE_DIRECTORIES(${UNZIP_INCLUDE_DIRS})
  830. TARGET_LINK_LIBRARIES(assimp ${UNZIP_LIBRARIES})
  831. else (UNZIP_FOUND)
  832. INCLUDE_DIRECTORIES("../")
  833. endif (UNZIP_FOUND)
  834. # Add RT-extension library for glTF importer with Open3DGC-compression.
  835. IF (RT_FOUND AND ASSIMP_IMPORTER_GLTF_USE_OPEN3DGC)
  836. TARGET_LINK_LIBRARIES(assimp ${RT_LIBRARY})
  837. ENDIF (RT_FOUND AND ASSIMP_IMPORTER_GLTF_USE_OPEN3DGC)
  838. INSTALL( TARGETS assimp
  839. LIBRARY DESTINATION ${ASSIMP_LIB_INSTALL_DIR}
  840. ARCHIVE DESTINATION ${ASSIMP_LIB_INSTALL_DIR}
  841. RUNTIME DESTINATION ${ASSIMP_BIN_INSTALL_DIR}
  842. COMPONENT ${LIBASSIMP_COMPONENT})
  843. INSTALL( FILES ${PUBLIC_HEADERS} DESTINATION ${ASSIMP_INCLUDE_INSTALL_DIR}/assimp COMPONENT assimp-dev)
  844. INSTALL( FILES ${COMPILER_HEADERS} DESTINATION ${ASSIMP_INCLUDE_INSTALL_DIR}/assimp/Compiler COMPONENT assimp-dev)
  845. if (ASSIMP_ANDROID_JNIIOSYSTEM)
  846. INSTALL(FILES ${HEADER_PATH}/${ASSIMP_ANDROID_JNIIOSYSTEM_PATH}/AndroidJNIIOSystem.h
  847. DESTINATION ${ASSIMP_INCLUDE_INSTALL_DIR}
  848. COMPONENT assimp-dev)
  849. endif(ASSIMP_ANDROID_JNIIOSYSTEM)
  850. if(MSVC AND ASSIMP_INSTALL_PDB)
  851. install(FILES ${Assimp_BINARY_DIR}/code/Debug/assimp${LIBRARY_SUFFIX}${CMAKE_DEBUG_POSTFIX}.pdb
  852. DESTINATION ${ASSIMP_LIB_INSTALL_DIR}
  853. CONFIGURATIONS Debug
  854. )
  855. install(FILES ${Assimp_BINARY_DIR}/code/RelWithDebInfo/assimp.pdb
  856. DESTINATION ${ASSIMP_LIB_INSTALL_DIR}
  857. CONFIGURATIONS RelWithDebInfo
  858. )
  859. endif ()
  860. if (ASSIMP_COVERALLS)
  861. include(Coveralls)
  862. set(COVERAGE_SRCS ${assimp_src} ${TEST_SRCS} )
  863. # Create the coveralls target.
  864. coveralls_setup(
  865. "${COVERAGE_SRCS}" # The source files.
  866. ON # If we should upload.
  867. "${PROJECT_SOURCE_DIR}/cmake-modules/") # (Optional) Alternate project cmake module path.
  868. endif()