File: CMakeLists.txt

package info (click to toggle)
vcmi 1.1.0%2Bdfsg-1
  • links: PTS, VCS
  • area: contrib
  • in suites: bookworm
  • size: 14,672 kB
  • sloc: cpp: 181,738; sh: 220; python: 178; ansic: 69; objc: 66; xml: 59; makefile: 34
file content (143 lines) | stat: -rw-r--r-- 4,110 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
set(Nullkiller_SRCS
		StdInc.cpp

		Pathfinding/AIPathfinderConfig.cpp
		Pathfinding/AIPathfinder.cpp
		Pathfinding/AINodeStorage.cpp
		Pathfinding/Actors.cpp
		Pathfinding/Actions/SpecialAction.cpp
		Pathfinding/Actions/BattleAction.cpp
		Pathfinding/Actions/QuestAction.cpp
		Pathfinding/Actions/BuyArmyAction.cpp
		Pathfinding/Actions/BoatActions.cpp
		Pathfinding/Actions/TownPortalAction.cpp
		Pathfinding/Rules/AILayerTransitionRule.cpp
		Pathfinding/Rules/AIMovementAfterDestinationRule.cpp
		Pathfinding/Rules/AIMovementToDestinationRule.cpp
		Pathfinding/Rules/AIPreviousNodeRule.cpp
		AIUtility.cpp
		Analyzers/ArmyManager.cpp
		Analyzers/HeroManager.cpp
		Engine/FuzzyEngines.cpp
		Engine/FuzzyHelper.cpp
		Engine/AIMemory.cpp
		Goals/AbstractGoal.cpp
		Goals/Composition.cpp
		Goals/SaveResources.cpp
		Goals/BuildBoat.cpp
		Goals/BuildThis.cpp
		Goals/DismissHero.cpp
		Goals/BuyArmy.cpp
		Goals/AdventureSpellCast.cpp
		Goals/Trade.cpp
		Goals/CaptureObject.cpp
		Goals/RecruitHero.cpp
		Goals/DigAtTile.cpp
		Goals/ExecuteHeroChain.cpp
		Goals/ExchangeSwapTownHeroes.cpp
		Goals/CompleteQuest.cpp
		Markers/ArmyUpgrade.cpp
		Markers/HeroExchange.cpp
		Markers/UnlockCluster.cpp
		Markers/DefendTown.cpp
		Engine/Nullkiller.cpp
		Engine/DeepDecomposer.cpp
		Engine/PriorityEvaluator.cpp
		Analyzers/DangerHitMapAnalyzer.cpp
		Analyzers/BuildAnalyzer.cpp
		Analyzers/ObjectClusterizer.cpp
		Behaviors/CaptureObjectsBehavior.cpp
		Behaviors/RecruitHeroBehavior.cpp
		Behaviors/BuyArmyBehavior.cpp
		Behaviors/DefenceBehavior.cpp
		Behaviors/StartupBehavior.cpp
		Behaviors/BuildingBehavior.cpp
		Behaviors/GatherArmyBehavior.cpp
		Behaviors/ClusterBehavior.cpp
		main.cpp
		AIGateway.cpp
)

set(Nullkiller_HEADERS
		StdInc.h
		
		Pathfinding/AIPathfinderConfig.h
		Pathfinding/AIPathfinder.h
		Pathfinding/AINodeStorage.h
		Pathfinding/Actors.h
		Pathfinding/Actions/SpecialAction.h
		Pathfinding/Actions/BattleAction.h
		Pathfinding/Actions/QuestAction.h
		Pathfinding/Actions/BuyArmyAction.h
		Pathfinding/Actions/BoatActions.h
		Pathfinding/Actions/TownPortalAction.h
		Pathfinding/Rules/AILayerTransitionRule.h
		Pathfinding/Rules/AIMovementAfterDestinationRule.h
		Pathfinding/Rules/AIMovementToDestinationRule.h
		Pathfinding/Rules/AIPreviousNodeRule.h
		AIUtility.h
		Analyzers/ArmyManager.h
		Analyzers/HeroManager.h
		Engine/FuzzyEngines.h
		Engine/FuzzyHelper.h
		Engine/AIMemory.h
		Goals/AbstractGoal.h
		Goals/CGoal.h
		Goals/Composition.h
		Goals/Invalid.h
		Goals/BuildBoat.h
		Goals/SaveResources.h
		Goals/BuildThis.h
		Goals/DismissHero.h
		Goals/BuyArmy.h
		Goals/AdventureSpellCast.h
		Goals/Trade.h
		Goals/CaptureObject.h
		Goals/RecruitHero.h
		Goals/DigAtTile.h
		Goals/ExecuteHeroChain.h
		Goals/ExchangeSwapTownHeroes.h
		Goals/CompleteQuest.h
		Goals/Goals.h
		Markers/ArmyUpgrade.h
		Markers/HeroExchange.h
		Markers/UnlockCluster.h
		Markers/DefendTown.h
		Engine/Nullkiller.h
		Engine/DeepDecomposer.h
		Engine/PriorityEvaluator.h
		Analyzers/DangerHitMapAnalyzer.h
		Analyzers/BuildAnalyzer.h
		Analyzers/ObjectClusterizer.h
		Behaviors/CaptureObjectsBehavior.h
		Behaviors/RecruitHeroBehavior.h
		Behaviors/BuyArmyBehavior.h
		Behaviors/DefenceBehavior.h
		Behaviors/StartupBehavior.h
		Behaviors/BuildingBehavior.h
		Behaviors/GatherArmyBehavior.h
		Behaviors/ClusterBehavior.h
		AIGateway.h
)

assign_source_group(${Nullkiller_SRCS} ${Nullkiller_HEADERS})

if(ANDROID) # android compiles ai libs into main lib directly, so we skip this library and just reuse sources list
	return()
endif()

add_library(Nullkiller SHARED ${Nullkiller_SRCS} ${Nullkiller_HEADERS})

target_include_directories(Nullkiller PUBLIC ${CMAKE_CURRENT_SOURCE_DIR})

target_link_libraries(Nullkiller PRIVATE ${VCMI_LIB_TARGET} fuzzylite::fuzzylite)

target_link_libraries(Nullkiller PRIVATE TBB::tbb)

vcmi_set_output_dir(Nullkiller "AI")
enable_pch(Nullkiller)

install(TARGETS Nullkiller RUNTIME DESTINATION ${AI_LIB_DIR} LIBRARY DESTINATION ${AI_LIB_DIR})
if(APPLE_IOS AND NOT USING_CONAN)
	install(IMPORTED_RUNTIME_ARTIFACTS TBB::tbb LIBRARY DESTINATION ${LIB_DIR}) # CMake 3.21+
endif()