
set(SHARED_SOURCES
	shared/appearance/WearableAppearanceMap.cpp
	shared/appearance/WearableAppearanceMap.h

	shared/collision/CollisionCallbackManager.cpp
	shared/collision/CollisionCallbackManager.h

	shared/combat/CombatDataTable.cpp
	shared/combat/CombatDataTable.h
	shared/combat/CombatTimingTable.cpp
	shared/combat/CombatTimingTable.h

	shared/command/Command.cpp
	shared/command/Command.h
	shared/command/CommandChecks.cpp
	shared/command/CommandChecks.h
	shared/command/CommandCppFunc.def
	shared/command/CommandTable.cpp
	shared/command/CommandTable.h

	shared/core/AiDebugString.cpp
	shared/core/AiDebugString.h
	shared/core/AssetCustomizationManager.cpp
	shared/core/AssetCustomizationManager.h
	shared/core/AuctionManager.cpp
	shared/core/AuctionManager.h
	shared/core/AuctionTokenArchive.cpp
	shared/core/AuctionTokenArchive.h
	shared/core/AuctionToken.cpp
	shared/core/AuctionToken.h
	shared/core/CitizenRankDataTable.h
	shared/core/CitizenRankDataTable.cpp
	shared/core/CityData.h
	shared/core/ClientCombatManagerSupport.cpp
	shared/core/ClientCombatManagerSupport.h
	shared/core/CollectionsDataTable.cpp
	shared/core/CollectionsDataTable.h
	shared/core/CommoditiesAdvancedSearchAttribute.cpp
	shared/core/CommoditiesAdvancedSearchAttribute.h
	shared/core/ConfigSharedGame.cpp
	shared/core/ConfigSharedGame.h
	shared/core/CraftingDataArchive.cpp
	shared/core/CraftingDataArchive.h
	shared/core/CraftingData.cpp
	shared/core/CraftingData.h
	shared/core/CustomizationManager.cpp
	shared/core/CustomizationManager.h
	shared/core/CustomizationManager_MorphParameter.cpp
	shared/core/CustomizationManager_MorphParameter.h
	shared/core/DraftSchematicGroupManager.cpp
	shared/core/DraftSchematicGroupManager.h
	shared/core/FirstSharedGame.h
	shared/core/FormManager.cpp
	shared/core/FormManager.h
	shared/core/GameLanguageManager.cpp
	shared/core/GameLanguageManager.h
	shared/core/GameObjectTypes.cpp
	shared/core/GameObjectTypes.h
	shared/core/GameScheduler.cpp
	shared/core/GameScheduler.h
	shared/core/GroundZoneManager.h
	shared/core/GroundZoneManager.cpp
	shared/core/GuildRankDataTable.h
	shared/core/GuildRankDataTable.cpp
	shared/core/HoverPlaneHelper.cpp
	shared/core/HoverPlaneHelper.h
	shared/core/HyperspaceManager.cpp
	shared/core/HyperspaceManager.h
	shared/core/LfgCharacterData.cpp
	shared/core/LfgCharacterData.h
	shared/core/LfgDataTable.cpp
	shared/core/LfgDataTable.h
	shared/core/MoodManager.cpp
	shared/core/MoodManager.h
	shared/core/NpcConversationData.h
	shared/core/OutOfBandBase.cpp
	shared/core/OutOfBandBase.h
	shared/core/OutOfBand.h
	shared/core/OutOfBandPackager.cpp
	shared/core/OutOfBandPackager.h
	shared/core/PlanetMapManager.cpp
	shared/core/PlanetMapManager.h
	shared/core/PlatformFeatureBits.cpp
	shared/core/PlatformFeatureBits.h
	shared/core/PlayerCreationManager.cpp
	shared/core/PlayerCreationManager.h
	shared/core/PlayerData.h
	shared/core/ProsePackageArchive.cpp
	shared/core/ProsePackageArchive.h
	shared/core/ProsePackage.cpp
	shared/core/ProsePackage.h
	shared/core/ProsePackageParticipantArchive.cpp
	shared/core/ProsePackageParticipantArchive.h
	shared/core/ProsePackageParticipant.cpp
	shared/core/ProsePackageParticipant.h
	shared/core/PvpData.h
	shared/core/RadialMenuManager.cpp
	shared/core/RadialMenuManager.h
	shared/core/SetupSharedGame.cpp
	shared/core/SetupSharedGame.h
	shared/core/SharedBuffBuilderManager.cpp
	shared/core/SharedBuffBuilderManager.h
	shared/core/SharedBuildoutAreaManager.cpp
	shared/core/SharedBuildoutAreaManager.h
	shared/core/SharedImageDesignerManager.cpp
	shared/core/SharedImageDesignerManager.h
	shared/core/SharedObjectAttributes.cpp
	shared/core/SharedObjectAttributes.h
	shared/core/SharedHyperspaceStringIds.cpp
	shared/core/SharedHyperspaceStringIds.h
	shared/core/SharedStringIds.cpp
	shared/core/SharedStringIds.h
	shared/core/SocialsManager.cpp
	shared/core/SocialsManager.h
	shared/core/SpatialChatManager.cpp
	shared/core/SpatialChatManager.h
	shared/core/TextIterator.cpp
	shared/core/TextIterator.h
	shared/core/TextManager.cpp
	shared/core/TextManager.h
	shared/core/Universe.cpp
	shared/core/Universe.h
	shared/core/WearableEntry.cpp
	shared/core/WearableEntry.h

	shared/dynamics/ShipDynamicsModel.cpp
	shared/dynamics/ShipDynamicsModel.h

	shared/mount/MountValidScaleRangeTable.cpp
	shared/mount/MountValidScaleRangeTable.h
	shared/mount/SharedSaddleManager.cpp
	shared/mount/SharedSaddleManager.h

	shared/object/AppearanceManager.cpp
	shared/object/AppearanceManager.h
	shared/object/AttribMod.cpp
	shared/object/AttribMod.h
	shared/object/AttribModArchive.cpp
	shared/object/AttribModArchive.h
	shared/object/Buff.cpp
	shared/object/Buff.h
	shared/object/GroupPickupPoint.cpp
	shared/object/GroupPickupPoint.h
	shared/object/LotManagerNotification.cpp
	shared/object/LotManagerNotification.h
	shared/object/MatchMakingCharacterPreferenceId.cpp
	shared/object/MatchMakingCharacterPreferenceId.h
	shared/object/MatchMakingCharacterProfileId.cpp
	shared/object/MatchMakingCharacterProfileId.h
	shared/object/MatchMakingCharacterResult.cpp
	shared/object/MatchMakingCharacterResult.h
	shared/object/MatchMakingId.cpp
	shared/object/MatchMakingId.h
	shared/object/NoBuildNotification.cpp
	shared/object/NoBuildNotification.h
	shared/object/ObjectUsabilityManager.cpp
	shared/object/ObjectUsabilityManager.h
	shared/object/ShipObjectInterface.cpp
	shared/object/ShipObjectInterface.h
	shared/object/SlopeEffectProperty.cpp
	shared/object/SlopeEffectProperty.h
	shared/object/SlowDownProperty.cpp
	shared/object/SlowDownProperty.h
	shared/object/ResourceClassObject.cpp
	shared/object/ResourceClassObject.h
	shared/object/VehicleHoverDynamics.cpp
	shared/object/VehicleHoverDynamics.h
	shared/object/Waypoint.cpp
	shared/object/WaypointData.cpp
	shared/object/WaypointData.h
	shared/object/Waypoint.h

	shared/objectTemplate/SharedBattlefieldMarkerObjectTemplate.cpp
	shared/objectTemplate/SharedBattlefieldMarkerObjectTemplate.h
	shared/objectTemplate/SharedBuildingObjectTemplate.cpp
	shared/objectTemplate/SharedBuildingObjectTemplate.h
	shared/objectTemplate/SharedCellObjectTemplate.cpp
	shared/objectTemplate/SharedCellObjectTemplate.h
	shared/objectTemplate/SharedConstructionContractObjectTemplate.cpp
	shared/objectTemplate/SharedConstructionContractObjectTemplate.h
	shared/objectTemplate/SharedCreatureObjectTemplate.cpp
	shared/objectTemplate/SharedCreatureObjectTemplate.h
	shared/objectTemplate/SharedDraftSchematicObjectTemplate.cpp
	shared/objectTemplate/SharedDraftSchematicObjectTemplate.h
	shared/objectTemplate/SharedFactoryObjectTemplate.cpp
	shared/objectTemplate/SharedFactoryObjectTemplate.h
	shared/objectTemplate/SharedGroupObjectTemplate.cpp
	shared/objectTemplate/SharedGroupObjectTemplate.h
	shared/objectTemplate/SharedGuildObjectTemplate.cpp
	shared/objectTemplate/SharedGuildObjectTemplate.h
	shared/objectTemplate/SharedInstallationObjectTemplate.cpp
	shared/objectTemplate/SharedInstallationObjectTemplate.h
	shared/objectTemplate/SharedIntangibleObjectTemplate.cpp
	shared/objectTemplate/SharedIntangibleObjectTemplate.h
	shared/objectTemplate/SharedJediManagerObjectTemplate.cpp
	shared/objectTemplate/SharedJediManagerObjectTemplate.h
	shared/objectTemplate/SharedManufactureSchematicObjectTemplate.cpp
	shared/objectTemplate/SharedManufactureSchematicObjectTemplate.h
	shared/objectTemplate/SharedMissionDataObjectTemplate.cpp
	shared/objectTemplate/SharedMissionDataObjectTemplate.h
	shared/objectTemplate/SharedMissionListEntryObjectTemplate.cpp
	shared/objectTemplate/SharedMissionListEntryObjectTemplate.h
	shared/objectTemplate/SharedMissionObjectTemplate.cpp
	shared/objectTemplate/SharedMissionObjectTemplate.h
	shared/objectTemplate/SharedObjectTemplate.cpp
	shared/objectTemplate/SharedObjectTemplate.h
	shared/objectTemplate/SharedPlayerObjectTemplate.cpp
	shared/objectTemplate/SharedPlayerObjectTemplate.h
	shared/objectTemplate/SharedPlayerQuestObjectTemplate.cpp
	shared/objectTemplate/SharedPlayerQuestObjectTemplate.h
	shared/objectTemplate/SharedResourceContainerObjectTemplate.cpp
	shared/objectTemplate/SharedResourceContainerObjectTemplate.h
	shared/objectTemplate/SharedShipObjectTemplate.cpp
	shared/objectTemplate/SharedShipObjectTemplate.h
	shared/objectTemplate/SharedStaticObjectTemplate.cpp
	shared/objectTemplate/SharedStaticObjectTemplate.h
	shared/objectTemplate/SharedTangibleObjectTemplate.cpp
	shared/objectTemplate/SharedTangibleObjectTemplate.h
	shared/objectTemplate/SharedTerrainSurfaceObjectTemplate.cpp
	shared/objectTemplate/SharedTerrainSurfaceObjectTemplate.h
	shared/objectTemplate/SharedTokenObjectTemplate.cpp
	shared/objectTemplate/SharedTokenObjectTemplate.h
	shared/objectTemplate/SharedUniverseObjectTemplate.cpp
	shared/objectTemplate/SharedUniverseObjectTemplate.h
	shared/objectTemplate/SharedVehicleObjectTemplate.cpp
	shared/objectTemplate/SharedVehicleObjectTemplate.h
	shared/objectTemplate/SharedWaypointObjectTemplate.cpp
	shared/objectTemplate/SharedWaypointObjectTemplate.h
	shared/objectTemplate/SharedWeaponObjectTemplate.cpp
	shared/objectTemplate/SharedWeaponObjectTemplate.h 

	shared/quest/PlayerQuestData.cpp
	shared/quest/PlayerQuestData.h
	shared/quest/Quest.cpp
	shared/quest/Quest.h
	shared/quest/QuestManager.cpp
	shared/quest/QuestManager.h
	shared/quest/QuestTask.cpp
	shared/quest/QuestTask.h

	shared/space/AsteroidGenerationManager.cpp
	shared/space/AsteroidGenerationManager.h
	shared/space/Nebula.cpp
	shared/space/Nebula.h
	shared/space/NebulaManager.cpp
	shared/space/NebulaManager.h
	shared/space/PlayerFormationManager.cpp
	shared/space/PlayerFormationManager.h
	shared/space/ShipChassis.cpp
	shared/space/ShipChassis.h
	shared/space/ShipChassisWritable.cpp
	shared/space/ShipChassisWritable.h
	shared/space/ShipChassisSlot.cpp
	shared/space/ShipChassisSlot.h
	shared/space/ShipChassisSlotType.cpp
	shared/space/ShipChassisSlotType.h
	shared/space/ShipComponentAttachmentManager.cpp
	shared/space/ShipComponentAttachmentManager.h
	shared/space/ShipComponentData.cpp
	shared/space/ShipComponentData.h
	shared/space/ShipComponentDescriptor.cpp
	shared/space/ShipComponentDescriptor.h
	shared/space/ShipComponentDescriptorWritable.cpp
	shared/space/ShipComponentDescriptorWritable.h
	shared/space/ShipComponentFlags.cpp
	shared/space/ShipComponentFlags.h
	shared/space/ShipComponentType.cpp
	shared/space/ShipComponentType.h
	shared/space/ShipComponentWeaponManager.cpp
	shared/space/ShipComponentWeaponManager.h
	shared/space/ShipSlotIdManager.cpp
	shared/space/ShipSlotIdManager.h
	shared/space/ShipTargeting.cpp
	shared/space/ShipTargeting.h
	shared/space/ShipTurretManager.cpp
	shared/space/ShipTurretManager.h

	shared/sui/SuiCommand.cpp
	shared/sui/SuiCommand.h
	shared/sui/SuiCommandArchive.cpp
	shared/sui/SuiCommandArchive.h
	shared/sui/SuiEventSubscription.cpp
	shared/sui/SuiEventSubscription.h
	shared/sui/SuiEventType.cpp
	shared/sui/SuiEventType.h
	shared/sui/SuiPageData.cpp
	shared/sui/SuiPageData.h
	shared/sui/SuiPageDataArchive.cpp
	shared/sui/SuiPageDataArchive.h
	shared/sui/SuiWidgetProperty.cpp
	shared/sui/SuiWidgetProperty.h

	shared/travel/TravelManager.cpp
	shared/travel/TravelManager.h
	shared/travel/TravelPoint.cpp
	shared/travel/TravelPoint.h
)

