CMakeLists.txt 17 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759
  1. #
  2. # Listing and grouping of all the source files.
  3. # 1) Set the file lists for each component
  4. # 2) Create a Source Group for each component, for IDE project orginization
  5. # 3) Add libassimp using the file lists (eliminates duplication of file names between
  6. # source groups and library command)
  7. #
  8. # Modified by Lasse Oorni and Yao Wei Tjong for Urho3D
  9. if (MINGW)
  10. # The IFCReaderGen.cpp.obj has too many sections in DEBUG configuration build
  11. # Since GCC does not support /bigobj compiler flags as in MSVC, we use optimization flags to reduce the object file size
  12. set (CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS_DEBUG} -O1")
  13. set (CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} -O1")
  14. endif ()
  15. INCLUDE_DIRECTORIES( code )
  16. INCLUDE_DIRECTORIES( include )
  17. INCLUDE_DIRECTORIES( code/BoostWorkaround )
  18. INCLUDE_DIRECTORIES( contrib/unzip )
  19. ADD_DEFINITIONS( -DASSIMP_BUILD_BOOST_WORKAROUND )
  20. SET( HEADER_PATH include/assimp )
  21. SET( COMPILER_HEADERS
  22. ${HEADER_PATH}/Compiler/pushpack1.h
  23. ${HEADER_PATH}/Compiler/poppack1.h
  24. ${HEADER_PATH}/Compiler/pstdint.h
  25. )
  26. SOURCE_GROUP( Compiler FILES ${COMPILER_HEADERS})
  27. SET( PUBLIC_HEADERS
  28. ${HEADER_PATH}/anim.h
  29. ${HEADER_PATH}/ai_assert.h
  30. ${HEADER_PATH}/camera.h
  31. ${HEADER_PATH}/color4.h
  32. ${HEADER_PATH}/color4.inl
  33. ${HEADER_PATH}/config.h
  34. ${HEADER_PATH}/defs.h
  35. ${HEADER_PATH}/cfileio.h
  36. ${HEADER_PATH}/light.h
  37. ${HEADER_PATH}/material.h
  38. ${HEADER_PATH}/material.inl
  39. ${HEADER_PATH}/matrix3x3.h
  40. ${HEADER_PATH}/matrix3x3.inl
  41. ${HEADER_PATH}/matrix4x4.h
  42. ${HEADER_PATH}/matrix4x4.inl
  43. ${HEADER_PATH}/mesh.h
  44. ${HEADER_PATH}/postprocess.h
  45. ${HEADER_PATH}/quaternion.h
  46. ${HEADER_PATH}/quaternion.inl
  47. ${HEADER_PATH}/scene.h
  48. ${HEADER_PATH}/metadata.h
  49. ${HEADER_PATH}/texture.h
  50. ${HEADER_PATH}/types.h
  51. ${HEADER_PATH}/vector2.h
  52. ${HEADER_PATH}/vector2.inl
  53. ${HEADER_PATH}/vector3.h
  54. ${HEADER_PATH}/vector3.inl
  55. ${HEADER_PATH}/version.h
  56. ${HEADER_PATH}/cimport.h
  57. ${HEADER_PATH}/importerdesc.h
  58. ${HEADER_PATH}/Importer.hpp
  59. ${HEADER_PATH}/DefaultLogger.hpp
  60. ${HEADER_PATH}/ProgressHandler.hpp
  61. ${HEADER_PATH}/IOStream.hpp
  62. ${HEADER_PATH}/IOSystem.hpp
  63. ${HEADER_PATH}/Logger.hpp
  64. ${HEADER_PATH}/LogStream.hpp
  65. ${HEADER_PATH}/NullLogger.hpp
  66. ${HEADER_PATH}/cexport.h
  67. ${HEADER_PATH}/Exporter.hpp
  68. )
  69. SET( Core_SRCS
  70. code/Assimp.cpp
  71. )
  72. SET( Boost_SRCS
  73. code/BoostWorkaround/boost/math/common_factor_rt.hpp
  74. code/BoostWorkaround/boost/foreach.hpp
  75. code/BoostWorkaround/boost/format.hpp
  76. code/BoostWorkaround/boost/scoped_array.hpp
  77. code/BoostWorkaround/boost/scoped_ptr.hpp
  78. code/BoostWorkaround/boost/shared_array.hpp
  79. code/BoostWorkaround/boost/shared_ptr.hpp
  80. code/BoostWorkaround/boost/make_shared.hpp
  81. code/BoostWorkaround/boost/static_assert.hpp
  82. code/BoostWorkaround/boost/tuple/tuple.hpp
  83. )
  84. SOURCE_GROUP(Boost FILES ${Boost_SRCS})
  85. SET( Logging_SRCS
  86. ${HEADER_PATH}/DefaultLogger.hpp
  87. ${HEADER_PATH}/LogStream.hpp
  88. ${HEADER_PATH}/Logger.hpp
  89. ${HEADER_PATH}/NullLogger.hpp
  90. code/Win32DebugLogStream.h
  91. code/DefaultLogger.cpp
  92. code/FileLogStream.h
  93. code/StdOStreamLogStream.h
  94. )
  95. SOURCE_GROUP(Logging FILES ${Logging_SRCS})
  96. SET( Common_SRCS
  97. code/fast_atof.h
  98. code/qnan.h
  99. code/BaseImporter.cpp
  100. code/BaseImporter.h
  101. code/BaseProcess.cpp
  102. code/BaseProcess.h
  103. code/Importer.h
  104. code/ScenePrivate.h
  105. code/PostStepRegistry.cpp
  106. code/ImporterRegistry.cpp
  107. code/ByteSwapper.h
  108. code/DefaultProgressHandler.h
  109. code/DefaultIOStream.cpp
  110. code/DefaultIOStream.h
  111. code/DefaultIOSystem.cpp
  112. code/DefaultIOSystem.h
  113. code/CInterfaceIOWrapper.h
  114. code/Hash.h
  115. code/Importer.cpp
  116. code/IFF.h
  117. code/MemoryIOWrapper.h
  118. code/ParsingUtils.h
  119. code/StreamReader.h
  120. code/StreamWriter.h
  121. code/StringComparison.h
  122. code/SGSpatialSort.cpp
  123. code/SGSpatialSort.h
  124. code/VertexTriangleAdjacency.cpp
  125. code/VertexTriangleAdjacency.h
  126. code/GenericProperty.h
  127. code/SpatialSort.cpp
  128. code/SpatialSort.h
  129. code/SceneCombiner.cpp
  130. code/SceneCombiner.h
  131. code/ScenePreprocessor.cpp
  132. code/ScenePreprocessor.h
  133. code/SkeletonMeshBuilder.cpp
  134. code/SkeletonMeshBuilder.h
  135. code/SplitByBoneCountProcess.cpp
  136. code/SplitByBoneCountProcess.h
  137. code/SmoothingGroups.h
  138. code/StandardShapes.cpp
  139. code/StandardShapes.h
  140. code/TargetAnimation.cpp
  141. code/TargetAnimation.h
  142. code/RemoveComments.cpp
  143. code/RemoveComments.h
  144. code/Subdivision.cpp
  145. code/Subdivision.h
  146. code/Vertex.h
  147. code/LineSplitter.h
  148. code/TinyFormatter.h
  149. code/Profiler.h
  150. code/LogAux.h
  151. code/Bitmap.cpp
  152. code/Bitmap.h
  153. code/XMLTools.h
  154. code/Version.cpp
  155. )
  156. SOURCE_GROUP(Common FILES ${Common_SRCS})
  157. IF ( ASSIMP_BUILD_NONFREE_C4D_IMPORTER )
  158. SET( C4D_SRCS
  159. code/C4DImporter.cpp
  160. code/C4DImporter.h
  161. )
  162. SOURCE_GROUP( C4D FILES ${C4D_SRCS})
  163. ENDIF ( ASSIMP_BUILD_NONFREE_C4D_IMPORTER )
  164. # macro to add the CMake Option ADD_ASSIMP_IMPORTER_<name> which enables compile of loader
  165. # this way selective loaders can be compiled (reduces filesize + compile time)
  166. MACRO(ADD_ASSIMP_IMPORTER name)
  167. OPTION(ASSIMP_BUILD_${name}_IMPORTER "build the ${name} importer" TRUE)
  168. IF(ASSIMP_BUILD_${name}_IMPORTER)
  169. LIST(APPEND ASSIMP_LOADER_SRCS ${ARGN})
  170. SET(ASSIMP_IMPORTERS_ENABLED "${ASSIMP_IMPORTERS_ENABLED} ${name}")
  171. SET(${name}_SRCS ${ARGN})
  172. SOURCE_GROUP(${name} FILES ${ARGN})
  173. ELSE()
  174. SET(${name}_SRC "")
  175. SET(ASSIMP_IMPORTERS_DISABLED "${ASSIMP_IMPORTERS_DISABLED} ${name}")
  176. add_definitions(-DASSIMP_BUILD_NO_${name}_IMPORTER)
  177. ENDIF()
  178. ENDMACRO()
  179. SET(ASSIMP_LOADER_SRCS "")
  180. SET(ASSIMP_IMPORTERS_ENABLED "") # list of enabled importers
  181. SET(ASSIMP_IMPORTERS_DISABLED "") # disabled list (used to print)
  182. ADD_ASSIMP_IMPORTER(3DS
  183. code/3DSConverter.cpp
  184. code/3DSHelper.h
  185. code/3DSLoader.cpp
  186. code/3DSLoader.h
  187. code/3DSExporter.h
  188. code/3DSExporter.cpp
  189. )
  190. ADD_ASSIMP_IMPORTER(AC
  191. code/ACLoader.cpp
  192. code/ACLoader.h
  193. )
  194. ADD_ASSIMP_IMPORTER(ASE
  195. code/ASELoader.cpp
  196. code/ASELoader.h
  197. code/ASEParser.cpp
  198. code/ASEParser.h
  199. )
  200. ADD_ASSIMP_IMPORTER(ASSBIN
  201. code/AssbinExporter.h
  202. code/AssbinExporter.cpp
  203. code/AssbinLoader.h
  204. code/AssbinLoader.cpp
  205. )
  206. ADD_ASSIMP_IMPORTER(ASSXML
  207. code/AssxmlExporter.h
  208. code/AssxmlExporter.cpp
  209. )
  210. ADD_ASSIMP_IMPORTER(B3D
  211. code/B3DImporter.cpp
  212. code/B3DImporter.h
  213. )
  214. ADD_ASSIMP_IMPORTER(BVH
  215. code/BVHLoader.cpp
  216. code/BVHLoader.h
  217. )
  218. ADD_ASSIMP_IMPORTER(COLLADA
  219. code/ColladaHelper.h
  220. code/ColladaLoader.cpp
  221. code/ColladaLoader.h
  222. code/ColladaParser.cpp
  223. code/ColladaParser.h
  224. code/ColladaExporter.h
  225. code/ColladaExporter.cpp
  226. )
  227. ADD_ASSIMP_IMPORTER(DXF
  228. code/DXFLoader.cpp
  229. code/DXFLoader.h
  230. code/DXFHelper.h
  231. )
  232. ADD_ASSIMP_IMPORTER(CSM
  233. code/CSMLoader.cpp
  234. code/CSMLoader.h
  235. )
  236. ADD_ASSIMP_IMPORTER(HMP
  237. code/HMPFileData.h
  238. code/HMPLoader.cpp
  239. code/HMPLoader.h
  240. code/HalfLifeFileData.h
  241. )
  242. #FIXME: allow to set IRRMESH by option
  243. ADD_ASSIMP_IMPORTER(IRR
  244. code/IRRLoader.cpp
  245. code/IRRLoader.h
  246. code/IRRMeshLoader.cpp
  247. code/IRRMeshLoader.h
  248. code/IRRShared.cpp
  249. code/IRRShared.h
  250. )
  251. ADD_ASSIMP_IMPORTER(LWO
  252. code/LWOAnimation.cpp
  253. code/LWOAnimation.h
  254. code/LWOBLoader.cpp
  255. code/LWOFileData.h
  256. code/LWOLoader.cpp
  257. code/LWOLoader.h
  258. code/LWOMaterial.cpp
  259. )
  260. ADD_ASSIMP_IMPORTER(LWS
  261. code/LWSLoader.cpp
  262. code/LWSLoader.h
  263. )
  264. ADD_ASSIMP_IMPORTER(MD2
  265. code/MD2FileData.h
  266. code/MD2Loader.cpp
  267. code/MD2Loader.h
  268. code/MD2NormalTable.h
  269. )
  270. ADD_ASSIMP_IMPORTER(MD3
  271. code/MD3FileData.h
  272. code/MD3Loader.cpp
  273. code/MD3Loader.h
  274. )
  275. ADD_ASSIMP_IMPORTER(MD5
  276. code/MD5Loader.cpp
  277. code/MD5Loader.h
  278. code/MD5Parser.cpp
  279. code/MD5Parser.h
  280. )
  281. ADD_ASSIMP_IMPORTER(MDC
  282. code/MDCFileData.h
  283. code/MDCLoader.cpp
  284. code/MDCLoader.h
  285. code/MDCNormalTable.h
  286. )
  287. ADD_ASSIMP_IMPORTER(MDL
  288. code/MDLDefaultColorMap.h
  289. code/MDLFileData.h
  290. code/MDLLoader.cpp
  291. code/MDLLoader.h
  292. code/MDLMaterialLoader.cpp
  293. )
  294. SET( MaterialSystem_SRCS
  295. code/MaterialSystem.cpp
  296. code/MaterialSystem.h
  297. )
  298. SOURCE_GROUP( MaterialSystem FILES ${MaterialSystem_SRCS})
  299. ADD_ASSIMP_IMPORTER(NFF
  300. code/NFFLoader.cpp
  301. code/NFFLoader.h
  302. )
  303. ADD_ASSIMP_IMPORTER(NDO
  304. code/NDOLoader.cpp
  305. code/NDOLoader.h
  306. )
  307. ADD_ASSIMP_IMPORTER(OFF
  308. code/OFFLoader.cpp
  309. code/OFFLoader.h
  310. )
  311. ADD_ASSIMP_IMPORTER(OBJ
  312. code/ObjFileData.h
  313. code/ObjFileImporter.cpp
  314. code/ObjFileImporter.h
  315. code/ObjFileMtlImporter.cpp
  316. code/ObjFileMtlImporter.h
  317. code/ObjFileParser.cpp
  318. code/ObjFileParser.h
  319. code/ObjTools.h
  320. code/ObjExporter.h
  321. code/ObjExporter.cpp
  322. )
  323. ADD_ASSIMP_IMPORTER(OGRE
  324. code/OgreImporter.h
  325. code/OgreStructs.h
  326. code/OgreParsingUtils.h
  327. code/OgreBinarySerializer.h
  328. code/OgreXmlSerializer.h
  329. code/OgreImporter.cpp
  330. code/OgreStructs.cpp
  331. code/OgreBinarySerializer.cpp
  332. code/OgreXmlSerializer.cpp
  333. code/OgreMaterial.cpp
  334. )
  335. ADD_ASSIMP_IMPORTER(OPENGEX
  336. code/OpenGEXExporter.cpp
  337. code/OpenGEXExporter.h
  338. code/OpenGEXImporter.cpp
  339. code/OpenGEXImporter.h
  340. code/OpenGEXStructs.h
  341. )
  342. ADD_ASSIMP_IMPORTER(PLY
  343. code/PlyLoader.cpp
  344. code/PlyLoader.h
  345. code/PlyParser.cpp
  346. code/PlyParser.h
  347. code/PlyExporter.cpp
  348. code/PlyExporter.h
  349. )
  350. ADD_ASSIMP_IMPORTER(MS3D
  351. code/MS3DLoader.cpp
  352. code/MS3DLoader.h
  353. )
  354. ADD_ASSIMP_IMPORTER(COB
  355. code/COBLoader.cpp
  356. code/COBLoader.h
  357. code/COBScene.h
  358. )
  359. ADD_ASSIMP_IMPORTER(BLEND
  360. code/BlenderLoader.cpp
  361. code/BlenderLoader.h
  362. code/BlenderDNA.cpp
  363. code/BlenderDNA.h
  364. code/BlenderDNA.inl
  365. code/BlenderScene.cpp
  366. code/BlenderScene.h
  367. code/BlenderSceneGen.h
  368. code/BlenderIntermediate.h
  369. code/BlenderModifier.h
  370. code/BlenderModifier.cpp
  371. code/BlenderBMesh.h
  372. code/BlenderBMesh.cpp
  373. code/BlenderTessellator.h
  374. code/BlenderTessellator.cpp
  375. )
  376. ADD_ASSIMP_IMPORTER(IFC
  377. code/IFCLoader.cpp
  378. code/IFCLoader.h
  379. code/IFCReaderGen.cpp
  380. code/IFCReaderGen.h
  381. code/IFCUtil.h
  382. code/IFCUtil.cpp
  383. code/IFCGeometry.cpp
  384. code/IFCMaterial.cpp
  385. code/IFCProfile.cpp
  386. code/IFCCurve.cpp
  387. code/IFCBoolean.cpp
  388. code/IFCOpenings.cpp
  389. code/STEPFile.h
  390. code/STEPFileReader.h
  391. code/STEPFileReader.cpp
  392. code/STEPFileEncoding.cpp
  393. code/STEPFileEncoding.h
  394. )
  395. ADD_ASSIMP_IMPORTER(XGL
  396. code/XGLLoader.cpp
  397. code/XGLLoader.h
  398. )
  399. ADD_ASSIMP_IMPORTER(FBX
  400. code/FBXImporter.cpp
  401. code/FBXCompileConfig.h
  402. code/FBXImporter.h
  403. code/FBXParser.cpp
  404. code/FBXParser.h
  405. code/FBXTokenizer.cpp
  406. code/FBXTokenizer.h
  407. code/FBXImportSettings.h
  408. code/FBXConverter.h
  409. code/FBXConverter.cpp
  410. code/FBXUtil.h
  411. code/FBXUtil.cpp
  412. code/FBXDocument.h
  413. code/FBXDocument.cpp
  414. code/FBXProperties.h
  415. code/FBXProperties.cpp
  416. code/FBXMeshGeometry.cpp
  417. code/FBXMaterial.cpp
  418. code/FBXModel.cpp
  419. code/FBXAnimation.cpp
  420. code/FBXNodeAttribute.cpp
  421. code/FBXDeformer.cpp
  422. code/FBXBinaryTokenizer.cpp
  423. code/FBXDocumentUtil.cpp
  424. )
  425. SET( PostProcessing_SRCS
  426. code/CalcTangentsProcess.cpp
  427. code/CalcTangentsProcess.h
  428. code/ComputeUVMappingProcess.cpp
  429. code/ComputeUVMappingProcess.h
  430. code/ConvertToLHProcess.cpp
  431. code/ConvertToLHProcess.h
  432. code/FindDegenerates.cpp
  433. code/FindDegenerates.h
  434. code/FindInstancesProcess.cpp
  435. code/FindInstancesProcess.h
  436. code/FindInvalidDataProcess.cpp
  437. code/FindInvalidDataProcess.h
  438. code/FixNormalsStep.cpp
  439. code/FixNormalsStep.h
  440. code/GenFaceNormalsProcess.cpp
  441. code/GenFaceNormalsProcess.h
  442. code/GenVertexNormalsProcess.cpp
  443. code/GenVertexNormalsProcess.h
  444. code/PretransformVertices.cpp
  445. code/PretransformVertices.h
  446. code/ImproveCacheLocality.cpp
  447. code/ImproveCacheLocality.h
  448. code/JoinVerticesProcess.cpp
  449. code/JoinVerticesProcess.h
  450. code/LimitBoneWeightsProcess.cpp
  451. code/LimitBoneWeightsProcess.h
  452. code/RemoveRedundantMaterials.cpp
  453. code/RemoveRedundantMaterials.h
  454. code/RemoveVCProcess.cpp
  455. code/RemoveVCProcess.h
  456. code/SortByPTypeProcess.cpp
  457. code/SortByPTypeProcess.h
  458. code/SplitLargeMeshes.cpp
  459. code/SplitLargeMeshes.h
  460. code/TextureTransform.cpp
  461. code/TextureTransform.h
  462. code/TriangulateProcess.cpp
  463. code/TriangulateProcess.h
  464. code/ValidateDataStructure.cpp
  465. code/ValidateDataStructure.h
  466. code/OptimizeGraph.cpp
  467. code/OptimizeGraph.h
  468. code/OptimizeMeshes.cpp
  469. code/OptimizeMeshes.h
  470. code/DeboneProcess.cpp
  471. code/DeboneProcess.h
  472. code/ProcessHelper.h
  473. code/ProcessHelper.cpp
  474. code/PolyTools.h
  475. code/MakeVerboseFormat.cpp
  476. code/MakeVerboseFormat.h
  477. )
  478. SOURCE_GROUP( PostProcessing FILES ${PostProcessing_SRCS})
  479. ADD_ASSIMP_IMPORTER(Q3D
  480. code/Q3DLoader.cpp
  481. code/Q3DLoader.h
  482. )
  483. ADD_ASSIMP_IMPORTER(Q3BSP
  484. code/Q3BSPFileData.h
  485. code/Q3BSPFileParser.h
  486. code/Q3BSPFileParser.cpp
  487. code/Q3BSPFileImporter.h
  488. code/Q3BSPFileImporter.cpp
  489. code/Q3BSPZipArchive.h
  490. code/Q3BSPZipArchive.cpp
  491. )
  492. ADD_ASSIMP_IMPORTER(RAW
  493. code/RawLoader.cpp
  494. code/RawLoader.h
  495. )
  496. ADD_ASSIMP_IMPORTER(SMD
  497. code/SMDLoader.cpp
  498. code/SMDLoader.h
  499. )
  500. ADD_ASSIMP_IMPORTER(STL
  501. code/STLLoader.cpp
  502. code/STLLoader.h
  503. code/STLExporter.h
  504. code/STLExporter.cpp
  505. )
  506. ADD_ASSIMP_IMPORTER(TERRAGEN
  507. code/TerragenLoader.cpp
  508. code/TerragenLoader.h
  509. )
  510. ADD_ASSIMP_IMPORTER(3D
  511. code/UnrealLoader.cpp
  512. code/UnrealLoader.h
  513. )
  514. ADD_ASSIMP_IMPORTER(X
  515. code/XFileHelper.h
  516. code/XFileImporter.cpp
  517. code/XFileImporter.h
  518. code/XFileParser.cpp
  519. code/XFileParser.h
  520. code/XFileExporter.h
  521. code/XFileExporter.cpp
  522. )
  523. SET( Step_SRCS
  524. code/StepExporter.h
  525. code/StepExporter.cpp
  526. )
  527. SOURCE_GROUP( Step FILES ${Step_SRCS})
  528. SET( Exporter_SRCS
  529. code/Exporter.cpp
  530. code/AssimpCExport.cpp
  531. code/BlobIOSystem.h
  532. )
  533. SOURCE_GROUP( Exporter FILES ${Exporter_SRCS})
  534. SET( Extra_SRCS
  535. code/MD4FileData.h
  536. )
  537. SOURCE_GROUP( Extra FILES ${Extra_SRCS})
  538. SET( IrrXML_SRCS
  539. code/irrXMLWrapper.h
  540. contrib/irrXML/CXMLReaderImpl.h
  541. contrib/irrXML/heapsort.h
  542. contrib/irrXML/irrArray.h
  543. contrib/irrXML/irrString.h
  544. contrib/irrXML/irrTypes.h
  545. contrib/irrXML/irrXML.cpp
  546. contrib/irrXML/irrXML.h
  547. )
  548. SOURCE_GROUP( IrrXML FILES ${IrrXML_SRCS})
  549. SET( ConvertUTF_SRCS
  550. contrib/ConvertUTF/ConvertUTF.h
  551. contrib/ConvertUTF/ConvertUTF.c
  552. )
  553. SOURCE_GROUP( ConvertUTF FILES ${ConvertUTF_SRCS})
  554. SET( Clipper_SRCS
  555. contrib/clipper/clipper.hpp
  556. contrib/clipper/clipper.cpp
  557. )
  558. SOURCE_GROUP( Clipper FILES ${Clipper_SRCS})
  559. SET( Poly2Tri_SRCS
  560. contrib/poly2tri/poly2tri/common/shapes.cc
  561. contrib/poly2tri/poly2tri/common/shapes.h
  562. contrib/poly2tri/poly2tri/common/utils.h
  563. contrib/poly2tri/poly2tri/sweep/advancing_front.h
  564. contrib/poly2tri/poly2tri/sweep/advancing_front.cc
  565. contrib/poly2tri/poly2tri/sweep/cdt.cc
  566. contrib/poly2tri/poly2tri/sweep/cdt.h
  567. contrib/poly2tri/poly2tri/sweep/sweep.cc
  568. contrib/poly2tri/poly2tri/sweep/sweep.h
  569. contrib/poly2tri/poly2tri/sweep/sweep_context.cc
  570. contrib/poly2tri/poly2tri/sweep/sweep_context.h
  571. )
  572. SOURCE_GROUP( Poly2Tri FILES ${Poly2Tri_SRCS})
  573. SET( unzip_SRCS
  574. contrib/unzip/crypt.h
  575. contrib/unzip/ioapi.c
  576. contrib/unzip/ioapi.h
  577. contrib/unzip/unzip.c
  578. contrib/unzip/unzip.h
  579. )
  580. SOURCE_GROUP( unzip FILES ${unzip_SRCS})
  581. SET( zlib_SRCS
  582. contrib/zlib/adler32.c
  583. contrib/zlib/compress.c
  584. contrib/zlib/crc32.c
  585. contrib/zlib/crc32.h
  586. contrib/zlib/deflate.c
  587. contrib/zlib/deflate.h
  588. # contrib/zlib/gzclose.c
  589. # contrib/zlib/gzguts.h
  590. # contrib/zlib/gzlib.c
  591. # contrib/zlib/gzread.c
  592. # contrib/zlib/gzwrite.c
  593. contrib/zlib/infback.c
  594. contrib/zlib/inffast.c
  595. contrib/zlib/inffast.h
  596. contrib/zlib/inffixed.h
  597. contrib/zlib/inflate.c
  598. contrib/zlib/inflate.h
  599. contrib/zlib/inftrees.c
  600. contrib/zlib/inftrees.h
  601. contrib/zlib/trees.c
  602. contrib/zlib/trees.h
  603. contrib/zlib/uncompr.c
  604. contrib/zlib/zconf.h
  605. contrib/zlib/zlib.h
  606. contrib/zlib/zutil.c
  607. contrib/zlib/zutil.h
  608. )
  609. SOURCE_GROUP( zlib FILES ${zlib_SRCS})
  610. SET ( openddl_parser_SRCS
  611. contrib/openddlparser/code/OpenDDLExport.cpp
  612. contrib/openddlparser/code/OpenDDLCommon.cpp
  613. contrib/openddlparser/code/OpenDDLParser.cpp
  614. contrib/openddlparser/code/DDLNode.cpp
  615. contrib/openddlparser/code/Value.cpp
  616. contrib/openddlparser/include/openddlparser/OpenDDLParser.h
  617. contrib/openddlparser/include/openddlparser/OpenDDLParserUtils.h
  618. contrib/openddlparser/include/openddlparser/OpenDDLCommon.h
  619. contrib/openddlparser/include/openddlparser/DDLNode.h
  620. contrib/openddlparser/include/openddlparser/Value.h
  621. contrib/openddlparser/include/openddlparser/OpenDDLExport.h
  622. )
  623. SOURCE_GROUP( openddl_parser FILES ${openddl_parser_SRCS})
  624. # VC2010 fixes
  625. if(MSVC10)
  626. option( VC10_STDINT_FIX "Fix for VC10 Compiler regarding pstdint.h redefinition errors" OFF )
  627. if( VC10_STDINT_FIX )
  628. ADD_DEFINITIONS( -D_STDINT )
  629. endif( VC10_STDINT_FIX )
  630. endif(MSVC10)
  631. if ( MSVC )
  632. ADD_DEFINITIONS( -D_SCL_SECURE_NO_WARNINGS )
  633. ADD_DEFINITIONS( -D_CRT_SECURE_NO_WARNINGS )
  634. endif ( MSVC )
  635. # Urho3D: disable status prints
  636. # MESSAGE(STATUS "Enabled formats:${ASSIMP_IMPORTERS_ENABLED}")
  637. # MESSAGE(STATUS "Disabled formats:${ASSIMP_IMPORTERS_DISABLED}")
  638. SET( SOURCE_FILES
  639. # Assimp Files
  640. ${Core_SRCS}
  641. ${Common_SRCS}
  642. ${Logging_SRCS}
  643. ${Exporter_SRCS}
  644. ${PostProcessing_SRCS}
  645. ${MaterialSystem_SRCS}
  646. ${Step_SRCS}
  647. # Model Support
  648. ${ASSIMP_LOADER_SRCS}
  649. # Third-party libraries
  650. ${IrrXML_SRCS}
  651. ${ConvertUTF_SRCS}
  652. ${unzip_SRCS}
  653. ${zlib_SRCS}
  654. ${Poly2Tri_SRCS}
  655. ${Clipper_SRCS}
  656. ${openddl_parser_SRCS}
  657. # Necessary to show the headers in the project when using the VC++ generator:
  658. ${Boost_SRCS}
  659. ${PUBLIC_HEADERS}
  660. ${COMPILER_HEADERS}
  661. )
  662. add_definitions( -DOPENDDLPARSER_BUILD )
  663. INCLUDE_DIRECTORIES(
  664. contrib/openddlparser/include
  665. )
  666. # Urho3D: set the corresponding "no importer" define
  667. IF (ASSIMP_BUILD_NONFREE_C4D_IMPORTER)
  668. SET( SOURCE_FILES ${SOURCE_FILES} ${C4D_SRCS})
  669. INCLUDE_DIRECTORIES(${C4D_INCLUDES})
  670. ELSE (ASSIMP_BUILD_NONFREE_C4D_IMPORTER)
  671. add_definitions(-DASSIMP_BUILD_NO_C4D_IMPORTER)
  672. ENDIF (ASSIMP_BUILD_NONFREE_C4D_IMPORTER)
  673. set (TARGET_NAME Assimp)
  674. list (APPEND TARGET_PROPERTIES XCODE_ATTRIBUTE_ONLY_ACTIVE_ARCH YES) # Since we only build AssetImporter as a single-arch native tool, there is no point to build Assimp as universal binary library
  675. setup_library ()
  676. # When performing Xcode CI build suppress all the warnings for 3rd party libraries because there are just too many of them
  677. if (XCODE AND DEFINED ENV{CI})
  678. set (CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -w")
  679. set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -w")
  680. endif ()