CMakeLists.txt 26 KB

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