CMakeLists.txt 41 KB

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