VCMI_lib.cmake 29 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757
  1. macro(add_main_lib TARGET_NAME LIBRARY_TYPE)
  2. if(NOT DEFINED MAIN_LIB_DIR)
  3. set(MAIN_LIB_DIR "${CMAKE_SOURCE_DIR}/lib")
  4. endif()
  5. set(lib_SRCS
  6. ${MAIN_LIB_DIR}/StdInc.cpp
  7. ${MAIN_LIB_DIR}/battle/AccessibilityInfo.cpp
  8. ${MAIN_LIB_DIR}/battle/BattleAction.cpp
  9. ${MAIN_LIB_DIR}/battle/BattleAttackInfo.cpp
  10. ${MAIN_LIB_DIR}/battle/BattleHex.cpp
  11. ${MAIN_LIB_DIR}/battle/BattleInfo.cpp
  12. ${MAIN_LIB_DIR}/battle/BattleProxy.cpp
  13. ${MAIN_LIB_DIR}/battle/BattleStateInfoForRetreat.cpp
  14. ${MAIN_LIB_DIR}/battle/CBattleInfoCallback.cpp
  15. ${MAIN_LIB_DIR}/battle/CBattleInfoEssentials.cpp
  16. ${MAIN_LIB_DIR}/battle/CObstacleInstance.cpp
  17. ${MAIN_LIB_DIR}/battle/CPlayerBattleCallback.cpp
  18. ${MAIN_LIB_DIR}/battle/CUnitState.cpp
  19. ${MAIN_LIB_DIR}/battle/DamageCalculator.cpp
  20. ${MAIN_LIB_DIR}/battle/Destination.cpp
  21. ${MAIN_LIB_DIR}/battle/IBattleState.cpp
  22. ${MAIN_LIB_DIR}/battle/ReachabilityInfo.cpp
  23. ${MAIN_LIB_DIR}/battle/SideInBattle.cpp
  24. ${MAIN_LIB_DIR}/battle/SiegeInfo.cpp
  25. ${MAIN_LIB_DIR}/battle/Unit.cpp
  26. ${MAIN_LIB_DIR}/bonuses/Bonus.cpp
  27. ${MAIN_LIB_DIR}/bonuses/BonusEnum.cpp
  28. ${MAIN_LIB_DIR}/bonuses/BonusList.cpp
  29. ${MAIN_LIB_DIR}/bonuses/BonusParams.cpp
  30. ${MAIN_LIB_DIR}/bonuses/BonusSelector.cpp
  31. ${MAIN_LIB_DIR}/bonuses/BonusCustomTypes.cpp
  32. ${MAIN_LIB_DIR}/bonuses/CBonusProxy.cpp
  33. ${MAIN_LIB_DIR}/bonuses/CBonusSystemNode.cpp
  34. ${MAIN_LIB_DIR}/bonuses/IBonusBearer.cpp
  35. ${MAIN_LIB_DIR}/bonuses/Limiters.cpp
  36. ${MAIN_LIB_DIR}/bonuses/Propagators.cpp
  37. ${MAIN_LIB_DIR}/bonuses/Updaters.cpp
  38. ${MAIN_LIB_DIR}/campaign/CampaignHandler.cpp
  39. ${MAIN_LIB_DIR}/campaign/CampaignState.cpp
  40. ${MAIN_LIB_DIR}/constants/EntityIdentifiers.cpp
  41. ${MAIN_LIB_DIR}/events/ApplyDamage.cpp
  42. ${MAIN_LIB_DIR}/events/GameResumed.cpp
  43. ${MAIN_LIB_DIR}/events/ObjectVisitEnded.cpp
  44. ${MAIN_LIB_DIR}/events/ObjectVisitStarted.cpp
  45. ${MAIN_LIB_DIR}/events/PlayerGotTurn.cpp
  46. ${MAIN_LIB_DIR}/events/TurnStarted.cpp
  47. ${MAIN_LIB_DIR}/filesystem/AdapterLoaders.cpp
  48. ${MAIN_LIB_DIR}/filesystem/CArchiveLoader.cpp
  49. ${MAIN_LIB_DIR}/filesystem/CBinaryReader.cpp
  50. ${MAIN_LIB_DIR}/filesystem/CCompressedStream.cpp
  51. ${MAIN_LIB_DIR}/filesystem/CFileInputStream.cpp
  52. ${MAIN_LIB_DIR}/filesystem/CFilesystemLoader.cpp
  53. ${MAIN_LIB_DIR}/filesystem/CMemoryBuffer.cpp
  54. ${MAIN_LIB_DIR}/filesystem/CMemoryStream.cpp
  55. ${MAIN_LIB_DIR}/filesystem/CZipLoader.cpp
  56. ${MAIN_LIB_DIR}/filesystem/CZipSaver.cpp
  57. ${MAIN_LIB_DIR}/filesystem/FileInfo.cpp
  58. ${MAIN_LIB_DIR}/filesystem/Filesystem.cpp
  59. ${MAIN_LIB_DIR}/filesystem/MinizipExtensions.cpp
  60. ${MAIN_LIB_DIR}/filesystem/ResourcePath.cpp
  61. ${MAIN_LIB_DIR}/gameState/CGameState.cpp
  62. ${MAIN_LIB_DIR}/gameState/CGameStateCampaign.cpp
  63. ${MAIN_LIB_DIR}/gameState/InfoAboutArmy.cpp
  64. ${MAIN_LIB_DIR}/gameState/TavernHeroesPool.cpp
  65. ${MAIN_LIB_DIR}/logging/CBasicLogConfigurator.cpp
  66. ${MAIN_LIB_DIR}/logging/CLogger.cpp
  67. ${MAIN_LIB_DIR}/mapObjectConstructors/AObjectTypeHandler.cpp
  68. ${MAIN_LIB_DIR}/mapObjectConstructors/CBankInstanceConstructor.cpp
  69. ${MAIN_LIB_DIR}/mapObjectConstructors/CObjectClassesHandler.cpp
  70. ${MAIN_LIB_DIR}/mapObjectConstructors/CommonConstructors.cpp
  71. ${MAIN_LIB_DIR}/mapObjectConstructors/CRewardableConstructor.cpp
  72. ${MAIN_LIB_DIR}/mapObjectConstructors/DwellingInstanceConstructor.cpp
  73. ${MAIN_LIB_DIR}/mapObjectConstructors/HillFortInstanceConstructor.cpp
  74. ${MAIN_LIB_DIR}/mapObjectConstructors/ShipyardInstanceConstructor.cpp
  75. ${MAIN_LIB_DIR}/mapObjects/CArmedInstance.cpp
  76. ${MAIN_LIB_DIR}/mapObjects/CBank.cpp
  77. ${MAIN_LIB_DIR}/mapObjects/CGCreature.cpp
  78. ${MAIN_LIB_DIR}/mapObjects/CGDwelling.cpp
  79. ${MAIN_LIB_DIR}/mapObjects/CGHeroInstance.cpp
  80. ${MAIN_LIB_DIR}/mapObjects/CGMarket.cpp
  81. ${MAIN_LIB_DIR}/mapObjects/CGObjectInstance.cpp
  82. ${MAIN_LIB_DIR}/mapObjects/CGPandoraBox.cpp
  83. ${MAIN_LIB_DIR}/mapObjects/CGTownBuilding.cpp
  84. ${MAIN_LIB_DIR}/mapObjects/CGTownInstance.cpp
  85. ${MAIN_LIB_DIR}/mapObjects/CObjectHandler.cpp
  86. ${MAIN_LIB_DIR}/mapObjects/CQuest.cpp
  87. ${MAIN_LIB_DIR}/mapObjects/CRewardableObject.cpp
  88. ${MAIN_LIB_DIR}/mapObjects/IMarket.cpp
  89. ${MAIN_LIB_DIR}/mapObjects/IObjectInterface.cpp
  90. ${MAIN_LIB_DIR}/mapObjects/MiscObjects.cpp
  91. ${MAIN_LIB_DIR}/mapObjects/ObjectTemplate.cpp
  92. ${MAIN_LIB_DIR}/mapping/CDrawRoadsOperation.cpp
  93. ${MAIN_LIB_DIR}/mapping/CMap.cpp
  94. ${MAIN_LIB_DIR}/mapping/CMapHeader.cpp
  95. ${MAIN_LIB_DIR}/mapping/CMapEditManager.cpp
  96. ${MAIN_LIB_DIR}/mapping/CMapInfo.cpp
  97. ${MAIN_LIB_DIR}/mapping/CMapOperation.cpp
  98. ${MAIN_LIB_DIR}/mapping/CMapService.cpp
  99. ${MAIN_LIB_DIR}/mapping/MapEditUtils.cpp
  100. ${MAIN_LIB_DIR}/mapping/MapIdentifiersH3M.cpp
  101. ${MAIN_LIB_DIR}/mapping/MapFeaturesH3M.cpp
  102. ${MAIN_LIB_DIR}/mapping/MapFormatH3M.cpp
  103. ${MAIN_LIB_DIR}/mapping/MapReaderH3M.cpp
  104. ${MAIN_LIB_DIR}/mapping/MapFormatJson.cpp
  105. ${MAIN_LIB_DIR}/mapping/ObstacleProxy.cpp
  106. ${MAIN_LIB_DIR}/modding/ActiveModsInSaveList.cpp
  107. ${MAIN_LIB_DIR}/modding/CModHandler.cpp
  108. ${MAIN_LIB_DIR}/modding/CModInfo.cpp
  109. ${MAIN_LIB_DIR}/modding/CModVersion.cpp
  110. ${MAIN_LIB_DIR}/modding/ContentTypeHandler.cpp
  111. ${MAIN_LIB_DIR}/modding/IdentifierStorage.cpp
  112. ${MAIN_LIB_DIR}/modding/ModUtility.cpp
  113. ${MAIN_LIB_DIR}/network/NetworkConnection.cpp
  114. ${MAIN_LIB_DIR}/network/NetworkHandler.cpp
  115. ${MAIN_LIB_DIR}/network/NetworkServer.cpp
  116. ${MAIN_LIB_DIR}/networkPacks/NetPacksLib.cpp
  117. ${MAIN_LIB_DIR}/pathfinder/CGPathNode.cpp
  118. ${MAIN_LIB_DIR}/pathfinder/CPathfinder.cpp
  119. ${MAIN_LIB_DIR}/pathfinder/NodeStorage.cpp
  120. ${MAIN_LIB_DIR}/pathfinder/PathfinderOptions.cpp
  121. ${MAIN_LIB_DIR}/pathfinder/PathfindingRules.cpp
  122. ${MAIN_LIB_DIR}/pathfinder/TurnInfo.cpp
  123. ${MAIN_LIB_DIR}/rewardable/Configuration.cpp
  124. ${MAIN_LIB_DIR}/rewardable/Info.cpp
  125. ${MAIN_LIB_DIR}/rewardable/Interface.cpp
  126. ${MAIN_LIB_DIR}/rewardable/Limiter.cpp
  127. ${MAIN_LIB_DIR}/rewardable/Reward.cpp
  128. ${MAIN_LIB_DIR}/rmg/RmgArea.cpp
  129. ${MAIN_LIB_DIR}/rmg/RmgObject.cpp
  130. ${MAIN_LIB_DIR}/rmg/RmgPath.cpp
  131. ${MAIN_LIB_DIR}/rmg/CMapGenerator.cpp
  132. ${MAIN_LIB_DIR}/rmg/CMapGenOptions.cpp
  133. ${MAIN_LIB_DIR}/rmg/CRmgTemplate.cpp
  134. ${MAIN_LIB_DIR}/rmg/CRmgTemplateStorage.cpp
  135. ${MAIN_LIB_DIR}/rmg/CZonePlacer.cpp
  136. ${MAIN_LIB_DIR}/rmg/TileInfo.cpp
  137. ${MAIN_LIB_DIR}/rmg/Zone.cpp
  138. ${MAIN_LIB_DIR}/rmg/Functions.cpp
  139. ${MAIN_LIB_DIR}/rmg/RmgMap.cpp
  140. ${MAIN_LIB_DIR}/rmg/PenroseTiling.cpp
  141. ${MAIN_LIB_DIR}/rmg/modificators/Modificator.cpp
  142. ${MAIN_LIB_DIR}/rmg/modificators/ObjectManager.cpp
  143. ${MAIN_LIB_DIR}/rmg/modificators/ObjectDistributor.cpp
  144. ${MAIN_LIB_DIR}/rmg/modificators/RoadPlacer.cpp
  145. ${MAIN_LIB_DIR}/rmg/modificators/TreasurePlacer.cpp
  146. ${MAIN_LIB_DIR}/rmg/modificators/PrisonHeroPlacer.cpp
  147. ${MAIN_LIB_DIR}/rmg/modificators/QuestArtifactPlacer.cpp
  148. ${MAIN_LIB_DIR}/rmg/modificators/ConnectionsPlacer.cpp
  149. ${MAIN_LIB_DIR}/rmg/modificators/WaterAdopter.cpp
  150. ${MAIN_LIB_DIR}/rmg/modificators/MinePlacer.cpp
  151. ${MAIN_LIB_DIR}/rmg/modificators/TownPlacer.cpp
  152. ${MAIN_LIB_DIR}/rmg/modificators/WaterProxy.cpp
  153. ${MAIN_LIB_DIR}/rmg/modificators/WaterRoutes.cpp
  154. ${MAIN_LIB_DIR}/rmg/modificators/RockPlacer.cpp
  155. ${MAIN_LIB_DIR}/rmg/modificators/RockFiller.cpp
  156. ${MAIN_LIB_DIR}/rmg/modificators/ObstaclePlacer.cpp
  157. ${MAIN_LIB_DIR}/rmg/modificators/RiverPlacer.cpp
  158. ${MAIN_LIB_DIR}/rmg/modificators/TerrainPainter.cpp
  159. ${MAIN_LIB_DIR}/rmg/threadpool/MapProxy.cpp
  160. ${MAIN_LIB_DIR}/serializer/BinaryDeserializer.cpp
  161. ${MAIN_LIB_DIR}/serializer/BinarySerializer.cpp
  162. ${MAIN_LIB_DIR}/serializer/CLoadFile.cpp
  163. ${MAIN_LIB_DIR}/serializer/CMemorySerializer.cpp
  164. ${MAIN_LIB_DIR}/serializer/Connection.cpp
  165. ${MAIN_LIB_DIR}/serializer/CSaveFile.cpp
  166. ${MAIN_LIB_DIR}/serializer/CSerializer.cpp
  167. ${MAIN_LIB_DIR}/serializer/CTypeList.cpp
  168. ${MAIN_LIB_DIR}/serializer/JsonDeserializer.cpp
  169. ${MAIN_LIB_DIR}/serializer/JsonSerializeFormat.cpp
  170. ${MAIN_LIB_DIR}/serializer/JsonSerializer.cpp
  171. ${MAIN_LIB_DIR}/serializer/JsonUpdater.cpp
  172. ${MAIN_LIB_DIR}/spells/AbilityCaster.cpp
  173. ${MAIN_LIB_DIR}/spells/AdventureSpellMechanics.cpp
  174. ${MAIN_LIB_DIR}/spells/BattleSpellMechanics.cpp
  175. ${MAIN_LIB_DIR}/spells/BonusCaster.cpp
  176. ${MAIN_LIB_DIR}/spells/CSpellHandler.cpp
  177. ${MAIN_LIB_DIR}/spells/ExternalCaster.cpp
  178. ${MAIN_LIB_DIR}/spells/ISpellMechanics.cpp
  179. ${MAIN_LIB_DIR}/spells/ObstacleCasterProxy.cpp
  180. ${MAIN_LIB_DIR}/spells/Problem.cpp
  181. ${MAIN_LIB_DIR}/spells/ProxyCaster.cpp
  182. ${MAIN_LIB_DIR}/spells/TargetCondition.cpp
  183. ${MAIN_LIB_DIR}/spells/ViewSpellInt.cpp
  184. ${MAIN_LIB_DIR}/spells/effects/Catapult.cpp
  185. ${MAIN_LIB_DIR}/spells/effects/Clone.cpp
  186. ${MAIN_LIB_DIR}/spells/effects/Damage.cpp
  187. ${MAIN_LIB_DIR}/spells/effects/DemonSummon.cpp
  188. ${MAIN_LIB_DIR}/spells/effects/Dispel.cpp
  189. ${MAIN_LIB_DIR}/spells/effects/Effect.cpp
  190. ${MAIN_LIB_DIR}/spells/effects/Effects.cpp
  191. ${MAIN_LIB_DIR}/spells/effects/Heal.cpp
  192. ${MAIN_LIB_DIR}/spells/effects/LocationEffect.cpp
  193. ${MAIN_LIB_DIR}/spells/effects/Moat.cpp
  194. ${MAIN_LIB_DIR}/spells/effects/Obstacle.cpp
  195. ${MAIN_LIB_DIR}/spells/effects/Registry.cpp
  196. ${MAIN_LIB_DIR}/spells/effects/UnitEffect.cpp
  197. ${MAIN_LIB_DIR}/spells/effects/Summon.cpp
  198. ${MAIN_LIB_DIR}/spells/effects/Teleport.cpp
  199. ${MAIN_LIB_DIR}/spells/effects/Timed.cpp
  200. ${MAIN_LIB_DIR}/spells/effects/RemoveObstacle.cpp
  201. ${MAIN_LIB_DIR}/spells/effects/Sacrifice.cpp
  202. ${MAIN_LIB_DIR}/vstd/DateUtils.cpp
  203. ${MAIN_LIB_DIR}/vstd/StringUtils.cpp
  204. ${MAIN_LIB_DIR}/ArtifactUtils.cpp
  205. ${MAIN_LIB_DIR}/BasicTypes.cpp
  206. ${MAIN_LIB_DIR}/BattleFieldHandler.cpp
  207. ${MAIN_LIB_DIR}/CAndroidVMHelper.cpp
  208. ${MAIN_LIB_DIR}/CArtHandler.cpp
  209. ${MAIN_LIB_DIR}/CArtifactInstance.cpp
  210. ${MAIN_LIB_DIR}/CBonusTypeHandler.cpp
  211. ${MAIN_LIB_DIR}/CBuildingHandler.cpp
  212. ${MAIN_LIB_DIR}/CConfigHandler.cpp
  213. ${MAIN_LIB_DIR}/CConsoleHandler.cpp
  214. ${MAIN_LIB_DIR}/CCreatureHandler.cpp
  215. ${MAIN_LIB_DIR}/CCreatureSet.cpp
  216. ${MAIN_LIB_DIR}/CGameInfoCallback.cpp
  217. ${MAIN_LIB_DIR}/CGameInterface.cpp
  218. ${MAIN_LIB_DIR}/CGeneralTextHandler.cpp
  219. ${MAIN_LIB_DIR}/CHeroHandler.cpp
  220. ${MAIN_LIB_DIR}/CPlayerState.cpp
  221. ${MAIN_LIB_DIR}/CRandomGenerator.cpp
  222. ${MAIN_LIB_DIR}/CScriptingModule.cpp
  223. ${MAIN_LIB_DIR}/CSkillHandler.cpp
  224. ${MAIN_LIB_DIR}/CStack.cpp
  225. ${MAIN_LIB_DIR}/CThreadHelper.cpp
  226. ${MAIN_LIB_DIR}/CTownHandler.cpp
  227. ${MAIN_LIB_DIR}/GameSettings.cpp
  228. ${MAIN_LIB_DIR}/IGameCallback.cpp
  229. ${MAIN_LIB_DIR}/IHandlerBase.cpp
  230. ${MAIN_LIB_DIR}/JsonDetail.cpp
  231. ${MAIN_LIB_DIR}/JsonNode.cpp
  232. ${MAIN_LIB_DIR}/JsonRandom.cpp
  233. ${MAIN_LIB_DIR}/LoadProgress.cpp
  234. ${MAIN_LIB_DIR}/LogicalExpression.cpp
  235. ${MAIN_LIB_DIR}/MetaString.cpp
  236. ${MAIN_LIB_DIR}/ObstacleHandler.cpp
  237. ${MAIN_LIB_DIR}/StartInfo.cpp
  238. ${MAIN_LIB_DIR}/ResourceSet.cpp
  239. ${MAIN_LIB_DIR}/RiverHandler.cpp
  240. ${MAIN_LIB_DIR}/RoadHandler.cpp
  241. ${MAIN_LIB_DIR}/ScriptHandler.cpp
  242. ${MAIN_LIB_DIR}/TerrainHandler.cpp
  243. ${MAIN_LIB_DIR}/TextOperations.cpp
  244. ${MAIN_LIB_DIR}/TurnTimerInfo.cpp
  245. ${MAIN_LIB_DIR}/VCMIDirs.cpp
  246. ${MAIN_LIB_DIR}/VCMI_Lib.cpp
  247. )
  248. # Version.cpp is a generated file
  249. if(ENABLE_GITVERSION)
  250. list(APPEND lib_SRCS ${CMAKE_BINARY_DIR}/Version.cpp)
  251. set_source_files_properties(${CMAKE_BINARY_DIR}/Version.cpp
  252. PROPERTIES GENERATED TRUE
  253. )
  254. endif()
  255. set(lib_HEADERS
  256. ${MAIN_LIB_DIR}/../include/vstd/CLoggerBase.h
  257. ${MAIN_LIB_DIR}/../Global.h
  258. ${MAIN_LIB_DIR}/../AUTHORS.h
  259. ${MAIN_LIB_DIR}/StdInc.h
  260. ${MAIN_LIB_DIR}/../include/vstd/ContainerUtils.h
  261. ${MAIN_LIB_DIR}/../include/vstd/RNG.h
  262. ${MAIN_LIB_DIR}/../include/vstd/DateUtils.h
  263. ${MAIN_LIB_DIR}/../include/vstd/StringUtils.h
  264. ${MAIN_LIB_DIR}/../include/vcmi/events/AdventureEvents.h
  265. ${MAIN_LIB_DIR}/../include/vcmi/events/ApplyDamage.h
  266. ${MAIN_LIB_DIR}/../include/vcmi/events/BattleEvents.h
  267. ${MAIN_LIB_DIR}/../include/vcmi/events/Event.h
  268. ${MAIN_LIB_DIR}/../include/vcmi/events/EventBus.h
  269. ${MAIN_LIB_DIR}/../include/vcmi/events/GameResumed.h
  270. ${MAIN_LIB_DIR}/../include/vcmi/events/GenericEvents.h
  271. ${MAIN_LIB_DIR}/../include/vcmi/events/ObjectVisitEnded.h
  272. ${MAIN_LIB_DIR}/../include/vcmi/events/ObjectVisitStarted.h
  273. ${MAIN_LIB_DIR}/../include/vcmi/events/PlayerGotTurn.h
  274. ${MAIN_LIB_DIR}/../include/vcmi/events/SubscriptionRegistry.h
  275. ${MAIN_LIB_DIR}/../include/vcmi/events/TurnStarted.h
  276. ${MAIN_LIB_DIR}/../include/vcmi/scripting/Service.h
  277. ${MAIN_LIB_DIR}/../include/vcmi/spells/Caster.h
  278. ${MAIN_LIB_DIR}/../include/vcmi/spells/Magic.h
  279. ${MAIN_LIB_DIR}/../include/vcmi/spells/Service.h
  280. ${MAIN_LIB_DIR}/../include/vcmi/spells/Spell.h
  281. ${MAIN_LIB_DIR}/../include/vcmi/Artifact.h
  282. ${MAIN_LIB_DIR}/../include/vcmi/ArtifactService.h
  283. ${MAIN_LIB_DIR}/../include/vcmi/Creature.h
  284. ${MAIN_LIB_DIR}/../include/vcmi/CreatureService.h
  285. ${MAIN_LIB_DIR}/../include/vcmi/Entity.h
  286. ${MAIN_LIB_DIR}/../include/vcmi/Environment.h
  287. ${MAIN_LIB_DIR}/../include/vcmi/Faction.h
  288. ${MAIN_LIB_DIR}/../include/vcmi/FactionService.h
  289. ${MAIN_LIB_DIR}/../include/vcmi/HeroClass.h
  290. ${MAIN_LIB_DIR}/../include/vcmi/HeroClassService.h
  291. ${MAIN_LIB_DIR}/../include/vcmi/HeroType.h
  292. ${MAIN_LIB_DIR}/../include/vcmi/HeroTypeService.h
  293. ${MAIN_LIB_DIR}/../include/vcmi/Metatype.h
  294. ${MAIN_LIB_DIR}/../include/vcmi/Player.h
  295. ${MAIN_LIB_DIR}/../include/vcmi/ServerCallback.h
  296. ${MAIN_LIB_DIR}/../include/vcmi/Services.h
  297. ${MAIN_LIB_DIR}/../include/vcmi/Skill.h
  298. ${MAIN_LIB_DIR}/../include/vcmi/SkillService.h
  299. ${MAIN_LIB_DIR}/../include/vcmi/Team.h
  300. ${MAIN_LIB_DIR}/battle/AccessibilityInfo.h
  301. ${MAIN_LIB_DIR}/battle/AutocombatPreferences.h
  302. ${MAIN_LIB_DIR}/battle/BattleAction.h
  303. ${MAIN_LIB_DIR}/battle/BattleAttackInfo.h
  304. ${MAIN_LIB_DIR}/battle/BattleHex.h
  305. ${MAIN_LIB_DIR}/battle/BattleInfo.h
  306. ${MAIN_LIB_DIR}/battle/BattleStateInfoForRetreat.h
  307. ${MAIN_LIB_DIR}/battle/BattleProxy.h
  308. ${MAIN_LIB_DIR}/battle/CBattleInfoCallback.h
  309. ${MAIN_LIB_DIR}/battle/CBattleInfoEssentials.h
  310. ${MAIN_LIB_DIR}/battle/CObstacleInstance.h
  311. ${MAIN_LIB_DIR}/battle/CPlayerBattleCallback.h
  312. ${MAIN_LIB_DIR}/battle/CUnitState.h
  313. ${MAIN_LIB_DIR}/battle/DamageCalculator.h
  314. ${MAIN_LIB_DIR}/battle/Destination.h
  315. ${MAIN_LIB_DIR}/battle/IBattleInfoCallback.h
  316. ${MAIN_LIB_DIR}/battle/IBattleState.h
  317. ${MAIN_LIB_DIR}/battle/IUnitInfo.h
  318. ${MAIN_LIB_DIR}/battle/PossiblePlayerBattleAction.h
  319. ${MAIN_LIB_DIR}/battle/ReachabilityInfo.h
  320. ${MAIN_LIB_DIR}/battle/SideInBattle.h
  321. ${MAIN_LIB_DIR}/battle/SiegeInfo.h
  322. ${MAIN_LIB_DIR}/battle/Unit.h
  323. ${MAIN_LIB_DIR}/bonuses/Bonus.h
  324. ${MAIN_LIB_DIR}/bonuses/BonusEnum.h
  325. ${MAIN_LIB_DIR}/bonuses/BonusList.h
  326. ${MAIN_LIB_DIR}/bonuses/BonusParams.h
  327. ${MAIN_LIB_DIR}/bonuses/BonusSelector.h
  328. ${MAIN_LIB_DIR}/bonuses/BonusCustomTypes.h
  329. ${MAIN_LIB_DIR}/bonuses/CBonusProxy.h
  330. ${MAIN_LIB_DIR}/bonuses/CBonusSystemNode.h
  331. ${MAIN_LIB_DIR}/bonuses/IBonusBearer.h
  332. ${MAIN_LIB_DIR}/bonuses/Limiters.h
  333. ${MAIN_LIB_DIR}/bonuses/Propagators.h
  334. ${MAIN_LIB_DIR}/bonuses/Updaters.h
  335. ${MAIN_LIB_DIR}/campaign/CampaignConstants.h
  336. ${MAIN_LIB_DIR}/campaign/CampaignHandler.h
  337. ${MAIN_LIB_DIR}/campaign/CampaignScenarioPrologEpilog.h
  338. ${MAIN_LIB_DIR}/campaign/CampaignState.h
  339. ${MAIN_LIB_DIR}/constants/EntityIdentifiers.h
  340. ${MAIN_LIB_DIR}/constants/Enumerations.h
  341. ${MAIN_LIB_DIR}/constants/IdentifierBase.h
  342. ${MAIN_LIB_DIR}/constants/VariantIdentifier.h
  343. ${MAIN_LIB_DIR}/constants/NumericConstants.h
  344. ${MAIN_LIB_DIR}/constants/StringConstants.h
  345. ${MAIN_LIB_DIR}/events/ApplyDamage.h
  346. ${MAIN_LIB_DIR}/events/GameResumed.h
  347. ${MAIN_LIB_DIR}/events/ObjectVisitEnded.h
  348. ${MAIN_LIB_DIR}/events/ObjectVisitStarted.h
  349. ${MAIN_LIB_DIR}/events/PlayerGotTurn.h
  350. ${MAIN_LIB_DIR}/events/TurnStarted.h
  351. ${MAIN_LIB_DIR}/filesystem/AdapterLoaders.h
  352. ${MAIN_LIB_DIR}/filesystem/CArchiveLoader.h
  353. ${MAIN_LIB_DIR}/filesystem/CBinaryReader.h
  354. ${MAIN_LIB_DIR}/filesystem/CCompressedStream.h
  355. ${MAIN_LIB_DIR}/filesystem/CFileInputStream.h
  356. ${MAIN_LIB_DIR}/filesystem/CFilesystemLoader.h
  357. ${MAIN_LIB_DIR}/filesystem/CInputOutputStream.h
  358. ${MAIN_LIB_DIR}/filesystem/CInputStream.h
  359. ${MAIN_LIB_DIR}/filesystem/CMemoryBuffer.h
  360. ${MAIN_LIB_DIR}/filesystem/CMemoryStream.h
  361. ${MAIN_LIB_DIR}/filesystem/COutputStream.h
  362. ${MAIN_LIB_DIR}/filesystem/CStream.h
  363. ${MAIN_LIB_DIR}/filesystem/CZipLoader.h
  364. ${MAIN_LIB_DIR}/filesystem/CZipSaver.h
  365. ${MAIN_LIB_DIR}/filesystem/FileInfo.h
  366. ${MAIN_LIB_DIR}/filesystem/Filesystem.h
  367. ${MAIN_LIB_DIR}/filesystem/ISimpleResourceLoader.h
  368. ${MAIN_LIB_DIR}/filesystem/MinizipExtensions.h
  369. ${MAIN_LIB_DIR}/filesystem/ResourcePath.h
  370. ${MAIN_LIB_DIR}/gameState/CGameState.h
  371. ${MAIN_LIB_DIR}/gameState/CGameStateCampaign.h
  372. ${MAIN_LIB_DIR}/gameState/EVictoryLossCheckResult.h
  373. ${MAIN_LIB_DIR}/gameState/InfoAboutArmy.h
  374. ${MAIN_LIB_DIR}/gameState/SThievesGuildInfo.h
  375. ${MAIN_LIB_DIR}/gameState/TavernHeroesPool.h
  376. ${MAIN_LIB_DIR}/gameState/TavernSlot.h
  377. ${MAIN_LIB_DIR}/gameState/QuestInfo.h
  378. ${MAIN_LIB_DIR}/logging/CBasicLogConfigurator.h
  379. ${MAIN_LIB_DIR}/logging/CLogger.h
  380. ${MAIN_LIB_DIR}/mapObjectConstructors/AObjectTypeHandler.h
  381. ${MAIN_LIB_DIR}/mapObjectConstructors/CBankInstanceConstructor.h
  382. ${MAIN_LIB_DIR}/mapObjectConstructors/CDefaultObjectTypeHandler.h
  383. ${MAIN_LIB_DIR}/mapObjectConstructors/CObjectClassesHandler.h
  384. ${MAIN_LIB_DIR}/mapObjectConstructors/CommonConstructors.h
  385. ${MAIN_LIB_DIR}/mapObjectConstructors/CRewardableConstructor.h
  386. ${MAIN_LIB_DIR}/mapObjectConstructors/DwellingInstanceConstructor.h
  387. ${MAIN_LIB_DIR}/mapObjectConstructors/HillFortInstanceConstructor.h
  388. ${MAIN_LIB_DIR}/mapObjectConstructors/IObjectInfo.h
  389. ${MAIN_LIB_DIR}/mapObjectConstructors/RandomMapInfo.h
  390. ${MAIN_LIB_DIR}/mapObjectConstructors/ShipyardInstanceConstructor.h
  391. ${MAIN_LIB_DIR}/mapObjectConstructors/SObjectSounds.h
  392. ${MAIN_LIB_DIR}/mapObjects/CArmedInstance.h
  393. ${MAIN_LIB_DIR}/mapObjects/CBank.h
  394. ${MAIN_LIB_DIR}/mapObjects/CGCreature.h
  395. ${MAIN_LIB_DIR}/mapObjects/CGDwelling.h
  396. ${MAIN_LIB_DIR}/mapObjects/CGHeroInstance.h
  397. ${MAIN_LIB_DIR}/mapObjects/CGMarket.h
  398. ${MAIN_LIB_DIR}/mapObjects/CGObjectInstance.h
  399. ${MAIN_LIB_DIR}/mapObjects/CGPandoraBox.h
  400. ${MAIN_LIB_DIR}/mapObjects/CGTownBuilding.h
  401. ${MAIN_LIB_DIR}/mapObjects/CGTownInstance.h
  402. ${MAIN_LIB_DIR}/mapObjects/CObjectHandler.h
  403. ${MAIN_LIB_DIR}/mapObjects/CQuest.h
  404. ${MAIN_LIB_DIR}/mapObjects/CRewardableObject.h
  405. ${MAIN_LIB_DIR}/mapObjects/IMarket.h
  406. ${MAIN_LIB_DIR}/mapObjects/IObjectInterface.h
  407. ${MAIN_LIB_DIR}/mapObjects/MapObjects.h
  408. ${MAIN_LIB_DIR}/mapObjects/MiscObjects.h
  409. ${MAIN_LIB_DIR}/mapObjects/ObjectTemplate.h
  410. ${MAIN_LIB_DIR}/mapping/CDrawRoadsOperation.h
  411. ${MAIN_LIB_DIR}/mapping/CMapDefines.h
  412. ${MAIN_LIB_DIR}/mapping/CMapEditManager.h
  413. ${MAIN_LIB_DIR}/mapping/CMapHeader.h
  414. ${MAIN_LIB_DIR}/mapping/CMap.h
  415. ${MAIN_LIB_DIR}/mapping/CMapInfo.h
  416. ${MAIN_LIB_DIR}/mapping/CMapOperation.h
  417. ${MAIN_LIB_DIR}/mapping/CMapService.h
  418. ${MAIN_LIB_DIR}/mapping/MapEditUtils.h
  419. ${MAIN_LIB_DIR}/mapping/MapIdentifiersH3M.h
  420. ${MAIN_LIB_DIR}/mapping/MapFeaturesH3M.h
  421. ${MAIN_LIB_DIR}/mapping/MapFormatH3M.h
  422. ${MAIN_LIB_DIR}/mapping/MapFormat.h
  423. ${MAIN_LIB_DIR}/mapping/MapReaderH3M.h
  424. ${MAIN_LIB_DIR}/mapping/MapFormatJson.h
  425. ${MAIN_LIB_DIR}/mapping/ObstacleProxy.h
  426. ${MAIN_LIB_DIR}/modding/ActiveModsInSaveList.h
  427. ${MAIN_LIB_DIR}/modding/CModHandler.h
  428. ${MAIN_LIB_DIR}/modding/CModInfo.h
  429. ${MAIN_LIB_DIR}/modding/CModVersion.h
  430. ${MAIN_LIB_DIR}/modding/ContentTypeHandler.h
  431. ${MAIN_LIB_DIR}/modding/IdentifierStorage.h
  432. ${MAIN_LIB_DIR}/modding/ModIncompatibility.h
  433. ${MAIN_LIB_DIR}/modding/ModScope.h
  434. ${MAIN_LIB_DIR}/modding/ModUtility.h
  435. ${MAIN_LIB_DIR}/modding/ModVerificationInfo.h
  436. ${MAIN_LIB_DIR}/network/NetworkConnection.h
  437. ${MAIN_LIB_DIR}/network/NetworkDefines.h
  438. ${MAIN_LIB_DIR}/network/NetworkHandler.h
  439. ${MAIN_LIB_DIR}/network/NetworkInterface.h
  440. ${MAIN_LIB_DIR}/network/NetworkServer.h
  441. ${MAIN_LIB_DIR}/networkPacks/ArtifactLocation.h
  442. ${MAIN_LIB_DIR}/networkPacks/BattleChanges.h
  443. ${MAIN_LIB_DIR}/networkPacks/Component.h
  444. ${MAIN_LIB_DIR}/networkPacks/EInfoWindowMode.h
  445. ${MAIN_LIB_DIR}/networkPacks/EntityChanges.h
  446. ${MAIN_LIB_DIR}/networkPacks/EOpenWindowMode.h
  447. ${MAIN_LIB_DIR}/networkPacks/NetPacksBase.h
  448. ${MAIN_LIB_DIR}/networkPacks/NetPackVisitor.h
  449. ${MAIN_LIB_DIR}/networkPacks/ObjProperty.h
  450. ${MAIN_LIB_DIR}/networkPacks/PacksForClient.h
  451. ${MAIN_LIB_DIR}/networkPacks/PacksForClientBattle.h
  452. ${MAIN_LIB_DIR}/networkPacks/PacksForLobby.h
  453. ${MAIN_LIB_DIR}/networkPacks/PacksForServer.h
  454. ${MAIN_LIB_DIR}/networkPacks/SetStackEffect.h
  455. ${MAIN_LIB_DIR}/networkPacks/StackLocation.h
  456. ${MAIN_LIB_DIR}/networkPacks/TradeItem.h
  457. ${MAIN_LIB_DIR}/pathfinder/INodeStorage.h
  458. ${MAIN_LIB_DIR}/pathfinder/CGPathNode.h
  459. ${MAIN_LIB_DIR}/pathfinder/CPathfinder.h
  460. ${MAIN_LIB_DIR}/pathfinder/NodeStorage.h
  461. ${MAIN_LIB_DIR}/pathfinder/PathfinderOptions.h
  462. ${MAIN_LIB_DIR}/pathfinder/PathfinderUtil.h
  463. ${MAIN_LIB_DIR}/pathfinder/PathfindingRules.h
  464. ${MAIN_LIB_DIR}/pathfinder/TurnInfo.h
  465. ${MAIN_LIB_DIR}/registerTypes/RegisterTypes.h
  466. ${MAIN_LIB_DIR}/registerTypes/RegisterTypesClientPacks.h
  467. ${MAIN_LIB_DIR}/registerTypes/RegisterTypesLobbyPacks.h
  468. ${MAIN_LIB_DIR}/registerTypes/RegisterTypesMapObjects.h
  469. ${MAIN_LIB_DIR}/registerTypes/RegisterTypesServerPacks.h
  470. ${MAIN_LIB_DIR}/rewardable/Configuration.h
  471. ${MAIN_LIB_DIR}/rewardable/Info.h
  472. ${MAIN_LIB_DIR}/rewardable/Interface.h
  473. ${MAIN_LIB_DIR}/rewardable/Limiter.h
  474. ${MAIN_LIB_DIR}/rewardable/Reward.h
  475. ${MAIN_LIB_DIR}/rmg/RmgArea.h
  476. ${MAIN_LIB_DIR}/rmg/RmgObject.h
  477. ${MAIN_LIB_DIR}/rmg/RmgPath.h
  478. ${MAIN_LIB_DIR}/rmg/CMapGenerator.h
  479. ${MAIN_LIB_DIR}/rmg/CMapGenOptions.h
  480. ${MAIN_LIB_DIR}/rmg/CRmgTemplate.h
  481. ${MAIN_LIB_DIR}/rmg/CRmgTemplateStorage.h
  482. ${MAIN_LIB_DIR}/rmg/CZonePlacer.h
  483. ${MAIN_LIB_DIR}/rmg/TileInfo.h
  484. ${MAIN_LIB_DIR}/rmg/Zone.h
  485. ${MAIN_LIB_DIR}/rmg/RmgMap.h
  486. ${MAIN_LIB_DIR}/rmg/float3.h
  487. ${MAIN_LIB_DIR}/rmg/Functions.h
  488. ${MAIN_LIB_DIR}/rmg/PenroseTiling.h
  489. ${MAIN_LIB_DIR}/rmg/modificators/Modificator.h
  490. ${MAIN_LIB_DIR}/rmg/modificators/ObjectManager.h
  491. ${MAIN_LIB_DIR}/rmg/modificators/ObjectDistributor.h
  492. ${MAIN_LIB_DIR}/rmg/modificators/RoadPlacer.h
  493. ${MAIN_LIB_DIR}/rmg/modificators/TreasurePlacer.h
  494. ${MAIN_LIB_DIR}/rmg/modificators/PrisonHeroPlacer.h
  495. ${MAIN_LIB_DIR}/rmg/modificators/QuestArtifactPlacer.h
  496. ${MAIN_LIB_DIR}/rmg/modificators/ConnectionsPlacer.h
  497. ${MAIN_LIB_DIR}/rmg/modificators/WaterAdopter.h
  498. ${MAIN_LIB_DIR}/rmg/modificators/MinePlacer.h
  499. ${MAIN_LIB_DIR}/rmg/modificators/TownPlacer.h
  500. ${MAIN_LIB_DIR}/rmg/modificators/WaterProxy.h
  501. ${MAIN_LIB_DIR}/rmg/modificators/WaterRoutes.h
  502. ${MAIN_LIB_DIR}/rmg/modificators/RockPlacer.h
  503. ${MAIN_LIB_DIR}/rmg/modificators/RockFiller.h
  504. ${MAIN_LIB_DIR}/rmg/modificators/ObstaclePlacer.h
  505. ${MAIN_LIB_DIR}/rmg/modificators/RiverPlacer.h
  506. ${MAIN_LIB_DIR}/rmg/modificators/TerrainPainter.h
  507. ${MAIN_LIB_DIR}/rmg/threadpool/BlockingQueue.h
  508. ${MAIN_LIB_DIR}/rmg/threadpool/ThreadPool.h
  509. ${MAIN_LIB_DIR}/rmg/threadpool/MapProxy.h
  510. ${MAIN_LIB_DIR}/serializer/BinaryDeserializer.h
  511. ${MAIN_LIB_DIR}/serializer/BinarySerializer.h
  512. ${MAIN_LIB_DIR}/serializer/CLoadFile.h
  513. ${MAIN_LIB_DIR}/serializer/CMemorySerializer.h
  514. ${MAIN_LIB_DIR}/serializer/Connection.h
  515. ${MAIN_LIB_DIR}/serializer/CSaveFile.h
  516. ${MAIN_LIB_DIR}/serializer/CSerializer.h
  517. ${MAIN_LIB_DIR}/serializer/CTypeList.h
  518. ${MAIN_LIB_DIR}/serializer/JsonDeserializer.h
  519. ${MAIN_LIB_DIR}/serializer/JsonSerializeFormat.h
  520. ${MAIN_LIB_DIR}/serializer/JsonSerializer.h
  521. ${MAIN_LIB_DIR}/serializer/JsonUpdater.h
  522. ${MAIN_LIB_DIR}/serializer/Cast.h
  523. ${MAIN_LIB_DIR}/serializer/ESerializationVersion.h
  524. ${MAIN_LIB_DIR}/spells/AbilityCaster.h
  525. ${MAIN_LIB_DIR}/spells/AdventureSpellMechanics.h
  526. ${MAIN_LIB_DIR}/spells/BattleSpellMechanics.h
  527. ${MAIN_LIB_DIR}/spells/BonusCaster.h
  528. ${MAIN_LIB_DIR}/spells/CSpellHandler.h
  529. ${MAIN_LIB_DIR}/spells/ExternalCaster.h
  530. ${MAIN_LIB_DIR}/spells/ISpellMechanics.h
  531. ${MAIN_LIB_DIR}/spells/ObstacleCasterProxy.h
  532. ${MAIN_LIB_DIR}/spells/Problem.h
  533. ${MAIN_LIB_DIR}/spells/ProxyCaster.h
  534. ${MAIN_LIB_DIR}/spells/TargetCondition.h
  535. ${MAIN_LIB_DIR}/spells/ViewSpellInt.h
  536. ${MAIN_LIB_DIR}/spells/effects/Catapult.h
  537. ${MAIN_LIB_DIR}/spells/effects/Clone.h
  538. ${MAIN_LIB_DIR}/spells/effects/Damage.h
  539. ${MAIN_LIB_DIR}/spells/effects/DemonSummon.h
  540. ${MAIN_LIB_DIR}/spells/effects/Dispel.h
  541. ${MAIN_LIB_DIR}/spells/effects/Effect.h
  542. ${MAIN_LIB_DIR}/spells/effects/Effects.h
  543. ${MAIN_LIB_DIR}/spells/effects/EffectsFwd.h
  544. ${MAIN_LIB_DIR}/spells/effects/Heal.h
  545. ${MAIN_LIB_DIR}/spells/effects/LocationEffect.h
  546. ${MAIN_LIB_DIR}/spells/effects/Obstacle.h
  547. ${MAIN_LIB_DIR}/spells/effects/Registry.h
  548. ${MAIN_LIB_DIR}/spells/effects/UnitEffect.h
  549. ${MAIN_LIB_DIR}/spells/effects/Summon.h
  550. ${MAIN_LIB_DIR}/spells/effects/Teleport.h
  551. ${MAIN_LIB_DIR}/spells/effects/Timed.h
  552. ${MAIN_LIB_DIR}/spells/effects/RemoveObstacle.h
  553. ${MAIN_LIB_DIR}/spells/effects/Sacrifice.h
  554. ${MAIN_LIB_DIR}/AI_Base.h
  555. ${MAIN_LIB_DIR}/ArtifactUtils.h
  556. ${MAIN_LIB_DIR}/BattleFieldHandler.h
  557. ${MAIN_LIB_DIR}/CAndroidVMHelper.h
  558. ${MAIN_LIB_DIR}/CArtHandler.h
  559. ${MAIN_LIB_DIR}/CArtifactInstance.h
  560. ${MAIN_LIB_DIR}/CBonusTypeHandler.h
  561. ${MAIN_LIB_DIR}/CBuildingHandler.h
  562. ${MAIN_LIB_DIR}/CConfigHandler.h
  563. ${MAIN_LIB_DIR}/CConsoleHandler.h
  564. ${MAIN_LIB_DIR}/CCreatureHandler.h
  565. ${MAIN_LIB_DIR}/CCreatureSet.h
  566. ${MAIN_LIB_DIR}/CGameInfoCallback.h
  567. ${MAIN_LIB_DIR}/CGameInterface.h
  568. ${MAIN_LIB_DIR}/CGeneralTextHandler.h
  569. ${MAIN_LIB_DIR}/CHeroHandler.h
  570. ${MAIN_LIB_DIR}/CondSh.h
  571. ${MAIN_LIB_DIR}/ConstTransitivePtr.h
  572. ${MAIN_LIB_DIR}/Color.h
  573. ${MAIN_LIB_DIR}/CPlayerState.h
  574. ${MAIN_LIB_DIR}/CRandomGenerator.h
  575. ${MAIN_LIB_DIR}/CScriptingModule.h
  576. ${MAIN_LIB_DIR}/CSkillHandler.h
  577. ${MAIN_LIB_DIR}/CSoundBase.h
  578. ${MAIN_LIB_DIR}/CStack.h
  579. ${MAIN_LIB_DIR}/CStopWatch.h
  580. ${MAIN_LIB_DIR}/CThreadHelper.h
  581. ${MAIN_LIB_DIR}/CTownHandler.h
  582. ${MAIN_LIB_DIR}/ExtraOptionsInfo.h
  583. ${MAIN_LIB_DIR}/FunctionList.h
  584. ${MAIN_LIB_DIR}/GameCallbackHolder.h
  585. ${MAIN_LIB_DIR}/GameConstants.h
  586. ${MAIN_LIB_DIR}/GameSettings.h
  587. ${MAIN_LIB_DIR}/IBonusTypeHandler.h
  588. ${MAIN_LIB_DIR}/IGameCallback.h
  589. ${MAIN_LIB_DIR}/IGameEventsReceiver.h
  590. ${MAIN_LIB_DIR}/IHandlerBase.h
  591. ${MAIN_LIB_DIR}/int3.h
  592. ${MAIN_LIB_DIR}/JsonDetail.h
  593. ${MAIN_LIB_DIR}/JsonNode.h
  594. ${MAIN_LIB_DIR}/JsonRandom.h
  595. ${MAIN_LIB_DIR}/Languages.h
  596. ${MAIN_LIB_DIR}/LoadProgress.h
  597. ${MAIN_LIB_DIR}/LogicalExpression.h
  598. ${MAIN_LIB_DIR}/MetaString.h
  599. ${MAIN_LIB_DIR}/ObstacleHandler.h
  600. ${MAIN_LIB_DIR}/Point.h
  601. ${MAIN_LIB_DIR}/Rect.h
  602. ${MAIN_LIB_DIR}/Rect.cpp
  603. ${MAIN_LIB_DIR}/ResourceSet.h
  604. ${MAIN_LIB_DIR}/RiverHandler.h
  605. ${MAIN_LIB_DIR}/RoadHandler.h
  606. ${MAIN_LIB_DIR}/ScriptHandler.h
  607. ${MAIN_LIB_DIR}/ScopeGuard.h
  608. ${MAIN_LIB_DIR}/StartInfo.h
  609. ${MAIN_LIB_DIR}/TerrainHandler.h
  610. ${MAIN_LIB_DIR}/TextOperations.h
  611. ${MAIN_LIB_DIR}/TurnTimerInfo.h
  612. ${MAIN_LIB_DIR}/UnlockGuard.h
  613. ${MAIN_LIB_DIR}/VCMIDirs.h
  614. ${MAIN_LIB_DIR}/vcmi_endian.h
  615. ${MAIN_LIB_DIR}/VCMI_Lib.h
  616. )
  617. assign_source_group(${lib_SRCS} ${lib_HEADERS})
  618. add_library(${TARGET_NAME} ${LIBRARY_TYPE} ${lib_SRCS} ${lib_HEADERS})
  619. set_target_properties(${TARGET_NAME} PROPERTIES COMPILE_DEFINITIONS "VCMI_DLL=1")
  620. target_link_libraries(${TARGET_NAME} PUBLIC
  621. minizip::minizip ZLIB::ZLIB
  622. ${SYSTEM_LIBS} Boost::boost Boost::thread Boost::filesystem Boost::program_options Boost::locale Boost::date_time
  623. )
  624. if(APPLE_IOS)
  625. target_link_libraries(${TARGET_NAME} PUBLIC iOS_utils)
  626. endif()
  627. target_include_directories(${TARGET_NAME}
  628. PUBLIC ${CMAKE_CURRENT_SOURCE_DIR}
  629. PUBLIC ${MAIN_LIB_DIR}/..
  630. PUBLIC ${MAIN_LIB_DIR}/../include
  631. PUBLIC ${MAIN_LIB_DIR}
  632. )
  633. if(WIN32)
  634. set_target_properties(${TARGET_NAME}
  635. PROPERTIES
  636. OUTPUT_NAME "VCMI_lib"
  637. PROJECT_LABEL "VCMI_lib"
  638. )
  639. endif()
  640. vcmi_set_output_dir(${TARGET_NAME} "")
  641. enable_pch(${TARGET_NAME})
  642. # We want to deploy assets into build directory for easier debugging without install
  643. if(COPY_CONFIG_ON_BUILD)
  644. add_custom_command(TARGET ${TARGET_NAME} POST_BUILD
  645. COMMAND ${CMAKE_COMMAND} -E remove_directory ${CMAKE_BINARY_DIR}/bin/${CMAKE_CFG_INTDIR}/config
  646. COMMAND ${CMAKE_COMMAND} -E remove_directory ${CMAKE_BINARY_DIR}/bin/${CMAKE_CFG_INTDIR}/Mods
  647. COMMAND ${CMAKE_COMMAND} -P ${CMAKE_SOURCE_DIR}/cmake_modules/create_link.cmake ${MAIN_LIB_DIR}/../config ${CMAKE_BINARY_DIR}/bin/${CMAKE_CFG_INTDIR}/config
  648. COMMAND ${CMAKE_COMMAND} -P ${CMAKE_SOURCE_DIR}/cmake_modules/create_link.cmake ${MAIN_LIB_DIR}/../Mods ${CMAKE_BINARY_DIR}/bin/${CMAKE_CFG_INTDIR}/Mods
  649. )
  650. endif()
  651. # Update version before vcmi compiling
  652. if(TARGET update_version)
  653. add_dependencies(${TARGET_NAME} update_version)
  654. endif()
  655. if("${LIBRARY_TYPE}" STREQUAL SHARED)
  656. install(TARGETS ${TARGET_NAME} RUNTIME DESTINATION ${LIB_DIR} LIBRARY DESTINATION ${LIB_DIR})
  657. endif()
  658. if(APPLE_IOS AND NOT USING_CONAN)
  659. get_target_property(LINKED_LIBS ${TARGET_NAME} LINK_LIBRARIES)
  660. foreach(LINKED_LIB IN LISTS LINKED_LIBS)
  661. if(NOT TARGET ${LINKED_LIB})
  662. if(LINKED_LIB MATCHES "\\${CMAKE_SHARED_LIBRARY_SUFFIX}$")
  663. install(FILES ${LINKED_LIB} DESTINATION ${LIB_DIR})
  664. endif()
  665. continue()
  666. endif()
  667. get_target_property(LIB_TYPE ${LINKED_LIB} TYPE)
  668. if(NOT LIB_TYPE STREQUAL "SHARED_LIBRARY")
  669. continue()
  670. endif()
  671. get_target_property(_aliased ${LINKED_LIB} ALIASED_TARGET)
  672. if(_aliased)
  673. set(LINKED_LIB_REAL ${_aliased})
  674. else()
  675. set(LINKED_LIB_REAL ${LINKED_LIB})
  676. endif()
  677. get_target_property(_imported ${LINKED_LIB_REAL} IMPORTED)
  678. if(_imported)
  679. set(INSTALL_TYPE IMPORTED_RUNTIME_ARTIFACTS)
  680. get_target_property(BOOST_DEPENDENCIES ${LINKED_LIB_REAL} INTERFACE_LINK_LIBRARIES)
  681. foreach(BOOST_DEPENDENCY IN LISTS BOOST_DEPENDENCIES)
  682. get_target_property(BOOST_DEPENDENCY_TYPE ${BOOST_DEPENDENCY} TYPE)
  683. if(BOOST_DEPENDENCY_TYPE STREQUAL "SHARED_LIBRARY")
  684. install(IMPORTED_RUNTIME_ARTIFACTS ${BOOST_DEPENDENCY} LIBRARY DESTINATION ${LIB_DIR})
  685. endif()
  686. endforeach()
  687. else()
  688. set(INSTALL_TYPE TARGETS)
  689. endif()
  690. install(${INSTALL_TYPE} ${LINKED_LIB_REAL} LIBRARY DESTINATION ${LIB_DIR})
  691. endforeach()
  692. endif()
  693. endmacro()