project(StarsEx) include(GitDescribe) add_library( StarsEx STATIC ActiveWindow.cpp Asteroid.cpp AudDlg.cpp AudioConfig.cpp AwardDlg.cpp AwardShowDlg.cpp Bitmap.cpp Bmp.cpp Bolt.cpp Button.cpp Callsign.cpp Camera.cpp CameraDirector.cpp CameraView.cpp Campaign.cpp CampaignMissionFighter.cpp CampaignMissionRequest.cpp CampaignMissionStarship.cpp CampaignPlanAssignment.cpp CampaignPlanEvent.cpp CampaignPlanMission.cpp CampaignPlanMovement.cpp CampaignPlanStrategic.cpp CampaignSaveGame.cpp CampaignSituationReport.cpp CarrierAI.cpp Clock.cpp CmdDlg.cpp CmdForceDlg.cpp CmdIntelDlg.cpp CmdMissionsDlg.cpp CmdMsgDlg.cpp CmdOrdersDlg.cpp CmdTheaterDlg.cpp CmdTitleDlg.cpp CmpCompleteDlg.cpp CmpFileDlg.cpp CmpLoadDlg.cpp CmpSceneDlg.cpp CmpSelectDlg.cpp CmpnScreen.cpp Color.cpp CombatAction.cpp CombatAssignment.cpp CombatEvent.cpp CombatGroup.cpp CombatRoster.cpp CombatUnit.cpp CombatZone.cpp Combatant.cpp ComboBox.cpp ComboList.cpp Component.cpp Computer.cpp ConfirmDlg.cpp Contact.cpp ContentBundle.cpp CtlDlg.cpp D3DXImage.cpp DataLoader.cpp DataSource.cpp DebriefDlg.cpp Debris.cpp DetailSet.cpp DisplayView.cpp Drive.cpp DriveSprite.cpp Drone.cpp DropShipAI.cpp EditBox.cpp Element.cpp Encrypt.cpp EngDlg.cpp EventDispatch.cpp ExceptionHandler.cpp ExitDlg.cpp Explosion.cpp FadeView.cpp Farcaster.cpp FighterAI.cpp FighterTacticalAI.cpp FirstTimeDlg.cpp Fix.cpp FlightComp.cpp FlightDeck.cpp FlightPlanner.cpp FltDlg.cpp Font.cpp FontMgr.cpp FormDef.cpp FormWindow.cpp FormatUtil.cpp Galaxy.cpp Game.cpp GameScreen.cpp GameWinDX9.cpp Geometry.cpp Graphic.cpp Grid.cpp GroundAI.cpp HUDSounds.cpp HUDView.cpp Hangar.cpp HardPoint.cpp Hoop.cpp ImageBox.cpp ImgView.cpp Instruction.cpp Intel.cpp JoyDlg.cpp Joystick.cpp KeyDlg.cpp KeyMap.cpp Keyboard.cpp LandingGear.cpp Layout.cpp Light.cpp ListBox.cpp LoadDlg.cpp LoadScreen.cpp Locale_ss.cpp MCIWave.cpp MachineInfo.cpp MapView.cpp Menu.cpp MenuDlg.cpp MenuScreen.cpp MenuView.cpp Mfd.cpp Mission.cpp MissionEvent.cpp MissionTemplate.cpp ModConfig.cpp ModDlg.cpp ModInfo.cpp ModInfoDlg.cpp Mouse.cpp MouseController.cpp MsnDlg.cpp MsnEditDlg.cpp MsnEditNavDlg.cpp MsnElemDlg.cpp MsnEventDlg.cpp MsnNavDlg.cpp MsnObjDlg.cpp MsnPkgDlg.cpp MsnSelectDlg.cpp MsnWepDlg.cpp MultiController.cpp MusicDirector.cpp MusicTrack.cpp NPClientWraps.cpp NavAI.cpp NavDlg.cpp NavLight.cpp NavSystem.cpp NetAddrDlg.cpp NetAuth.cpp NetBrokerClient.cpp NetChat.cpp NetClientConfig.cpp NetClientDlg.cpp NetData.cpp NetGame.cpp NetGameClient.cpp NetGameServer.cpp NetLobby.cpp NetLobbyClient.cpp NetLobbyDlg.cpp NetLobbyServer.cpp NetPacket.cpp NetPassDlg.cpp NetPlayer.cpp NetServerConfig.cpp NetServerDlg.cpp NetUnitDlg.cpp NetUser.cpp NetUtil.cpp OptDlg.cpp Pcx.cpp Panic.cpp ParseUtil.cpp Particles.cpp Physical.cpp PlanScreen.cpp Player.cpp PlayerDlg.cpp PngImage.cpp Polygon.cpp Power.cpp Projector.cpp QuantumDrive.cpp QuantumFlash.cpp QuantumView.cpp QuitView.cpp RLoc.cpp RadioHandler.cpp RadioMessage.cpp RadioTraffic.cpp RadioView.cpp RadioVox.cpp Random.cpp Res.cpp RichTextBox.cpp Scene.cpp Screen.cpp ScrollWindow.cpp SeekerAI.cpp Sensor.cpp Sha1.cpp Shadow.cpp Shield.cpp ShieldRep.cpp Ship.cpp ShipAI.cpp ShipCtrl.cpp ShipDesign.cpp ShipKiller.cpp ShipSolid.cpp Shot.cpp Sim.cpp SimEvent.cpp SimObject.cpp Skin.cpp Sky.cpp Slider.cpp Solid.cpp Sound.cpp SoundCard.cpp SoundD3D.cpp Sprite.cpp StarSystem.cpp Starshatter.cpp StarshipAI.cpp StarshipTacticalAI.cpp SteerAI.cpp System.cpp SystemDesign.cpp TacRefDlg.cpp TacticalAI.cpp TacticalView.cpp Terrain.cpp TerrainApron.cpp TerrainClouds.cpp TerrainHaze.cpp TerrainPatch.cpp TerrainRegion.cpp TexCubeDX9.cpp TexDX9.cpp Thruster.cpp TrackIR.cpp Trail.cpp VidDlg.cpp Video.cpp VideoDX9.cpp VideoDX9Enum.cpp VideoDX9VertexBuffer.cpp VideoFactory.cpp VideoSettings.cpp Water.cpp Weapon.cpp WeaponDesign.cpp WeaponGroup.cpp Weather.cpp WepView.cpp Window.cpp WndProc.cpp ) target_include_directories( StarsEx PUBLIC ${CMAKE_CURRENT_SOURCE_DIR} ) target_link_libraries( StarsEx PUBLIC ArchiveEx PUBLIC DefinitionEx PUBLIC FoundationEx PUBLIC NetEx PUBLIC Zlib::zlib PUBLIC Vorbis::vorbis PUBLIC Vorbis::vorbisfile PUBLIC Ogg::ogg PUBLIC Png::png PUBLIC Opcode ) target_compile_definitions( StarsEx PRIVATE _ALLOW_KEYWORD_MACROS ) git_describe(VERSION) configure_file(VersionInfo.cpp.conf ${CMAKE_CURRENT_BINARY_DIR}/VersionInfo.cpp @ONLY) target_sources( StarsEx PRIVATE ${CMAKE_CURRENT_BINARY_DIR}/VersionInfo.cpp ) if(MSVC) target_include_directories( StarsEx PUBLIC $ENV{DXSDK_DIR}/Include PUBLIC ${WINDOWSSDK_PATH}/um PUBLIC ${WINDOWSSDK_PATH}/shared ) target_link_libraries( StarsEx PUBLIC ${WINDOWSSDK_LIBPATH}/um/x86/Ws2_32.lib PUBLIC ${WINDOWSSDK_LIBPATH}/um/x86/Vfw32.lib PUBLIC ${WINDOWSSDK_LIBPATH}/um/x86/wsock32.lib PUBLIC ${WINDOWSSDK_LIBPATH}/um/x86/winmm.lib PUBLIC ${WINDOWSSDK_LIBPATH}/um/x86/version.lib PUBLIC $ENV{DXSDK_DIR}/Lib/x86/dinput8.lib PUBLIC $ENV{DXSDK_DIR}/Lib/x86/dsound.lib PUBLIC $ENV{DXSDK_DIR}/Lib/x86/d3d9.lib PUBLIC $ENV{DXSDK_DIR}/Lib/x86/d3dx9.lib PUBLIC $ENV{DXSDK_DIR}/Lib/x86/dxguid.lib ) else() target_link_libraries( StarsEx PUBLIC -l:libws2_32.a PUBLIC -l:libvfw32.a PUBLIC -l:libwsock32.a PUBLIC -l:libwinmm.a PUBLIC -l:libversion.a PUBLIC -l:libdinput8.a PUBLIC -l:libdsound.a PUBLIC -l:libd3d9.a PUBLIC -l:libd3dx9.a PUBLIC -l:libdxguid.a ) endif()