CMAKE_MINIMUM_REQUIRED(VERSION 2.8)

SET(zone_sources
	aa.cpp
	aa_ability.cpp
	aggro.cpp
	aggromanager.cpp
	api_service.cpp
	attack.cpp
	aura.cpp
	beacon.cpp
	bonuses.cpp
	bot.cpp
	bot_command.cpp
	bot_database.cpp
	botspellsai.cpp
	client.cpp
	client_mods.cpp
	client_packet.cpp
	client_process.cpp
	command.cpp
	corpse.cpp
	data_bucket.cpp
	doors.cpp
	effects.cpp
	embparser.cpp
	embparser_api.cpp
	embperl.cpp
	embxs.cpp
	encounter.cpp
	entity.cpp
	exp.cpp
	fastmath.cpp
	fearpath.cpp
	forage.cpp
	groups.cpp
	guild.cpp
	guild_mgr.cpp
	hate_list.cpp
	heal_rotation.cpp
	horse.cpp
	inventory.cpp
	loottables.cpp
	lua_bit.cpp
	lua_corpse.cpp
	lua_client.cpp
	lua_door.cpp
	lua_encounter.cpp
	lua_entity.cpp
	lua_entity_list.cpp
	lua_general.cpp
	lua_group.cpp
	lua_hate_list.cpp
	lua_inventory.cpp
	lua_item.cpp
	lua_iteminst.cpp
	lua_mob.cpp
	lua_mod.cpp
	lua_npc.cpp
	lua_object.cpp
	lua_packet.cpp
	lua_parser.cpp
	lua_parser_events.cpp
	lua_raid.cpp
	lua_spawn.cpp
	lua_spell.cpp
	lua_stat_bonuses.cpp
	embperl.cpp
	embxs.cpp
	entity.cpp
	exp.cpp
	fearpath.cpp
	forage.cpp
	global_loot_manager.cpp
	groups.cpp
	guild.cpp
	guild_mgr.cpp
	hate_list.cpp
	horse.cpp
	inventory.cpp
	loottables.cpp
	map.cpp
	merc.cpp
	mob.cpp
	mob_ai.cpp
	mob_appearance.cpp
	mob_movement_manager.cpp
	mob_info.cpp
	mod_functions.cpp
	net.cpp
	npc.cpp
	npc_ai.cpp
	npc_scale_manager.cpp
	object.cpp
	oriented_bounding_box.cpp
	pathfinder_interface.cpp
	pathfinder_nav_mesh.cpp
	pathfinder_null.cpp
	pathing.cpp
	perl_client.cpp
	perl_doors.cpp
	perl_entity.cpp
	perl_groups.cpp
	perl_hateentry.cpp
	perl_mob.cpp
	perl_npc.cpp
	perl_object.cpp
	perl_perlpacket.cpp
	perl_player_corpse.cpp
	perl_questitem.cpp
	perl_raids.cpp
	perlpacket.cpp
	petitions.cpp
	pets.cpp
	position.cpp
	qglobals.cpp
	queryserv.cpp
	questmgr.cpp
	quest_parser_collection.cpp
	raids.cpp
	raycast_mesh.cpp
	spawn2.cpp
	spawn2.h
	spawngroup.cpp
	special_attacks.cpp
	spell_effects.cpp
	spells.cpp
	tasks.cpp
	titles.cpp
	tradeskills.cpp
	trading.cpp
	trap.cpp
	tribute.cpp
	tune.cpp
	water_map.cpp
	water_map_v1.cpp
	water_map_v2.cpp
	waypoints.cpp
	worldserver.cpp
	xtargetautohaters.cpp
	zone.cpp
	zone_config.cpp
	zonedb.cpp
	zoning.cpp
)

SET(zone_headers
	aa.h
	aa_ability.h
	aggromanager.h
	api_service.h
	aura.h
	basic_functions.h
	beacon.h
	bot.h
	bot_command.h
	bot_database.h
	bot_structs.h
	client.h
	client_packet.h
	command.h
	common.h
	corpse.h
	data_bucket.h
	doors.h
	embparser.h
	embperl.h
	embxs.h
	encounter.h
	entity.h
	errmsg.h
	event_codes.h
	fastmath.h
	forage.h
	global_loot_manager.h
	groups.h
	guild_mgr.h
	hate_list.h
	heal_rotation.h
	horse.h
	lua_bit.h
	lua_client.h
	lua_corpse.h
	lua_door.h
	lua_encounter.h
	lua_entity.h
	lua_entity_list.h
	lua_general.h
	lua_group.h
	lua_hate_list.h
	lua_inventory.h
	lua_item.h
	lua_iteminst.h
	lua_mob.h
	lua_mod.h
	lua_npc.h
	lua_object.h
	lua_packet.h
	lua_parser.h
	lua_parser_events.h
	lua_ptr.h
	lua_raid.h
	lua_spawn.h
	lua_spell.h
	lua_stat_bonuses.h
	map.h
	masterentity.h
	maxskill.h
	message.h
	merc.h
	mob.h
	mob_movement_manager.h
	net.h
	npc.h
	npc_ai.h
	npc_scale_manager.h
	object.h
	oriented_bounding_box.h
	pathfinder_interface.h
	pathfinder_nav_mesh.h
	pathfinder_null.h
	perlpacket.h
	petitions.h
	pets.h
	position.h
	qglobals.h
	quest_interface.h
	queryserv.h
	quest_interface.h
	questmgr.h
	quest_parser_collection.h
	raid.h
	raids.h
	raycast_mesh.h
	skills.h
	spawn2.cpp
	spawn2.h
	spawngroup.h
	string_ids.h
	tasks.h
	titles.h
	trap.h
	water_map.h
	water_map_v1.h
	water_map_v2.h
	worldserver.h
	xtargetautohaters.h
	zone.h
	zone_config.h
	zonedb.h
	zonedump.h)

ADD_EXECUTABLE(zone ${zone_sources} ${zone_headers})

INSTALL(TARGETS zone RUNTIME DESTINATION ${CMAKE_INSTALL_PREFIX}/bin)

ADD_DEFINITIONS(-DZONE)

TARGET_LINK_LIBRARIES(zone ${SERVER_LIBS})

IF(EQEMU_BUILD_PERL)
	TARGET_LINK_LIBRARIES(zone ${PERL_LIBRARY})
ENDIF()

IF(EQEMU_BUILD_LUA)
	TARGET_LINK_LIBRARIES(zone luabind ${LUA_LIBRARY})
ENDIF(EQEMU_BUILD_LUA)

SET(EXECUTABLE_OUTPUT_PATH ${PROJECT_BINARY_DIR}/bin)
