CMakeLists.txt 26 KB

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