CMakeLists.txt 37 KB

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