if(WIN32)
	set(PLATFORM_SOURCES
		win32/FirstSharedGame.cpp
	)

	include_directories(${CMAKE_CURRENT_SOURCE_DIR}/win32)
else()
	set(PLATFORM_SOURCES "")
endif()

include_directories(
	${CMAKE_CURRENT_SOURCE_DIR}/shared
	${SWG_ENGINE_SOURCE_DIR}/shared/library/sharedCollision/include/public
	${SWG_ENGINE_SOURCE_DIR}/shared/library/sharedDebug/include/public
	${SWG_ENGINE_SOURCE_DIR}/shared/library/sharedFile/include/public
	${SWG_ENGINE_SOURCE_DIR}/shared/library/sharedFoundation/include/public
	${SWG_ENGINE_SOURCE_DIR}/shared/library/sharedFoundationTypes/include/public
	${SWG_ENGINE_SOURCE_DIR}/shared/library/sharedLog/include/public
	${SWG_ENGINE_SOURCE_DIR}/shared/library/sharedMath/include/public
	${SWG_ENGINE_SOURCE_DIR}/shared/library/sharedMathArchive/include/public
	
	${SWG_ENGINE_SOURCE_DIR}/shared/library/sharedMessageDispatch/include/public
	${SWG_ENGINE_SOURCE_DIR}/shared/library/sharedNetworkMessages/include/public
	${SWG_ENGINE_SOURCE_DIR}/shared/library/sharedObject/include/public
	${SWG_ENGINE_SOURCE_DIR}/shared/library/sharedRandom/include/public
	${SWG_ENGINE_SOURCE_DIR}/shared/library/sharedSkillSystem/include/public
	${SWG_ENGINE_SOURCE_DIR}/shared/library/sharedTerrain/include/public
	${SWG_ENGINE_SOURCE_DIR}/shared/library/sharedUtility/include/public
	${SWG_GAME_SOURCE_DIR}/shared/library/swgSharedUtility/include/public
	${SWG_EXTERNALS_SOURCE_DIR}/ours/library/archive/include
	${SWG_EXTERNALS_SOURCE_DIR}/ours/library/fileInterface/include/public
	${SWG_EXTERNALS_SOURCE_DIR}/ours/library/localization/include
	${SWG_EXTERNALS_SOURCE_DIR}/ours/library/localizationArchive/include/public
	${SWG_EXTERNALS_SOURCE_DIR}/ours/library/unicode/include
	${SWG_EXTERNALS_SOURCE_DIR}/ours/library/unicodeArchive/include/public
	${Boost_INCLUDE_DIR}
)

add_library(sharedGame STATIC
	${SHARED_SOURCES}
	${PLATFORM_SOURCES}
)

target_link_libraries(sharedGame
	sharedFoundation
	sharedObject
	sharedUtility
	archive
)
