CMakeLists.txt 39 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302
  1. # Open Asset Import Library (assimp)
  2. # ----------------------------------------------------------------------
  3. #
  4. # Copyright (c) 2006-2020, assimp team
  5. #
  6. # All rights reserved.
  7. #
  8. # Redistribution and use of this software in source and binary forms,
  9. # with or without modification, are permitted provided that the
  10. # following conditions are met:
  11. #
  12. # * Redistributions of source code must retain the above
  13. # copyright notice, this list of conditions and the
  14. # following disclaimer.
  15. #
  16. # * Redistributions in binary form must reproduce the above
  17. # copyright notice, this list of conditions and the
  18. # following disclaimer in the documentation and/or other
  19. # materials provided with the distribution.
  20. #
  21. # * Neither the name of the assimp team, nor the names of its
  22. # contributors may be used to endorse or promote products
  23. # derived from this software without specific prior
  24. # written permission of the assimp team.
  25. #
  26. # THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
  27. # "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
  28. # LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
  29. # A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
  30. # OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
  31. # SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
  32. # LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
  33. # DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
  34. # THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
  35. # (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
  36. # OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  37. #
  38. #----------------------------------------------------------------------
  39. # Listing and grouping of all the source files.
  40. # 1) Set the file lists for each component
  41. # 2) Create a Source Group for each component, for IDE project orginization
  42. # 3) Add libassimp using the file lists (eliminates duplication of file names between
  43. # source groups and library command)
  44. #
  45. cmake_minimum_required( VERSION 3.0 )
  46. SET( HEADER_PATH ../include/assimp )
  47. if(NOT ANDROID AND ASSIMP_ANDROID_JNIIOSYSTEM)
  48. message(WARNING "Requesting Android JNI I/O-System in non-Android toolchain. Resetting ASSIMP_ANDROID_JNIIOSYSTEM to OFF.")
  49. set(ASSIMP_ANDROID_JNIIOSYSTEM OFF)
  50. endif()
  51. SET( COMPILER_HEADERS
  52. ${HEADER_PATH}/Compiler/pushpack1.h
  53. ${HEADER_PATH}/Compiler/poppack1.h
  54. ${HEADER_PATH}/Compiler/pstdint.h
  55. )
  56. SOURCE_GROUP( Compiler FILES ${COMPILER_HEADERS})
  57. SET( PUBLIC_HEADERS
  58. ${HEADER_PATH}/anim.h
  59. ${HEADER_PATH}/aabb.h
  60. ${HEADER_PATH}/ai_assert.h
  61. ${HEADER_PATH}/camera.h
  62. ${HEADER_PATH}/color4.h
  63. ${HEADER_PATH}/color4.inl
  64. ${CMAKE_CURRENT_BINARY_DIR}/../include/assimp/config.h
  65. ${HEADER_PATH}/ColladaMetaData.h
  66. ${HEADER_PATH}/commonMetaData.h
  67. ${HEADER_PATH}/defs.h
  68. ${HEADER_PATH}/Defines.h
  69. ${HEADER_PATH}/cfileio.h
  70. ${HEADER_PATH}/light.h
  71. ${HEADER_PATH}/material.h
  72. ${HEADER_PATH}/material.inl
  73. ${HEADER_PATH}/matrix3x3.h
  74. ${HEADER_PATH}/matrix3x3.inl
  75. ${HEADER_PATH}/matrix4x4.h
  76. ${HEADER_PATH}/matrix4x4.inl
  77. ${HEADER_PATH}/mesh.h
  78. ${HEADER_PATH}/pbrmaterial.h
  79. ${HEADER_PATH}/postprocess.h
  80. ${HEADER_PATH}/quaternion.h
  81. ${HEADER_PATH}/quaternion.inl
  82. ${HEADER_PATH}/scene.h
  83. ${HEADER_PATH}/metadata.h
  84. ${HEADER_PATH}/texture.h
  85. ${HEADER_PATH}/types.h
  86. ${HEADER_PATH}/vector2.h
  87. ${HEADER_PATH}/vector2.inl
  88. ${HEADER_PATH}/vector3.h
  89. ${HEADER_PATH}/vector3.inl
  90. ${HEADER_PATH}/version.h
  91. ${HEADER_PATH}/cimport.h
  92. ${HEADER_PATH}/importerdesc.h
  93. ${HEADER_PATH}/Importer.hpp
  94. ${HEADER_PATH}/DefaultLogger.hpp
  95. ${HEADER_PATH}/ProgressHandler.hpp
  96. ${HEADER_PATH}/IOStream.hpp
  97. ${HEADER_PATH}/IOSystem.hpp
  98. ${HEADER_PATH}/Logger.hpp
  99. ${HEADER_PATH}/LogStream.hpp
  100. ${HEADER_PATH}/NullLogger.hpp
  101. ${HEADER_PATH}/cexport.h
  102. ${HEADER_PATH}/Exporter.hpp
  103. ${HEADER_PATH}/DefaultIOStream.h
  104. ${HEADER_PATH}/DefaultIOSystem.h
  105. ${HEADER_PATH}/ZipArchiveIOSystem.h
  106. ${HEADER_PATH}/SceneCombiner.h
  107. ${HEADER_PATH}/fast_atof.h
  108. ${HEADER_PATH}/qnan.h
  109. ${HEADER_PATH}/BaseImporter.h
  110. ${HEADER_PATH}/Hash.h
  111. ${HEADER_PATH}/MemoryIOWrapper.h
  112. ${HEADER_PATH}/ParsingUtils.h
  113. ${HEADER_PATH}/StreamReader.h
  114. ${HEADER_PATH}/StreamWriter.h
  115. ${HEADER_PATH}/StringComparison.h
  116. ${HEADER_PATH}/StringUtils.h
  117. ${HEADER_PATH}/SGSpatialSort.h
  118. ${HEADER_PATH}/GenericProperty.h
  119. ${HEADER_PATH}/SpatialSort.h
  120. ${HEADER_PATH}/SkeletonMeshBuilder.h
  121. ${HEADER_PATH}/SmallVector.h
  122. ${HEADER_PATH}/SmoothingGroups.h
  123. ${HEADER_PATH}/SmoothingGroups.inl
  124. ${HEADER_PATH}/StandardShapes.h
  125. ${HEADER_PATH}/RemoveComments.h
  126. ${HEADER_PATH}/Subdivision.h
  127. ${HEADER_PATH}/Vertex.h
  128. ${HEADER_PATH}/LineSplitter.h
  129. ${HEADER_PATH}/TinyFormatter.h
  130. ${HEADER_PATH}/Profiler.h
  131. ${HEADER_PATH}/LogAux.h
  132. ${HEADER_PATH}/Bitmap.h
  133. ${HEADER_PATH}/XMLTools.h
  134. ${HEADER_PATH}/IOStreamBuffer.h
  135. ${HEADER_PATH}/CreateAnimMesh.h
  136. ${HEADER_PATH}/XmlParser.h
  137. ${HEADER_PATH}/BlobIOSystem.h
  138. ${HEADER_PATH}/MathFunctions.h
  139. ${HEADER_PATH}/Exceptional.h
  140. ${HEADER_PATH}/ByteSwapper.h
  141. )
  142. SET( Core_SRCS
  143. Common/Assimp.cpp
  144. )
  145. IF(MSVC)
  146. list(APPEND Core_SRCS "res/assimp.rc")
  147. ENDIF()
  148. SET( Logging_SRCS
  149. ${HEADER_PATH}/DefaultLogger.hpp
  150. ${HEADER_PATH}/LogStream.hpp
  151. ${HEADER_PATH}/Logger.hpp
  152. ${HEADER_PATH}/NullLogger.hpp
  153. Common/Win32DebugLogStream.h
  154. Common/DefaultLogger.cpp
  155. Common/FileLogStream.h
  156. Common/StdOStreamLogStream.h
  157. )
  158. SOURCE_GROUP(Logging FILES ${Logging_SRCS})
  159. SET( Common_SRCS
  160. Common/BaseImporter.cpp
  161. Common/BaseProcess.cpp
  162. Common/BaseProcess.h
  163. Common/Importer.h
  164. Common/ScenePrivate.h
  165. Common/PostStepRegistry.cpp
  166. Common/ImporterRegistry.cpp
  167. Common/DefaultProgressHandler.h
  168. Common/DefaultIOStream.cpp
  169. Common/DefaultIOSystem.cpp
  170. Common/ZipArchiveIOSystem.cpp
  171. Common/PolyTools.h
  172. Common/Importer.cpp
  173. Common/IFF.h
  174. Common/SGSpatialSort.cpp
  175. Common/VertexTriangleAdjacency.cpp
  176. Common/VertexTriangleAdjacency.h
  177. Common/SpatialSort.cpp
  178. Common/SceneCombiner.cpp
  179. Common/ScenePreprocessor.cpp
  180. Common/ScenePreprocessor.h
  181. Common/SkeletonMeshBuilder.cpp
  182. Common/StandardShapes.cpp
  183. Common/TargetAnimation.cpp
  184. Common/TargetAnimation.h
  185. Common/RemoveComments.cpp
  186. Common/Subdivision.cpp
  187. Common/scene.cpp
  188. Common/Bitmap.cpp
  189. Common/Version.cpp
  190. Common/CreateAnimMesh.cpp
  191. Common/simd.h
  192. Common/simd.cpp
  193. Common/material.cpp
  194. Common/AssertHandler.cpp
  195. Common/Exceptional.cpp
  196. )
  197. SOURCE_GROUP(Common FILES ${Common_SRCS})
  198. SET( CApi_SRCS
  199. CApi/CInterfaceIOWrapper.cpp
  200. CApi/CInterfaceIOWrapper.h
  201. )
  202. SOURCE_GROUP(CApi FILES ${CApi_SRCS})
  203. SET( STEPParser_SRCS
  204. AssetLib/STEPParser/STEPFileReader.h
  205. AssetLib/STEPParser/STEPFileReader.cpp
  206. AssetLib/STEPParser/STEPFileEncoding.cpp
  207. AssetLib/STEPParser/STEPFileEncoding.h
  208. )
  209. SOURCE_GROUP(STEPParser FILES ${STEPParser_SRCS})
  210. IF ( ASSIMP_BUILD_NONFREE_C4D_IMPORTER )
  211. SET( C4D_SRCS
  212. AssetLib/C4D/C4DImporter.cpp
  213. AssetLib/C4D/C4DImporter.h
  214. )
  215. SOURCE_GROUP( C4D FILES ${C4D_SRCS})
  216. ENDIF ()
  217. # if this variable is set to TRUE, the user can manually disable importers by setting
  218. # ASSIMP_BUILD_XXX_IMPORTER to FALSE for each importer
  219. # if this variable is set to FALSE, the user can manually enable importers by setting
  220. # ASSIMP_BUILD_XXX_IMPORTER to TRUE for each importer
  221. OPTION(ASSIMP_BUILD_ALL_IMPORTERS_BY_DEFAULT "default value of all ASSIMP_BUILD_XXX_IMPORTER values" TRUE)
  222. # macro to add the CMake Option ADD_ASSIMP_IMPORTER_<name> which enables compile of loader
  223. # this way selective loaders can be compiled (reduces filesize + compile time)
  224. MACRO(ADD_ASSIMP_IMPORTER name)
  225. IF (ASSIMP_BUILD_ALL_IMPORTERS_BY_DEFAULT)
  226. set(ASSIMP_IMPORTER_ENABLED TRUE)
  227. IF (DEFINED ASSIMP_BUILD_${name}_IMPORTER AND NOT ASSIMP_BUILD_${name}_IMPORTER)
  228. set(ASSIMP_IMPORTER_ENABLED FALSE)
  229. ENDIF ()
  230. ELSE ()
  231. set(ASSIMP_IMPORTER_ENABLED ${ASSIMP_BUILD_${name}_IMPORTER})
  232. ENDIF ()
  233. IF (ASSIMP_IMPORTER_ENABLED)
  234. LIST(APPEND ASSIMP_LOADER_SRCS ${ARGN})
  235. SET(ASSIMP_IMPORTERS_ENABLED "${ASSIMP_IMPORTERS_ENABLED} ${name}")
  236. SOURCE_GROUP(AssetLib\\${name} FILES ${ARGN})
  237. ELSE()
  238. SET(${name}_SRC "")
  239. SET(ASSIMP_IMPORTERS_DISABLED "${ASSIMP_IMPORTERS_DISABLED} ${name}")
  240. add_definitions(-DASSIMP_BUILD_NO_${name}_IMPORTER)
  241. ENDIF()
  242. ENDMACRO()
  243. if (NOT ASSIMP_NO_EXPORT)
  244. # if this variable is set to TRUE, the user can manually disable exporters by setting
  245. # ASSIMP_BUILD_XXX_EXPORTER to FALSE for each exporter
  246. # if this variable is set to FALSE, the user can manually enable exporters by setting
  247. # ASSIMP_BUILD_XXX_EXPORTER to TRUE for each exporter
  248. OPTION(ASSIMP_BUILD_ALL_EXPORTERS_BY_DEFAULT "default value of all ASSIMP_BUILD_XXX_EXPORTER values" TRUE)
  249. # macro to add the CMake Option ADD_ASSIMP_IMPORTER_<name> which enables compile of loader
  250. # this way selective loaders can be compiled (reduces filesize + compile time)
  251. MACRO(ADD_ASSIMP_EXPORTER name)
  252. IF (ASSIMP_NO_EXPORT)
  253. set(ASSIMP_EXPORTER_ENABLED FALSE)
  254. ELSEIF (ASSIMP_BUILD_ALL_EXPORTERS_BY_DEFAULT)
  255. set(ASSIMP_EXPORTER_ENABLED TRUE)
  256. IF (DEFINED ASSIMP_BUILD_${name}_EXPORTER AND NOT ASSIMP_BUILD_${name}_EXPORTER)
  257. set(ASSIMP_EXPORTER_ENABLED FALSE)
  258. ENDIF ()
  259. ELSE ()
  260. set(ASSIMP_EXPORTER_ENABLED ${ASSIMP_BUILD_${name}_EXPORTER})
  261. ENDIF ()
  262. IF (ASSIMP_EXPORTER_ENABLED)
  263. SET(ASSIMP_EXPORTERS_ENABLED "${ASSIMP_EXPORTERS_ENABLED} ${name}")
  264. LIST(APPEND ASSIMP_EXPORTER_SRCS ${ARGN})
  265. SOURCE_GROUP(AssetLib\\${name} FILES ${ARGN})
  266. ELSE()
  267. SET(ASSIMP_EXPORTERS_DISABLED "${ASSIMP_EXPORTERS_DISABLED} ${name}")
  268. add_definitions(-DASSIMP_BUILD_NO_${name}_EXPORTER)
  269. ENDIF()
  270. ENDMACRO()
  271. endif()
  272. SET(ASSIMP_LOADER_SRCS "")
  273. SET(ASSIMP_IMPORTERS_ENABLED "") # list of enabled importers
  274. SET(ASSIMP_IMPORTERS_DISABLED "") # disabled importers list (used to print)
  275. SET(ASSIMP_EXPORTER_SRCS "")
  276. SET(ASSIMP_EXPORTERS_ENABLED "") # list of enabled exporters
  277. SET(ASSIMP_EXPORTERS_DISABLED "") # disabled exporters list (used to print)
  278. ADD_ASSIMP_IMPORTER( AMF
  279. AssetLib/AMF/AMFImporter.hpp
  280. AssetLib/AMF/AMFImporter_Macro.hpp
  281. AssetLib/AMF/AMFImporter_Node.hpp
  282. AssetLib/AMF/AMFImporter.cpp
  283. AssetLib/AMF/AMFImporter_Geometry.cpp
  284. AssetLib/AMF/AMFImporter_Material.cpp
  285. AssetLib/AMF/AMFImporter_Postprocess.cpp
  286. )
  287. ADD_ASSIMP_IMPORTER( 3DS
  288. AssetLib/3DS/3DSConverter.cpp
  289. AssetLib/3DS/3DSHelper.h
  290. AssetLib/3DS/3DSLoader.cpp
  291. AssetLib/3DS/3DSLoader.h
  292. )
  293. ADD_ASSIMP_IMPORTER( AC
  294. AssetLib/AC/ACLoader.cpp
  295. AssetLib/AC/ACLoader.h
  296. )
  297. ADD_ASSIMP_IMPORTER( ASE
  298. AssetLib/ASE/ASELoader.cpp
  299. AssetLib/ASE/ASELoader.h
  300. AssetLib/ASE/ASEParser.cpp
  301. AssetLib/ASE/ASEParser.h
  302. )
  303. ADD_ASSIMP_IMPORTER( ASSBIN
  304. AssetLib/Assbin/AssbinLoader.h
  305. AssetLib/Assbin/AssbinLoader.cpp
  306. )
  307. ADD_ASSIMP_IMPORTER( B3D
  308. AssetLib/B3D/B3DImporter.cpp
  309. AssetLib/B3D/B3DImporter.h
  310. )
  311. ADD_ASSIMP_IMPORTER( BVH
  312. AssetLib/BVH/BVHLoader.cpp
  313. AssetLib/BVH/BVHLoader.h
  314. )
  315. ADD_ASSIMP_IMPORTER( COLLADA
  316. AssetLib/Collada/ColladaHelper.cpp
  317. AssetLib/Collada/ColladaHelper.h
  318. AssetLib/Collada/ColladaLoader.cpp
  319. AssetLib/Collada/ColladaLoader.h
  320. AssetLib/Collada/ColladaParser.cpp
  321. AssetLib/Collada/ColladaParser.h
  322. )
  323. ADD_ASSIMP_IMPORTER( DXF
  324. AssetLib/DXF/DXFLoader.cpp
  325. AssetLib/DXF/DXFLoader.h
  326. AssetLib/DXF/DXFHelper.h
  327. )
  328. ADD_ASSIMP_IMPORTER( CSM
  329. AssetLib/CSM/CSMLoader.cpp
  330. AssetLib/CSM/CSMLoader.h
  331. )
  332. ADD_ASSIMP_IMPORTER( HMP
  333. AssetLib/HMP/HMPFileData.h
  334. AssetLib/HMP/HMPLoader.cpp
  335. AssetLib/HMP/HMPLoader.h
  336. AssetLib/HMP/HalfLifeFileData.h
  337. )
  338. ADD_ASSIMP_IMPORTER( IRRMESH
  339. AssetLib/Irr/IRRMeshLoader.cpp
  340. AssetLib/Irr/IRRMeshLoader.h
  341. AssetLib/Irr/IRRShared.cpp
  342. AssetLib/Irr/IRRShared.h
  343. )
  344. ADD_ASSIMP_IMPORTER( IRR
  345. AssetLib/Irr/IRRLoader.cpp
  346. AssetLib/Irr/IRRLoader.h
  347. AssetLib/Irr/IRRShared.cpp
  348. AssetLib/Irr/IRRShared.h
  349. )
  350. ADD_ASSIMP_IMPORTER( LWO
  351. AssetLib/LWO/LWOAnimation.cpp
  352. AssetLib/LWO/LWOAnimation.h
  353. AssetLib/LWO/LWOBLoader.cpp
  354. AssetLib/LWO/LWOFileData.h
  355. AssetLib/LWO/LWOLoader.cpp
  356. AssetLib/LWO/LWOLoader.h
  357. AssetLib/LWO/LWOMaterial.cpp
  358. )
  359. ADD_ASSIMP_IMPORTER( LWS
  360. AssetLib/LWS/LWSLoader.cpp
  361. AssetLib/LWS/LWSLoader.h
  362. )
  363. ADD_ASSIMP_IMPORTER( M3D
  364. AssetLib/M3D/M3DMaterials.h
  365. AssetLib/M3D/M3DImporter.h
  366. AssetLib/M3D/M3DImporter.cpp
  367. AssetLib/M3D/M3DWrapper.h
  368. AssetLib/M3D/M3DWrapper.cpp
  369. AssetLib/M3D/m3d.h
  370. )
  371. ADD_ASSIMP_IMPORTER( MD2
  372. AssetLib/MD2/MD2FileData.h
  373. AssetLib/MD2/MD2Loader.cpp
  374. AssetLib/MD2/MD2Loader.h
  375. AssetLib/MD2/MD2NormalTable.h
  376. )
  377. ADD_ASSIMP_IMPORTER( MD3
  378. AssetLib/MD3/MD3FileData.h
  379. AssetLib/MD3/MD3Loader.cpp
  380. AssetLib/MD3/MD3Loader.h
  381. )
  382. ADD_ASSIMP_IMPORTER( MD5
  383. AssetLib/MD5/MD5Loader.cpp
  384. AssetLib/MD5/MD5Loader.h
  385. AssetLib/MD5/MD5Parser.cpp
  386. AssetLib/MD5/MD5Parser.h
  387. )
  388. ADD_ASSIMP_IMPORTER( MDC
  389. AssetLib/MDC/MDCFileData.h
  390. AssetLib/MDC/MDCLoader.cpp
  391. AssetLib/MDC/MDCLoader.h
  392. AssetLib/MDC/MDCNormalTable.h
  393. )
  394. ADD_ASSIMP_IMPORTER( MDL
  395. AssetLib/MDL/MDLDefaultColorMap.h
  396. AssetLib/MDL/MDLFileData.h
  397. AssetLib/MDL/MDLLoader.cpp
  398. AssetLib/MDL/MDLLoader.h
  399. AssetLib/MDL/MDLMaterialLoader.cpp
  400. AssetLib/MDL/HalfLife/HalfLifeMDLBaseHeader.h
  401. AssetLib/MDL/HalfLife/HL1FileData.h
  402. AssetLib/MDL/HalfLife/HL1MDLLoader.cpp
  403. AssetLib/MDL/HalfLife/HL1MDLLoader.h
  404. AssetLib/MDL/HalfLife/HL1ImportDefinitions.h
  405. AssetLib/MDL/HalfLife/HL1ImportSettings.h
  406. AssetLib/MDL/HalfLife/HL1MeshTrivert.h
  407. AssetLib/MDL/HalfLife/LogFunctions.h
  408. AssetLib/MDL/HalfLife/UniqueNameGenerator.cpp
  409. AssetLib/MDL/HalfLife/UniqueNameGenerator.h
  410. )
  411. SET( MaterialSystem_SRCS
  412. Material/MaterialSystem.cpp
  413. Material/MaterialSystem.h
  414. )
  415. SOURCE_GROUP( MaterialSystem FILES ${MaterialSystem_SRCS})
  416. ADD_ASSIMP_IMPORTER( NFF
  417. AssetLib/NFF/NFFLoader.cpp
  418. AssetLib/NFF/NFFLoader.h
  419. )
  420. ADD_ASSIMP_IMPORTER( NDO
  421. AssetLib/NDO/NDOLoader.cpp
  422. AssetLib/NDO/NDOLoader.h
  423. )
  424. ADD_ASSIMP_IMPORTER( OFF
  425. AssetLib/OFF/OFFLoader.cpp
  426. AssetLib/OFF/OFFLoader.h
  427. )
  428. ADD_ASSIMP_IMPORTER( OBJ
  429. AssetLib/Obj/ObjFileData.h
  430. AssetLib/Obj/ObjFileImporter.cpp
  431. AssetLib/Obj/ObjFileImporter.h
  432. AssetLib/Obj/ObjFileMtlImporter.cpp
  433. AssetLib/Obj/ObjFileMtlImporter.h
  434. AssetLib/Obj/ObjFileParser.cpp
  435. AssetLib/Obj/ObjFileParser.h
  436. AssetLib/Obj/ObjTools.h
  437. )
  438. ADD_ASSIMP_IMPORTER( OGRE
  439. AssetLib/Ogre/OgreImporter.h
  440. AssetLib/Ogre/OgreStructs.h
  441. AssetLib/Ogre/OgreParsingUtils.h
  442. AssetLib/Ogre/OgreBinarySerializer.h
  443. AssetLib/Ogre/OgreXmlSerializer.h
  444. AssetLib/Ogre/OgreImporter.cpp
  445. AssetLib/Ogre/OgreStructs.cpp
  446. AssetLib/Ogre/OgreBinarySerializer.cpp
  447. AssetLib/Ogre/OgreXmlSerializer.cpp
  448. AssetLib/Ogre/OgreMaterial.cpp
  449. )
  450. ADD_ASSIMP_IMPORTER( OPENGEX
  451. AssetLib/OpenGEX/OpenGEXImporter.cpp
  452. AssetLib/OpenGEX/OpenGEXImporter.h
  453. AssetLib/OpenGEX/OpenGEXStructs.h
  454. )
  455. ADD_ASSIMP_IMPORTER( PLY
  456. AssetLib/Ply/PlyLoader.cpp
  457. AssetLib/Ply/PlyLoader.h
  458. AssetLib/Ply/PlyParser.cpp
  459. AssetLib/Ply/PlyParser.h
  460. )
  461. ADD_ASSIMP_IMPORTER( MS3D
  462. AssetLib/MS3D/MS3DLoader.cpp
  463. AssetLib/MS3D/MS3DLoader.h
  464. )
  465. ADD_ASSIMP_IMPORTER( COB
  466. AssetLib/COB/COBLoader.cpp
  467. AssetLib/COB/COBLoader.h
  468. AssetLib/COB/COBScene.h
  469. )
  470. ADD_ASSIMP_IMPORTER( BLEND
  471. AssetLib/Blender/BlenderLoader.cpp
  472. AssetLib/Blender/BlenderLoader.h
  473. AssetLib/Blender/BlenderDNA.cpp
  474. AssetLib/Blender/BlenderDNA.h
  475. AssetLib/Blender/BlenderDNA.inl
  476. AssetLib/Blender/BlenderScene.cpp
  477. AssetLib/Blender/BlenderScene.h
  478. AssetLib/Blender/BlenderSceneGen.h
  479. AssetLib/Blender/BlenderIntermediate.h
  480. AssetLib/Blender/BlenderModifier.h
  481. AssetLib/Blender/BlenderModifier.cpp
  482. AssetLib/Blender/BlenderBMesh.h
  483. AssetLib/Blender/BlenderBMesh.cpp
  484. AssetLib/Blender/BlenderTessellator.h
  485. AssetLib/Blender/BlenderTessellator.cpp
  486. AssetLib/Blender/BlenderCustomData.h
  487. AssetLib/Blender/BlenderCustomData.cpp
  488. )
  489. ADD_ASSIMP_IMPORTER( IFC
  490. AssetLib/IFC/IFCLoader.cpp
  491. AssetLib/IFC/IFCLoader.h
  492. AssetLib/IFC/IFCReaderGen1_2x3.cpp
  493. AssetLib/IFC/IFCReaderGen2_2x3.cpp
  494. AssetLib/IFC/IFCReaderGen_2x3.h
  495. AssetLib/IFC/IFCUtil.h
  496. AssetLib/IFC/IFCUtil.cpp
  497. AssetLib/IFC/IFCGeometry.cpp
  498. AssetLib/IFC/IFCMaterial.cpp
  499. AssetLib/IFC/IFCProfile.cpp
  500. AssetLib/IFC/IFCCurve.cpp
  501. AssetLib/IFC/IFCBoolean.cpp
  502. AssetLib/IFC/IFCOpenings.cpp
  503. )
  504. if (ASSIMP_BUILD_IFC_IMPORTER)
  505. if (MSVC)
  506. set_source_files_properties(Importer/IFC/IFCReaderGen1_2x3.cpp Importer/IFC/IFCReaderGen2_2x3.cpp PROPERTIES COMPILE_FLAGS "/bigobj")
  507. elseif(CMAKE_COMPILER_IS_MINGW)
  508. set_source_files_properties(Importer/IFC/IFCReaderGen1_2x3.cpp Importer/IFC/IFCReaderGen2_2x3.cpp PROPERTIES COMPILE_FLAGS "-O2 -Wa,-mbig-obj")
  509. endif()
  510. endif ()
  511. ADD_ASSIMP_IMPORTER( XGL
  512. AssetLib/XGL/XGLLoader.cpp
  513. AssetLib/XGL/XGLLoader.h
  514. )
  515. ADD_ASSIMP_IMPORTER( FBX
  516. AssetLib/FBX/FBXImporter.cpp
  517. AssetLib/FBX/FBXCompileConfig.h
  518. AssetLib/FBX/FBXImporter.h
  519. AssetLib/FBX/FBXParser.cpp
  520. AssetLib/FBX/FBXParser.h
  521. AssetLib/FBX/FBXTokenizer.cpp
  522. AssetLib/FBX/FBXTokenizer.h
  523. AssetLib/FBX/FBXImportSettings.h
  524. AssetLib/FBX/FBXConverter.h
  525. AssetLib/FBX/FBXConverter.cpp
  526. AssetLib/FBX/FBXUtil.h
  527. AssetLib/FBX/FBXUtil.cpp
  528. AssetLib/FBX/FBXDocument.h
  529. AssetLib/FBX/FBXDocument.cpp
  530. AssetLib/FBX/FBXProperties.h
  531. AssetLib/FBX/FBXProperties.cpp
  532. AssetLib/FBX/FBXMeshGeometry.h
  533. AssetLib/FBX/FBXMeshGeometry.cpp
  534. AssetLib/FBX/FBXMaterial.cpp
  535. AssetLib/FBX/FBXModel.cpp
  536. AssetLib/FBX/FBXAnimation.cpp
  537. AssetLib/FBX/FBXNodeAttribute.cpp
  538. AssetLib/FBX/FBXDeformer.cpp
  539. AssetLib/FBX/FBXBinaryTokenizer.cpp
  540. AssetLib/FBX/FBXDocumentUtil.cpp
  541. AssetLib/FBX/FBXCommon.h
  542. )
  543. if (NOT ASSIMP_NO_EXPORT)
  544. ADD_ASSIMP_EXPORTER( OBJ
  545. AssetLib/Obj/ObjExporter.h
  546. AssetLib/Obj/ObjExporter.cpp)
  547. ADD_ASSIMP_EXPORTER( OPENGEX
  548. AssetLib/OpenGEX/OpenGEXExporter.cpp
  549. AssetLib/OpenGEX/OpenGEXExporter.h)
  550. ADD_ASSIMP_EXPORTER( PLY
  551. AssetLib/Ply/PlyExporter.cpp
  552. AssetLib/Ply/PlyExporter.h)
  553. ADD_ASSIMP_EXPORTER( 3DS
  554. AssetLib/3DS/3DSExporter.h
  555. AssetLib/3DS/3DSExporter.cpp)
  556. ADD_ASSIMP_EXPORTER( ASSBIN
  557. AssetLib/Assbin/AssbinExporter.h
  558. AssetLib/Assbin/AssbinExporter.cpp
  559. AssetLib/Assbin/AssbinFileWriter.h
  560. AssetLib/Assbin/AssbinFileWriter.cpp)
  561. ADD_ASSIMP_EXPORTER( ASSXML
  562. AssetLib/Assxml/AssxmlExporter.h
  563. AssetLib/Assxml/AssxmlExporter.cpp
  564. AssetLib/Assxml/AssxmlFileWriter.h
  565. AssetLib/Assxml/AssxmlFileWriter.cpp)
  566. ADD_ASSIMP_EXPORTER(M3D
  567. AssetLib/M3D/M3DExporter.h
  568. AssetLib/M3D/M3DExporter.cpp)
  569. ADD_ASSIMP_EXPORTER(COLLADA
  570. AssetLib/Collada/ColladaExporter.h
  571. AssetLib/Collada/ColladaExporter.cpp)
  572. ADD_ASSIMP_EXPORTER( FBX
  573. AssetLib/FBX/FBXExporter.h
  574. AssetLib/FBX/FBXExporter.cpp
  575. AssetLib/FBX/FBXExportNode.h
  576. AssetLib/FBX/FBXExportNode.cpp
  577. AssetLib/FBX/FBXExportProperty.h
  578. AssetLib/FBX/FBXExportProperty.cpp)
  579. ADD_ASSIMP_EXPORTER( STL
  580. AssetLib/STL/STLExporter.h
  581. AssetLib/STL/STLExporter.cpp)
  582. ADD_ASSIMP_EXPORTER( X
  583. AssetLib/X/XFileExporter.h
  584. AssetLib/X/XFileExporter.cpp)
  585. ADD_ASSIMP_EXPORTER( X3D
  586. AssetLib/X3D/X3DExporter.cpp
  587. AssetLib/X3D/X3DExporter.hpp)
  588. ADD_ASSIMP_EXPORTER( GLTF
  589. AssetLib/glTF/glTFExporter.h
  590. AssetLib/glTF/glTFExporter.cpp
  591. AssetLib/glTF2/glTF2Exporter.h
  592. AssetLib/glTF2/glTF2Exporter.cpp)
  593. ADD_ASSIMP_EXPORTER( 3MF
  594. AssetLib/3MF/D3MFExporter.h
  595. AssetLib/3MF/D3MFExporter.cpp)
  596. ADD_ASSIMP_EXPORTER( ASSJSON
  597. AssetLib/Assjson/cencode.c
  598. AssetLib/Assjson/cencode.h
  599. AssetLib/Assjson/json_exporter.cpp
  600. AssetLib/Assjson/mesh_splitter.cpp
  601. AssetLib/Assjson/mesh_splitter.h)
  602. ADD_ASSIMP_EXPORTER( STEP
  603. AssetLib/Step/StepExporter.h
  604. AssetLib/Step/StepExporter.cpp)
  605. endif()
  606. SET( PostProcessing_SRCS
  607. PostProcessing/CalcTangentsProcess.cpp
  608. PostProcessing/CalcTangentsProcess.h
  609. PostProcessing/ComputeUVMappingProcess.cpp
  610. PostProcessing/ComputeUVMappingProcess.h
  611. PostProcessing/ConvertToLHProcess.cpp
  612. PostProcessing/ConvertToLHProcess.h
  613. PostProcessing/EmbedTexturesProcess.cpp
  614. PostProcessing/EmbedTexturesProcess.h
  615. PostProcessing/FindDegenerates.cpp
  616. PostProcessing/FindDegenerates.h
  617. PostProcessing/FindInstancesProcess.cpp
  618. PostProcessing/FindInstancesProcess.h
  619. PostProcessing/FindInvalidDataProcess.cpp
  620. PostProcessing/FindInvalidDataProcess.h
  621. PostProcessing/FixNormalsStep.cpp
  622. PostProcessing/FixNormalsStep.h
  623. PostProcessing/DropFaceNormalsProcess.cpp
  624. PostProcessing/DropFaceNormalsProcess.h
  625. PostProcessing/GenFaceNormalsProcess.cpp
  626. PostProcessing/GenFaceNormalsProcess.h
  627. PostProcessing/GenVertexNormalsProcess.cpp
  628. PostProcessing/GenVertexNormalsProcess.h
  629. PostProcessing/PretransformVertices.cpp
  630. PostProcessing/PretransformVertices.h
  631. PostProcessing/ImproveCacheLocality.cpp
  632. PostProcessing/ImproveCacheLocality.h
  633. PostProcessing/JoinVerticesProcess.cpp
  634. PostProcessing/JoinVerticesProcess.h
  635. PostProcessing/LimitBoneWeightsProcess.cpp
  636. PostProcessing/LimitBoneWeightsProcess.h
  637. PostProcessing/RemoveRedundantMaterials.cpp
  638. PostProcessing/RemoveRedundantMaterials.h
  639. PostProcessing/RemoveVCProcess.cpp
  640. PostProcessing/RemoveVCProcess.h
  641. PostProcessing/SortByPTypeProcess.cpp
  642. PostProcessing/SortByPTypeProcess.h
  643. PostProcessing/SplitLargeMeshes.cpp
  644. PostProcessing/SplitLargeMeshes.h
  645. PostProcessing/TextureTransform.cpp
  646. PostProcessing/TextureTransform.h
  647. PostProcessing/TriangulateProcess.cpp
  648. PostProcessing/TriangulateProcess.h
  649. PostProcessing/ValidateDataStructure.cpp
  650. PostProcessing/ValidateDataStructure.h
  651. PostProcessing/OptimizeGraph.cpp
  652. PostProcessing/OptimizeGraph.h
  653. PostProcessing/OptimizeMeshes.cpp
  654. PostProcessing/OptimizeMeshes.h
  655. PostProcessing/DeboneProcess.cpp
  656. PostProcessing/DeboneProcess.h
  657. PostProcessing/ProcessHelper.h
  658. PostProcessing/ProcessHelper.cpp
  659. PostProcessing/MakeVerboseFormat.cpp
  660. PostProcessing/MakeVerboseFormat.h
  661. PostProcessing/ScaleProcess.cpp
  662. PostProcessing/ScaleProcess.h
  663. PostProcessing/ArmaturePopulate.cpp
  664. PostProcessing/ArmaturePopulate.h
  665. PostProcessing/GenBoundingBoxesProcess.cpp
  666. PostProcessing/GenBoundingBoxesProcess.h
  667. PostProcessing/SplitByBoneCountProcess.cpp
  668. PostProcessing/SplitByBoneCountProcess.h
  669. )
  670. SOURCE_GROUP( PostProcessing FILES ${PostProcessing_SRCS})
  671. ADD_ASSIMP_IMPORTER( Q3D
  672. AssetLib/Q3D/Q3DLoader.cpp
  673. AssetLib/Q3D/Q3DLoader.h
  674. )
  675. ADD_ASSIMP_IMPORTER( Q3BSP
  676. AssetLib/Q3BSP/Q3BSPFileData.h
  677. AssetLib/Q3BSP/Q3BSPFileParser.h
  678. AssetLib/Q3BSP/Q3BSPFileParser.cpp
  679. AssetLib/Q3BSP/Q3BSPFileImporter.h
  680. AssetLib/Q3BSP/Q3BSPFileImporter.cpp
  681. )
  682. ADD_ASSIMP_IMPORTER( RAW
  683. AssetLib/Raw/RawLoader.cpp
  684. AssetLib/Raw/RawLoader.h
  685. )
  686. ADD_ASSIMP_IMPORTER( SIB
  687. AssetLib/SIB/SIBImporter.cpp
  688. AssetLib/SIB/SIBImporter.h
  689. )
  690. ADD_ASSIMP_IMPORTER( SMD
  691. AssetLib/SMD/SMDLoader.cpp
  692. AssetLib/SMD/SMDLoader.h
  693. )
  694. ADD_ASSIMP_IMPORTER( STL
  695. AssetLib/STL/STLLoader.cpp
  696. AssetLib/STL/STLLoader.h
  697. )
  698. ADD_ASSIMP_IMPORTER( TERRAGEN
  699. AssetLib/Terragen/TerragenLoader.cpp
  700. AssetLib/Terragen/TerragenLoader.h
  701. )
  702. ADD_ASSIMP_IMPORTER( 3D
  703. AssetLib/Unreal/UnrealLoader.cpp
  704. AssetLib/Unreal/UnrealLoader.h
  705. )
  706. ADD_ASSIMP_IMPORTER( X
  707. AssetLib/X/XFileHelper.h
  708. AssetLib/X/XFileImporter.cpp
  709. AssetLib/X/XFileImporter.h
  710. AssetLib/X/XFileParser.cpp
  711. AssetLib/X/XFileParser.h
  712. )
  713. ADD_ASSIMP_IMPORTER( X3D
  714. AssetLib/X3D/X3DImporter.cpp
  715. AssetLib/X3D/X3DImporter.hpp
  716. )
  717. ADD_ASSIMP_IMPORTER( GLTF
  718. AssetLib/glTF/glTFCommon.h
  719. AssetLib/glTF/glTFCommon.cpp
  720. AssetLib/glTF/glTFAsset.h
  721. AssetLib/glTF/glTFAsset.inl
  722. AssetLib/glTF/glTFAssetWriter.h
  723. AssetLib/glTF/glTFAssetWriter.inl
  724. AssetLib/glTF/glTFImporter.cpp
  725. AssetLib/glTF/glTFImporter.h
  726. AssetLib/glTF2/glTF2Asset.h
  727. AssetLib/glTF2/glTF2Asset.inl
  728. AssetLib/glTF2/glTF2AssetWriter.h
  729. AssetLib/glTF2/glTF2AssetWriter.inl
  730. AssetLib/glTF2/glTF2Importer.cpp
  731. AssetLib/glTF2/glTF2Importer.h
  732. )
  733. ADD_ASSIMP_IMPORTER( 3MF
  734. AssetLib/3MF/D3MFImporter.h
  735. AssetLib/3MF/D3MFImporter.cpp
  736. AssetLib/3MF/D3MFOpcPackage.h
  737. AssetLib/3MF/D3MFOpcPackage.cpp
  738. AssetLib/3MF/3MFXmlTags.h
  739. )
  740. ADD_ASSIMP_IMPORTER( MMD
  741. AssetLib/MMD/MMDCpp14.h
  742. AssetLib/MMD/MMDImporter.cpp
  743. AssetLib/MMD/MMDImporter.h
  744. AssetLib/MMD/MMDPmdParser.h
  745. AssetLib/MMD/MMDPmxParser.h
  746. AssetLib/MMD/MMDPmxParser.cpp
  747. AssetLib/MMD/MMDVmdParser.h
  748. )
  749. # Workaround for issue #2406 - force problematic large file to be optimized to prevent string table overflow error
  750. # Used -Os instead of -O2 as previous issues had mentioned, since -Os is roughly speaking -O2, excluding any
  751. # optimizations that take up extra space. Given that the issue is a string table overflowing, -Os seemed appropriate
  752. # Also, I'm not positive if both link & compile flags are needed, but this hopefully ensures that the issue should not
  753. # recur for edge cases such as static builds.
  754. if ((CMAKE_COMPILER_IS_MINGW) AND (CMAKE_BUILD_TYPE MATCHES Debug))
  755. message("-- Applying MinGW StepFileGen1.cpp Debug Workaround")
  756. SET_SOURCE_FILES_PROPERTIES(Importer/StepFile/StepFileGen1.cpp PROPERTIES COMPILE_FLAGS -Os )
  757. SET_SOURCE_FILES_PROPERTIES(Importer/StepFile/StepFileGen1.cpp PROPERTIES LINK_FLAGS -Os )
  758. SET_SOURCE_FILES_PROPERTIES(Importer/StepFile/StepFileGen1.cpp PROPERTIES STATIC_LIBRARY_FLAGS -Os )
  759. endif()
  760. if ((NOT ASSIMP_NO_EXPORT) OR (NOT ASSIMP_EXPORTERS_ENABLED STREQUAL ""))
  761. SET( Exporter_SRCS
  762. Common/Exporter.cpp
  763. CApi/AssimpCExport.cpp
  764. ${HEADER_PATH}/BlobIOSystem.h
  765. )
  766. SOURCE_GROUP( Exporter FILES ${Exporter_SRCS})
  767. endif()
  768. SET( Extra_SRCS
  769. MD4FileData.h
  770. )
  771. SOURCE_GROUP( Extra FILES ${Extra_SRCS})
  772. # pugixml
  773. IF(ASSIMP_HUNTER_ENABLED)
  774. hunter_add_package(pugixml)
  775. find_package(pugixml CONFIG REQUIRED)
  776. ELSE()
  777. SET( Pugixml_SRCS
  778. ../contrib/pugixml/src/pugiconfig.hpp
  779. ../contrib/pugixml/src/pugixml.hpp
  780. )
  781. SOURCE_GROUP( Contrib\\Pugixml FILES ${Pugixml_SRCS})
  782. ENDIF()
  783. # utf8
  784. IF(ASSIMP_HUNTER_ENABLED)
  785. hunter_add_package(utf8)
  786. find_package(utf8cpp CONFIG REQUIRED)
  787. ELSE()
  788. # utf8 is header-only, so Assimp doesn't need to do anything.
  789. ENDIF()
  790. # polyclipping
  791. IF(ASSIMP_HUNTER_ENABLED)
  792. hunter_add_package(polyclipping)
  793. find_package(polyclipping CONFIG REQUIRED)
  794. ELSE()
  795. SET( Clipper_SRCS
  796. ../contrib/clipper/clipper.hpp
  797. ../contrib/clipper/clipper.cpp
  798. )
  799. SOURCE_GROUP( Contrib\\Clipper FILES ${Clipper_SRCS})
  800. ENDIF()
  801. # poly2tri
  802. IF(ASSIMP_HUNTER_ENABLED)
  803. hunter_add_package(poly2tri)
  804. find_package(poly2tri CONFIG REQUIRED)
  805. ELSE()
  806. SET( Poly2Tri_SRCS
  807. ../contrib/poly2tri/poly2tri/common/shapes.cc
  808. ../contrib/poly2tri/poly2tri/common/shapes.h
  809. ../contrib/poly2tri/poly2tri/common/utils.h
  810. ../contrib/poly2tri/poly2tri/sweep/advancing_front.h
  811. ../contrib/poly2tri/poly2tri/sweep/advancing_front.cc
  812. ../contrib/poly2tri/poly2tri/sweep/cdt.cc
  813. ../contrib/poly2tri/poly2tri/sweep/cdt.h
  814. ../contrib/poly2tri/poly2tri/sweep/sweep.cc
  815. ../contrib/poly2tri/poly2tri/sweep/sweep.h
  816. ../contrib/poly2tri/poly2tri/sweep/sweep_context.cc
  817. ../contrib/poly2tri/poly2tri/sweep/sweep_context.h
  818. )
  819. SOURCE_GROUP( Contrib\\Poly2Tri FILES ${Poly2Tri_SRCS})
  820. ENDIF()
  821. # minizip/unzip
  822. IF(ASSIMP_HUNTER_ENABLED)
  823. hunter_add_package(minizip)
  824. find_package(minizip CONFIG REQUIRED)
  825. ELSE()
  826. SET( unzip_SRCS
  827. ../contrib/unzip/crypt.h
  828. ../contrib/unzip/ioapi.c
  829. ../contrib/unzip/ioapi.h
  830. ../contrib/unzip/unzip.c
  831. ../contrib/unzip/unzip.h
  832. )
  833. SOURCE_GROUP(Contrib\\unzip FILES ${unzip_SRCS})
  834. ENDIF()
  835. # zip (https://github.com/kuba--/zip)
  836. IF(ASSIMP_HUNTER_ENABLED)
  837. hunter_add_package(zip)
  838. find_package(zip CONFIG REQUIRED)
  839. ELSE()
  840. SET( ziplib_SRCS
  841. ../contrib/zip/src/miniz.h
  842. ../contrib/zip/src/zip.c
  843. ../contrib/zip/src/zip.h
  844. )
  845. # TODO if cmake required version has been updated to >3.12.0, collapse this to the second case only
  846. if(${CMAKE_VERSION} VERSION_LESS "3.12.0")
  847. add_definitions(-DMINIZ_USE_UNALIGNED_LOADS_AND_STORES=0)
  848. else()
  849. add_compile_definitions(MINIZ_USE_UNALIGNED_LOADS_AND_STORES=0)
  850. endif()
  851. SOURCE_GROUP( ziplib FILES ${ziplib_SRCS} )
  852. ENDIF()
  853. # openddlparser
  854. IF(ASSIMP_HUNTER_ENABLED)
  855. hunter_add_package(openddlparser)
  856. find_package(openddlparser CONFIG REQUIRED)
  857. ELSE()
  858. SET ( openddl_parser_SRCS
  859. ../contrib/openddlparser/code/OpenDDLParser.cpp
  860. ../contrib/openddlparser/code/DDLNode.cpp
  861. ../contrib/openddlparser/code/OpenDDLCommon.cpp
  862. ../contrib/openddlparser/code/OpenDDLExport.cpp
  863. ../contrib/openddlparser/code/Value.cpp
  864. ../contrib/openddlparser/code/OpenDDLStream.cpp
  865. ../contrib/openddlparser/include/openddlparser/OpenDDLParser.h
  866. ../contrib/openddlparser/include/openddlparser/OpenDDLParserUtils.h
  867. ../contrib/openddlparser/include/openddlparser/OpenDDLCommon.h
  868. ../contrib/openddlparser/include/openddlparser/OpenDDLExport.h
  869. ../contrib/openddlparser/include/openddlparser/OpenDDLStream.h
  870. ../contrib/openddlparser/include/openddlparser/DDLNode.h
  871. ../contrib/openddlparser/include/openddlparser/Value.h
  872. )
  873. SOURCE_GROUP( Contrib\\openddl_parser FILES ${openddl_parser_SRCS})
  874. ENDIF()
  875. # Open3DGC
  876. IF(ASSIMP_HUNTER_ENABLED)
  877. # Nothing to do, not available in Hunter yet.
  878. ELSE()
  879. SET ( open3dgc_SRCS
  880. ../contrib/Open3DGC/o3dgcAdjacencyInfo.h
  881. ../contrib/Open3DGC/o3dgcArithmeticCodec.cpp
  882. ../contrib/Open3DGC/o3dgcArithmeticCodec.h
  883. ../contrib/Open3DGC/o3dgcBinaryStream.h
  884. ../contrib/Open3DGC/o3dgcCommon.h
  885. ../contrib/Open3DGC/o3dgcDVEncodeParams.h
  886. ../contrib/Open3DGC/o3dgcDynamicVectorDecoder.cpp
  887. ../contrib/Open3DGC/o3dgcDynamicVectorDecoder.h
  888. ../contrib/Open3DGC/o3dgcDynamicVectorEncoder.cpp
  889. ../contrib/Open3DGC/o3dgcDynamicVectorEncoder.h
  890. ../contrib/Open3DGC/o3dgcDynamicVector.h
  891. ../contrib/Open3DGC/o3dgcFIFO.h
  892. ../contrib/Open3DGC/o3dgcIndexedFaceSet.h
  893. ../contrib/Open3DGC/o3dgcIndexedFaceSet.inl
  894. ../contrib/Open3DGC/o3dgcSC3DMCDecoder.h
  895. ../contrib/Open3DGC/o3dgcSC3DMCDecoder.inl
  896. ../contrib/Open3DGC/o3dgcSC3DMCEncodeParams.h
  897. ../contrib/Open3DGC/o3dgcSC3DMCEncoder.h
  898. ../contrib/Open3DGC/o3dgcSC3DMCEncoder.inl
  899. ../contrib/Open3DGC/o3dgcTimer.h
  900. ../contrib/Open3DGC/o3dgcTools.cpp
  901. ../contrib/Open3DGC/o3dgcTriangleFans.cpp
  902. ../contrib/Open3DGC/o3dgcTriangleFans.h
  903. ../contrib/Open3DGC/o3dgcTriangleListDecoder.h
  904. ../contrib/Open3DGC/o3dgcTriangleListDecoder.inl
  905. ../contrib/Open3DGC/o3dgcTriangleListEncoder.h
  906. ../contrib/Open3DGC/o3dgcTriangleListEncoder.inl
  907. ../contrib/Open3DGC/o3dgcVector.h
  908. ../contrib/Open3DGC/o3dgcVector.inl
  909. )
  910. SOURCE_GROUP( Contrib\\open3dgc FILES ${open3dgc_SRCS})
  911. ENDIF()
  912. # Check dependencies for glTF importer with Open3DGC-compression.
  913. # RT-extensions is used in "contrib/Open3DGC/o3dgcTimer.h" for collecting statistics. Pointed file
  914. # has implementation for different platforms: WIN32, __MACH__ and other ("else" block).
  915. FIND_PACKAGE(RT QUIET)
  916. IF (NOT ASSIMP_HUNTER_ENABLED AND (RT_FOUND OR MSVC))
  917. SET( ASSIMP_IMPORTER_GLTF_USE_OPEN3DGC 1 )
  918. ADD_DEFINITIONS( -DASSIMP_IMPORTER_GLTF_USE_OPEN3DGC=1 )
  919. ELSE ()
  920. SET (open3dgc_SRCS "")
  921. MESSAGE (INFO " Hunter enabled or RT-extension not found. glTF import/export will be built without Open3DGC-compression.")
  922. #!TODO: off course is better to remove statistics timers from o3dgc codec. Or propose to choose what to use.
  923. ENDIF ()
  924. # RapidJSON
  925. IF(ASSIMP_HUNTER_ENABLED)
  926. hunter_add_package(RapidJSON)
  927. find_package(RapidJSON CONFIG REQUIRED)
  928. ELSE()
  929. INCLUDE_DIRECTORIES( "../contrib/rapidjson/include" )
  930. INCLUDE_DIRECTORIES( "../contrib" )
  931. INCLUDE_DIRECTORIES( "../contrib/pugixml/src" )
  932. ADD_DEFINITIONS( -DRAPIDJSON_HAS_STDSTRING=1 )
  933. ADD_DEFINITIONS( -DRAPIDJSON_NOMEMBERITERATORCLASS )
  934. ENDIF()
  935. # VC2010 fixes
  936. if(MSVC10)
  937. option( VC10_STDINT_FIX "Fix for VC10 Compiler regarding pstdint.h redefinition errors" OFF )
  938. if( VC10_STDINT_FIX )
  939. ADD_DEFINITIONS( -D_STDINT )
  940. endif()
  941. endif()
  942. ADD_DEFINITIONS( -DASSIMP_BUILD_DLL_EXPORT )
  943. IF( MSVC OR "${CMAKE_CXX_SIMULATE_ID}" MATCHES "MSVC") # clang with MSVC ABI
  944. ADD_DEFINITIONS( -D_SCL_SECURE_NO_WARNINGS )
  945. ADD_DEFINITIONS( -D_CRT_SECURE_NO_WARNINGS )
  946. endif ()
  947. IF(NOT ASSIMP_HUNTER_ENABLED)
  948. if (UNZIP_FOUND)
  949. SET (unzip_compile_SRCS "")
  950. else ()
  951. SET (unzip_compile_SRCS ${unzip_SRCS})
  952. INCLUDE_DIRECTORIES( "../contrib/unzip/" )
  953. endif ()
  954. ENDIF()
  955. MESSAGE(STATUS "Enabled importer formats:${ASSIMP_IMPORTERS_ENABLED}")
  956. MESSAGE(STATUS "Disabled importer formats:${ASSIMP_IMPORTERS_DISABLED}")
  957. if (NOT ASSIMP_NO_EXPORT)
  958. MESSAGE(STATUS "Enabled exporter formats:${ASSIMP_EXPORTERS_ENABLED}")
  959. MESSAGE(STATUS "Disabled exporter formats:${ASSIMP_EXPORTERS_DISABLED}")
  960. endif()
  961. SOURCE_GROUP( include\\assimp FILES ${PUBLIC_HEADERS} )
  962. SET( assimp_src
  963. # Assimp Files
  964. ${Core_SRCS}
  965. ${CApi_SRCS}
  966. ${Common_SRCS}
  967. ${Logging_SRCS}
  968. ${Exporter_SRCS}
  969. ${PostProcessing_SRCS}
  970. ${MaterialSystem_SRCS}
  971. ${STEPParser_SRCS}
  972. # ${Step_SRCS} check if we need a different approach
  973. # Model Support
  974. ${ASSIMP_LOADER_SRCS}
  975. ${ASSIMP_EXPORTER_SRCS}
  976. # Third-party libraries
  977. ${unzip_compile_SRCS}
  978. ${Poly2Tri_SRCS}
  979. ${Clipper_SRCS}
  980. ${openddl_parser_SRCS}
  981. ${open3dgc_SRCS}
  982. ${ziplib_SRCS}
  983. ${Pugixml_SRCS}
  984. # Necessary to show the headers in the project when using the VC++ generator:
  985. ${PUBLIC_HEADERS}
  986. ${COMPILER_HEADERS}
  987. )
  988. ADD_DEFINITIONS( -DOPENDDLPARSER_BUILD )
  989. IF(NOT ASSIMP_HUNTER_ENABLED)
  990. INCLUDE_DIRECTORIES(
  991. ${IRRXML_INCLUDE_DIR}
  992. ../contrib/openddlparser/include
  993. )
  994. ENDIF()
  995. IF (ASSIMP_BUILD_NONFREE_C4D_IMPORTER)
  996. SET( assimp_src ${assimp_src} ${C4D_SRCS})
  997. INCLUDE_DIRECTORIES(${C4D_INCLUDES})
  998. ENDIF ()
  999. ADD_LIBRARY( assimp ${assimp_src} )
  1000. ADD_LIBRARY(assimp::assimp ALIAS assimp)
  1001. TARGET_USE_COMMON_OUTPUT_DIRECTORY(assimp)
  1002. # enable warnings as errors ########################################
  1003. IF (MSVC)
  1004. TARGET_COMPILE_OPTIONS(assimp PRIVATE /WX)
  1005. ELSE()
  1006. TARGET_COMPILE_OPTIONS(assimp PRIVATE -Werror)
  1007. ENDIF()
  1008. TARGET_INCLUDE_DIRECTORIES ( assimp PUBLIC
  1009. $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/../include>
  1010. $<BUILD_INTERFACE:${CMAKE_CURRENT_BINARY_DIR}/../include>
  1011. $<INSTALL_INTERFACE:include>
  1012. )
  1013. IF(ASSIMP_HUNTER_ENABLED)
  1014. TARGET_LINK_LIBRARIES(assimp
  1015. PUBLIC
  1016. polyclipping::polyclipping
  1017. openddlparser::openddl_parser
  1018. poly2tri::poly2tri
  1019. minizip::minizip
  1020. ZLIB::zlib
  1021. RapidJSON::rapidjson
  1022. utf8cpp
  1023. zip::zip
  1024. pugixml
  1025. )
  1026. ELSE()
  1027. TARGET_LINK_LIBRARIES(assimp ${ZLIB_LIBRARIES} ${OPENDDL_PARSER_LIBRARIES} )
  1028. ENDIF()
  1029. if(ASSIMP_ANDROID_JNIIOSYSTEM)
  1030. set(ASSIMP_ANDROID_JNIIOSYSTEM_PATH port/AndroidJNI)
  1031. add_subdirectory(../${ASSIMP_ANDROID_JNIIOSYSTEM_PATH}/ ../${ASSIMP_ANDROID_JNIIOSYSTEM_PATH}/)
  1032. target_link_libraries(assimp android_jniiosystem)
  1033. endif()
  1034. IF (ASSIMP_BUILD_NONFREE_C4D_IMPORTER)
  1035. TARGET_LINK_LIBRARIES(assimp optimized ${C4D_RELEASE_LIBRARIES})
  1036. TARGET_LINK_LIBRARIES(assimp debug ${C4D_DEBUG_LIBRARIES})
  1037. TARGET_LINK_LIBRARIES(assimp ${C4D_EXTRA_LIBRARIES})
  1038. ENDIF ()
  1039. if( MSVC )
  1040. # in order to prevent DLL hell, each of the DLLs have to be suffixed with the major version and msvc prefix
  1041. # CMake 3.12 added a variable for this
  1042. if(MSVC_TOOLSET_VERSION)
  1043. set(MSVC_PREFIX "vc${MSVC_TOOLSET_VERSION}")
  1044. else()
  1045. if( MSVC70 OR MSVC71 )
  1046. set(MSVC_PREFIX "vc70")
  1047. elseif( MSVC80 )
  1048. set(MSVC_PREFIX "vc80")
  1049. elseif( MSVC90 )
  1050. set(MSVC_PREFIX "vc90")
  1051. elseif( MSVC10 )
  1052. set(MSVC_PREFIX "vc100")
  1053. elseif( MSVC11 )
  1054. set(MSVC_PREFIX "vc110")
  1055. elseif( MSVC12 )
  1056. set(MSVC_PREFIX "vc120")
  1057. elseif( MSVC_VERSION LESS 1910)
  1058. set(MSVC_PREFIX "vc140")
  1059. elseif( MSVC_VERSION LESS 1920)
  1060. set(MSVC_PREFIX "vc141")
  1061. elseif( MSVC_VERSION LESS 1930)
  1062. set(MSVC_PREFIX "vc142")
  1063. else()
  1064. MESSAGE(WARNING "unknown msvc version ${MSVC_VERSION}")
  1065. set(MSVC_PREFIX "vc150")
  1066. endif()
  1067. endif()
  1068. set(LIBRARY_SUFFIX "${ASSIMP_LIBRARY_SUFFIX}-${MSVC_PREFIX}-mt" CACHE STRING "the suffix for the assimp windows library")
  1069. endif()
  1070. if (${CMAKE_SYSTEM_NAME} MATCHES "WindowsStore")
  1071. target_compile_definitions(assimp PUBLIC WindowsStore)
  1072. TARGET_LINK_LIBRARIES(assimp advapi32)
  1073. endif()
  1074. SET_TARGET_PROPERTIES( assimp PROPERTIES
  1075. VERSION ${ASSIMP_VERSION}
  1076. SOVERSION ${ASSIMP_SOVERSION} # use full version
  1077. OUTPUT_NAME assimp${LIBRARY_SUFFIX}
  1078. )
  1079. if (APPLE)
  1080. if (ASSIMP_BUILD_FRAMEWORK)
  1081. SET_TARGET_PROPERTIES( assimp PROPERTIES
  1082. FRAMEWORK TRUE
  1083. FRAMEWORK_VERSION C
  1084. MACOSX_FRAMEWORK_IDENTIFIER net.sf.assimp
  1085. PUBLIC_HEADER "${PUBLIC_HEADERS}"
  1086. )
  1087. # PUBLIC_HEADER option does not support directory structure creation
  1088. # add ./Compiler/*.h to assimp.framework via copy command
  1089. ADD_CUSTOM_COMMAND(TARGET assimp POST_BUILD
  1090. COMMAND "${CMAKE_COMMAND}" -E copy_directory
  1091. "${HEADER_PATH}/Compiler"
  1092. assimp.framework/Headers/Compiler
  1093. COMMENT "Copying public ./Compiler/ header files to framework bundle's Headers/Compiler/")
  1094. ENDIF()
  1095. ENDIF()
  1096. # Build against external unzip, or add ../contrib/unzip so
  1097. # assimp can #include "unzip.h"
  1098. IF(NOT ASSIMP_HUNTER_ENABLED)
  1099. if (UNZIP_FOUND)
  1100. INCLUDE_DIRECTORIES(${UNZIP_INCLUDE_DIRS})
  1101. TARGET_LINK_LIBRARIES(assimp ${UNZIP_LIBRARIES})
  1102. else ()
  1103. INCLUDE_DIRECTORIES("../")
  1104. endif ()
  1105. ENDIF()
  1106. # Add RT-extension library for glTF importer with Open3DGC-compression.
  1107. IF (RT_FOUND AND ASSIMP_IMPORTER_GLTF_USE_OPEN3DGC)
  1108. TARGET_LINK_LIBRARIES(assimp ${RT_LIBRARY})
  1109. ENDIF ()
  1110. INSTALL( TARGETS assimp
  1111. EXPORT "${TARGETS_EXPORT_NAME}"
  1112. LIBRARY DESTINATION ${ASSIMP_LIB_INSTALL_DIR}
  1113. ARCHIVE DESTINATION ${ASSIMP_LIB_INSTALL_DIR}
  1114. RUNTIME DESTINATION ${ASSIMP_BIN_INSTALL_DIR}
  1115. FRAMEWORK DESTINATION ${ASSIMP_LIB_INSTALL_DIR}
  1116. COMPONENT ${LIBASSIMP_COMPONENT}
  1117. INCLUDES DESTINATION include
  1118. )
  1119. INSTALL( FILES ${PUBLIC_HEADERS} DESTINATION ${ASSIMP_INCLUDE_INSTALL_DIR}/assimp COMPONENT assimp-dev)
  1120. INSTALL( FILES ${COMPILER_HEADERS} DESTINATION ${ASSIMP_INCLUDE_INSTALL_DIR}/assimp/Compiler COMPONENT assimp-dev)
  1121. if (ASSIMP_ANDROID_JNIIOSYSTEM)
  1122. INSTALL(FILES ${HEADER_PATH}/${ASSIMP_ANDROID_JNIIOSYSTEM_PATH}/AndroidJNIIOSystem.h
  1123. DESTINATION ${ASSIMP_INCLUDE_INSTALL_DIR}
  1124. COMPONENT assimp-dev)
  1125. ENDIF()
  1126. if(MSVC AND ASSIMP_INSTALL_PDB)
  1127. # When only the static library is built, these properties must
  1128. # be set to ensure the static lib .pdb is staged for installation.
  1129. IF(NOT BUILD_SHARED_LIBS)
  1130. SET_TARGET_PROPERTIES( assimp PROPERTIES
  1131. COMPILE_PDB_OUTPUT_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}
  1132. COMPILE_PDB_NAME assimp${LIBRARY_SUFFIX}
  1133. COMPILE_PDB_NAME_DEBUG assimp${LIBRARY_SUFFIX}${CMAKE_DEBUG_POSTFIX}
  1134. )
  1135. ENDIF()
  1136. IF(CMAKE_GENERATOR MATCHES "^Visual Studio")
  1137. install(FILES ${Assimp_BINARY_DIR}/code/Debug/assimp${LIBRARY_SUFFIX}${CMAKE_DEBUG_POSTFIX}.pdb
  1138. DESTINATION ${ASSIMP_LIB_INSTALL_DIR}
  1139. CONFIGURATIONS Debug
  1140. )
  1141. install(FILES ${Assimp_BINARY_DIR}/code/RelWithDebInfo/assimp${LIBRARY_SUFFIX}.pdb
  1142. DESTINATION ${ASSIMP_LIB_INSTALL_DIR}
  1143. CONFIGURATIONS RelWithDebInfo
  1144. )
  1145. ELSE()
  1146. install(FILES ${Assimp_BINARY_DIR}/code/assimp${LIBRARY_SUFFIX}${CMAKE_DEBUG_POSTFIX}.pdb
  1147. DESTINATION ${ASSIMP_LIB_INSTALL_DIR}
  1148. CONFIGURATIONS Debug
  1149. )
  1150. install(FILES ${Assimp_BINARY_DIR}/code/assimp${LIBRARY_SUFFIX}.pdb
  1151. DESTINATION ${ASSIMP_LIB_INSTALL_DIR}
  1152. CONFIGURATIONS RelWithDebInfo
  1153. )
  1154. ENDIF()
  1155. ENDIF ()
  1156. if (ASSIMP_COVERALLS)
  1157. include(Coveralls)
  1158. set(COVERAGE_SRCS ${assimp_src} ${TEST_SRCS} )
  1159. # Create the coveralls target.
  1160. coveralls_setup(
  1161. "${COVERAGE_SRCS}" # The source files.
  1162. ON # If we should upload.
  1163. "${PROJECT_SOURCE_DIR}/cmake-modules/") # (Optional) Alternate project cmake module path.
  1164. ENDIF()