CMakeLists.txt 17 KB

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