# -*- cmake -*- project(viewer) include(00-Common) include(Boost) include(DBusGlib) include(DirectX) include(ELFIO) if(FMODEX) include(FMODEX) set(FMOD OFF) else(FMODEX) include(FMOD) endif(FMODEX) include(OPENAL) include(FindOpenGL) include(Hunspell) #include(JsonCpp) include(LLAddBuildTest) include(LLAudio) include(LLCharacter) include(LLCommon) include(LLImage) include(LLImageJ2COJ) include(LLInventory) include(LLMath) include(LLMessage) include(LLPlugin) include(AIStateMachine) include(LLPrimitive) include(LLRender) include(LLUI) include(LLVFS) include(LLWindow) include(LLXML) #include(LScript) include(Linking) include(NDOF) include(GooglePerfTools) include(TemplateCheck) include(UI) include(LLKDU) include(ViewerMiscLibs) include(ViewerArtwork.cmake) if (WINDOWS) include(CopyWinLibs) endif (WINDOWS) include_directories( ${CMAKE_SOURCE_DIR}/newview ${DBUSGLIB_INCLUDE_DIRS} ${HUNSPELL_INCLUDE_DIR} ${ELFIO_INCLUDE_DIR} ${JSONCPP_INCLUDE_DIRS} ${LLAUDIO_INCLUDE_DIRS} ${LLCHARACTER_INCLUDE_DIRS} ${LLCOMMON_INCLUDE_DIRS} ${LLIMAGE_INCLUDE_DIRS} ${LLINVENTORY_INCLUDE_DIRS} ${LLMATH_INCLUDE_DIRS} ${LLMESSAGE_INCLUDE_DIRS} ${LLPLUGIN_INCLUDE_DIRS} ${LLPRIMITIVE_INCLUDE_DIRS} ${LLRENDER_INCLUDE_DIRS} ${LLUI_INCLUDE_DIRS} ${LLVFS_INCLUDE_DIRS} ${LLWINDOW_INCLUDE_DIRS} ${LLXML_INCLUDE_DIRS} # ${LSCRIPT_INCLUDE_DIRS} # ${LSCRIPT_INCLUDE_DIRS}/lscript_compile ) set(viewer_SOURCE_FILES aoremotectrl.cpp ascentfloatercontactgroups.cpp ascentkeyword.cpp ascentprefschat.cpp ascentprefssys.cpp ascentprefsvan.cpp chatbar_as_cmdline.cpp emeraldboobutils.cpp floaterao.cpp floaterlocalassetbrowse.cpp floatervoicelicense.cpp hbfloatergrouptitles.cpp hgfloatertexteditor.cpp hippofloaterxml.cpp hippogridmanager.cpp hippolimits.cpp hippopanelgrids.cpp hipporestrequest.cpp importtracker.cpp jcfloaterareasearch.cpp lggdicdownload.cpp lgghunspell_wrapper.cpp llaccountingcostmanager.cpp llagent.cpp llagentaccess.cpp llagentcamera.cpp llagentdata.cpp llagentlanguage.cpp llagentpilot.cpp llagentui.cpp llagentwearables.cpp llagentwearablesfetch.cpp llanimstatelabels.cpp llappearancemgr.cpp llappviewer.cpp llassetconverter.cpp llassetuploadqueue.cpp llassetuploadresponders.cpp llattachmentsmgr.cpp llaudiosourcevo.cpp llavatarpropertiesprocessor.cpp llbox.cpp llbuildnewviewsscheduler.cpp llcallbacklist.cpp llcallingcard.cpp llcapabilitylistener.cpp llcaphttpsender.cpp llchatbar.cpp llclassifiedinfo.cpp llclassifiedstatsresponder.cpp llcloud.cpp llcolorscheme.cpp llcolorswatch.cpp llcommandhandler.cpp llcommandlineparser.cpp llcompilequeue.cpp llconfirmationmanager.cpp llconsole.cpp llcontainerview.cpp llcurlrequest.cpp llcurrencyuimanager.cpp llcylinder.cpp lldaycyclemanager.cpp lldebugmessagebox.cpp lldebugview.cpp lldelayedgestureerror.cpp lldrawable.cpp lldrawpool.cpp lldrawpoolalpha.cpp lldrawpoolavatar.cpp lldrawpoolbump.cpp lldrawpoolground.cpp lldrawpoolsimple.cpp lldrawpoolsky.cpp lldrawpoolterrain.cpp lldrawpooltree.cpp lldrawpoolwater.cpp lldrawpoolwlsky.cpp lldriverparam.cpp lldroptarget.cpp lldynamictexture.cpp llemote.cpp llenvmanager.cpp lleventinfo.cpp lleventnotifier.cpp lleventpoll.cpp llexternaleditor.cpp llface.cpp llfasttimerview.cpp llfeaturemanager.cpp llfirstuse.cpp llflexibleobject.cpp llfloaterabout.cpp llfloateractivespeakers.cpp llfloateranimpreview.cpp llfloaterauction.cpp llfloateravatarinfo.cpp llfloateravatarlist.cpp llfloateravatarpicker.cpp llfloateravatartextures.cpp llfloaterbeacons.cpp llfloaterblacklist.cpp llfloaterbuildoptions.cpp llfloaterbulkpermission.cpp llfloaterbump.cpp llfloaterbuy.cpp llfloaterbuycontents.cpp llfloaterbuycurrency.cpp llfloaterbuyland.cpp llfloatercamera.cpp llfloaterchat.cpp llfloaterchatterbox.cpp llfloaterclassified.cpp llfloatercolorpicker.cpp llfloatercustomize.cpp llfloaterdaycycle.cpp llfloaterdirectory.cpp llfloaterdisplayname.cpp llfloatereditui.cpp llfloaterenvsettings.cpp llfloaterevent.cpp llfloaterexploreanimations.cpp llfloaterexploresounds.cpp llfloaterfriends.cpp llfloaterfonttest.cpp llfloatergesture.cpp llfloatergodtools.cpp llfloatergroupinfo.cpp llfloatergroupinvite.cpp llfloatergroups.cpp llfloaterhandler.cpp llfloaterhtmlcurrency.cpp llfloaterhtmlsimple.cpp llfloaterhud.cpp llfloaterimagepreview.cpp llfloaterinspect.cpp llfloaterjoystick.cpp llfloaterlagmeter.cpp llfloaterland.cpp llfloaterlandholdings.cpp llfloaterlandmark.cpp llfloatermap.cpp llfloatermediabrowser.cpp llfloatermemleak.cpp llfloatermodeluploadbase.cpp llfloatermute.cpp llfloaternamedesc.cpp llfloaternewim.cpp llfloaternotificationsconsole.cpp llfloaterobjectiminfo.cpp llfloateropenobject.cpp llfloaterparcel.cpp llfloaterpermissionsmgr.cpp llfloaterperms.cpp llfloaterpostcard.cpp llfloaterpostprocess.cpp llfloaterpreference.cpp llfloaterproperties.cpp llfloaterregiondebugconsole.cpp llfloaterregioninfo.cpp llfloaterreporter.cpp llfloaterscriptdebug.cpp llfloatersearchreplace.cpp llfloatersellland.cpp llfloatersettingsdebug.cpp llfloatersnapshot.cpp llfloaterstats.cpp llfloatertelehub.cpp llfloaterteleporthistory.cpp llfloatertest.cpp llfloatertools.cpp llfloatertopobjects.cpp llfloatertos.cpp llfloaterurldisplay.cpp llfloaterurlentry.cpp llfloatervfs.cpp llfloatervfsexplorer.cpp llfloatervoicedevicesettings.cpp llfloaterwater.cpp llfloaterwindlight.cpp llfloaterworldmap.cpp llfolderview.cpp llfolderviewitem.cpp llfollowcam.cpp llframestats.cpp llframestatview.cpp llgesturemgr.cpp llgiveinventory.cpp llgivemoney.cpp llglsandbox.cpp llgroupmgr.cpp llgroupnotify.cpp llhomelocationresponder.cpp llhoverview.cpp llhudeffect.cpp llhudeffectbeam.cpp llhudeffectlookat.cpp llhudeffectpointat.cpp llhudeffecttrail.cpp llhudicon.cpp llhudmanager.cpp llhudnametag.cpp llhudobject.cpp llhudrender.cpp llhudtext.cpp llhudview.cpp llimpanel.cpp llimview.cpp llinventoryactions.cpp llinventorybackup.cpp llinventorybridge.cpp llinventoryclipboard.cpp llinventoryfilter.cpp llinventoryfunctions.cpp llinventoryicon.cpp llinventorymodel.cpp llinventorymodelbackgroundfetch.cpp llinventoryobserver.cpp llinventorypanel.cpp lljoystickbutton.cpp lllandmarklist.cpp lllocalinventory.cpp lllocaltextureobject.cpp lllogchat.cpp llloginhandler.cpp llmainlooprepeater.cpp llmanip.cpp llmaniprotate.cpp llmanipscale.cpp llmaniptranslate.cpp llmapresponders.cpp llmarketplacenotifications.cpp llmediactrl.cpp llmediaremotectrl.cpp llmemoryview.cpp llmenucommands.cpp llmeshrepository.cpp llmimetypes.cpp llmorphview.cpp llmoveview.cpp llmutelist.cpp llnamebox.cpp llnameeditor.cpp llnamelistctrl.cpp llnetmap.cpp llnotify.cpp lloutfitobserver.cpp lloverlaybar.cpp llpanelaudioprefs.cpp llpanelaudiovolume.cpp llpanelavatar.cpp llpanelclassified.cpp llpanelcontents.cpp llpaneldebug.cpp llpaneldirbrowser.cpp llpaneldirclassified.cpp llpaneldirevents.cpp llpaneldirfind.cpp llpaneldirgroups.cpp llpaneldirland.cpp llpaneldirpeople.cpp llpaneldirplaces.cpp llpaneldisplay.cpp llpaneldirpopular.cpp llpaneleditwearable.cpp llpanelevent.cpp llpanelface.cpp llpanelgeneral.cpp llpanelgroup.cpp llpanelgroupgeneral.cpp llpanelgroupinvite.cpp llpanelgrouplandmoney.cpp llpanelgroupnotices.cpp llpanelgrouproles.cpp llpanelgroupvoting.cpp llpanelinput.cpp llpanelland.cpp llpanellandaudio.cpp llpanellandmedia.cpp llpanellandobjects.cpp llpanellandoptions.cpp llpanellogin.cpp llpanelmaininventory.cpp llpanelmediahud.cpp llpanelmorph.cpp llpanelmsgs.cpp llpanelnetwork.cpp llpanelobject.cpp llpanelobjectinventory.cpp llpanelpathfindingrebakenavmesh.cpp llpanelpermissions.cpp llpanelpick.cpp llpanelplace.cpp llpanelskins.cpp llpanelvolume.cpp llpanelweb.cpp llparcelselection.cpp llpatchvertexarray.cpp llpathfindingcharacter.cpp llpathfindingcharacterlist.cpp llpathfindinglinkset.cpp llpathfindinglinksetlist.cpp llpathfindingmanager.cpp llpathfindingnavmesh.cpp llpathfindingnavmeshstatus.cpp llpathfindingobject.cpp llpathfindingobjectlist.cpp llphysicsmotion.cpp llphysicsshapebuilderutil.cpp llpolymesh.cpp llpolymorph.cpp llprefschat.cpp llprefsim.cpp llprefsvoice.cpp llpreview.cpp llpreviewanim.cpp llpreviewgesture.cpp llpreviewlandmark.cpp llpreviewnotecard.cpp llpreviewscript.cpp llpreviewsound.cpp llpreviewtexture.cpp llproductinforequest.cpp llprogressview.cpp llregioninfomodel.cpp llregionposition.cpp llremoteparcelrequest.cpp llsavedlogins.cpp llsavedsettingsglue.cpp llscrollingpanelparam.cpp llscrollingpanelparambase.cpp llselectmgr.cpp llsky.cpp llspatialpartition.cpp llsprite.cpp llsrv.cpp llstartup.cpp llstatbar.cpp llstatgraph.cpp llstatusbar.cpp llstatview.cpp llstylemap.cpp llsurface.cpp llsurfacepatch.cpp lltexglobalcolor.cpp lltexlayer.cpp lltexlayerparams.cpp lltexturecache.cpp lltexturectrl.cpp lltexturefetch.cpp lltextureinfo.cpp lltextureinfodetails.cpp lltexturestats.cpp lltexturestatsuploader.cpp lltextureview.cpp lltool.cpp lltoolbar.cpp lltoolbrush.cpp lltoolcomp.cpp lltooldraganddrop.cpp lltoolface.cpp lltoolfocus.cpp lltoolgrab.cpp lltoolgun.cpp lltoolindividual.cpp lltoolmgr.cpp lltoolmorph.cpp lltoolobjpicker.cpp lltoolpie.cpp lltoolpipette.cpp lltoolplacer.cpp lltoolselect.cpp lltoolselectland.cpp lltoolselectrect.cpp lltoolview.cpp lltracker.cpp lluploaddialog.cpp lluploadfloaterobservers.cpp llurl.cpp llurldispatcher.cpp llurlhistory.cpp llurlsimstring.cpp llurlwhitelist.cpp lluserauth.cpp llvectorperfoptions.cpp llvelocitybar.cpp llviewchildren.cpp llviewerassetstorage.cpp llviewerassettype.cpp llvieweraudio.cpp llviewercamera.cpp llviewercontrol.cpp llviewerdisplay.cpp llviewerdisplayname.cpp llviewerfoldertype.cpp llviewergenericmessage.cpp llviewergesture.cpp llviewerinventory.cpp llviewerjoint.cpp llviewerjointattachment.cpp llviewerjointmesh.cpp llviewerjoystick.cpp llviewerkeyboard.cpp llviewerlayer.cpp llviewermedia.cpp llviewermedia_streamingaudio.cpp llviewermediaeventemitter.cpp llviewermediafocus.cpp llviewermediaobserver.cpp llviewermenu.cpp llviewermenufile.cpp llviewermessage.cpp llviewernetwork.cpp llviewerobject.cpp llviewerobjectbackup.cpp llviewerobjectlist.cpp llviewerparcelmedia.cpp llviewerparcelmediaautoplay.cpp llviewerparcelmgr.cpp llviewerparceloverlay.cpp llviewerpartsim.cpp llviewerpartsource.cpp llviewerpluginmanager.cpp llviewerregion.cpp llviewershadermgr.cpp llviewerstats.cpp llviewerstatsrecorder.cpp llviewertexteditor.cpp llviewertexture.cpp llviewertextureanim.cpp llviewertexturelist.cpp llviewerthrottle.cpp llviewervisualparam.cpp llviewerwindow.cpp llvlcomposition.cpp llvlmanager.cpp llvoavatar.cpp llvoavatardefines.cpp llvoavatarself.cpp llvocache.cpp llvoclouds.cpp llvograss.cpp llvoground.cpp llvoiceclient.cpp llvoiceremotectrl.cpp llvoicevisualizer.cpp llvoinventorylistener.cpp llvopartgroup.cpp llvosky.cpp llvosurfacepatch.cpp llvotree.cpp llvovolume.cpp llvowater.cpp llvowlsky.cpp llwatchdog.cpp llwaterparammanager.cpp llwaterparamset.cpp llwearable.cpp llwearablelist.cpp llwearabletype.cpp llweb.cpp llwind.cpp llwlanimator.cpp llwldaycycle.cpp llwlhandlers.cpp llwlparammanager.cpp llwlparamset.cpp llworld.cpp llworldmap.cpp llworldmipmap.cpp llworldmapview.cpp llxmlrpctransaction.cpp m7wlinterface.cpp NACLantispam.cpp noise.cpp pipeline.cpp qtoolalign.cpp rlvcommon.cpp rlvextensions.cpp rlvfloaterbehaviour.cpp rlvhandler.cpp rlvhelper.cpp rlvinventory.cpp rlvlocks.cpp rlvui.cpp scriptcounter.cpp sgmemstat.cpp sgversion.cpp shcommandhandler.cpp shfloatermediaticker.cpp slfloatermediafilter.cpp wlfPanel_AdvSettings.cpp ) # This gets renamed in the packaging step set(VIEWER_BINARY_NAME "secondlife-bin" CACHE STRING "The name of the viewer executable to create.") set(viewer_HEADER_FILES CMakeLists.txt ViewerInstall.cmake aoremotectrl.h ascentfloatercontactgroups.h ascentkeyword.h ascentprefschat.h ascentprefssys.h ascentprefsvan.h chatbar_as_cmdline.h emeraldboobutils.h floaterao.h floaterlocalassetbrowse.h floatervoicelicense.h hbfloatergrouptitles.h hgfloatertexteditor.h hippofloaterxml.h hippogridmanager.h hippolimits.h hippopanelgrids.h hipporestrequest.h importtracker.h jcfloaterareasearch.h lggdicdownload.h lgghunspell_wrapper.h llaccountingcostmanager.h llagent.h llagentaccess.h llagentcamera.h llagentdata.h llagentlanguage.h llagentpilot.h llagentui.h llagentwearables.h llagentwearablesfetch.h llanimstatelabels.h llappearance.h llappearancemgr.h llappviewer.h llassetconverter.h llassetuploadqueue.h llassetuploadresponders.h llattachmentsmgr.h llaudiosourcevo.h llavatarpropertiesprocessor.h llbox.h llbuildnewviewsscheduler.h llcallbacklist.h llcallingcard.h llcapabilitylistener.h llcaphttpsender.h llchatbar.h llclassifiedinfo.h llclassifiedstatsresponder.h llcloud.h llcolorscheme.h llcolorswatch.h llcommandhandler.h llcommandlineparser.h llcompilequeue.h llconfirmationmanager.h llconsole.h llcontainerview.h llcurlrequest.h llcurrencyuimanager.h llcylinder.h lldaycyclemanager.h lldebugmessagebox.h lldebugview.h lldelayedgestureerror.h lldrawable.h lldrawpool.h lldrawpoolalpha.h lldrawpoolavatar.h lldrawpoolbump.h lldrawpoolground.h lldrawpoolsimple.h lldrawpoolsky.h lldrawpoolterrain.h lldrawpooltree.h lldrawpoolwater.h lldrawpoolwlsky.h lldriverparam.h lldroptarget.h lldynamictexture.h llemote.h llenvmanager.h lleventinfo.h lleventnotifier.h lleventpoll.h llexternaleditor.h llface.h llfasttimerview.h llfeaturemanager.h llfirstuse.h llflexibleobject.h llfloaterabout.h llfloateractivespeakers.h llfloateranimpreview.h llfloaterauction.h llfloateravatarinfo.h llfloateravatarlist.h llfloateravatarpicker.h llfloateravatartextures.h llfloaterbeacons.h llfloaterblacklist.h llfloaterbuildoptions.h llfloaterbulkpermission.h llfloaterbump.h llfloaterbuy.h llfloaterbuycontents.h llfloaterbuycurrency.h llfloaterbuyland.h llfloatercamera.h llfloaterchat.h llfloaterchatterbox.h llfloaterclassified.h llfloatercolorpicker.h llfloatercustomize.h llfloaterdaycycle.h llfloaterdirectory.h llfloaterdisplayname.h llfloatereditui.h llfloaterenvsettings.h llfloaterexploreanimations.h llfloaterexploresounds.h llfloaterevent.h llfloaterfonttest.h llfloaterfriends.h llfloatergesture.h llfloatergodtools.h llfloatergroupinfo.h llfloatergroupinvite.h llfloatergroups.h llfloaterhandler.h llfloaterhtmlcurrency.h llfloaterhtmlsimple.h llfloaterhud.h llfloaterimagepreview.h llfloaterinspect.h llfloaterjoystick.h llfloaterlagmeter.h llfloaterland.h llfloaterlandholdings.h llfloaterlandmark.h llfloatermap.h llfloatermediabrowser.h llfloatermemleak.h llfloatermodeluploadbase.h llfloatermute.h llfloaternamedesc.h llfloaternewim.h llfloaternotificationsconsole.h llfloaterobjectiminfo.h llfloateropenobject.h llfloaterparcel.h llfloaterpermissionsmgr.h llfloaterperms.h llfloaterpostcard.h llfloaterpostprocess.h llfloaterpreference.h llfloaterproperties.h llfloaterregiondebugconsole.h llfloaterregioninfo.h llfloaterreporter.h llfloaterscriptdebug.h llfloatersearchreplace.h llfloatersellland.h llfloatersettingsdebug.h llfloatersnapshot.h llfloaterstats.h llfloatertelehub.h llfloaterteleporthistory.h llfloatertest.h llfloatertools.h llfloatertopobjects.h llfloatertos.h llfloaterurldisplay.h llfloaterurlentry.h llfloatervfs.h llfloatervfsexplorer.h llfloatervoicedevicesettings.h llfloaterwater.h llfloaterwindlight.h llfloaterworldmap.h llfolderview.h llfoldervieweventlistener.h llfolderviewitem.h llfollowcam.h llframestats.h llframestatview.h llgesturemgr.h llgiveinventory.h llgivemoney.h llgroupmgr.h llgroupnotify.h llhomelocationresponder.h llhoverview.h llhudeffect.h llhudeffectbeam.h llhudeffectlookat.h llhudeffectpointat.h llhudeffecttrail.h llhudicon.h llhudmanager.h llhudnametag.h llhudobject.h llhudrender.h llhudtext.h llhudview.h llimpanel.h llimview.h llinventorybackup.h llinventorybridge.h llinventoryclipboard.h llinventoryfilter.h llinventoryfunctions.h llinventoryicon.h llinventorymodel.h llinventorymodelbackgroundfetch.h llinventoryobserver.h llinventorypanel.h lljoystickbutton.h lllandmarklist.h lllightconstants.h lllocalinventory.h lllocaltextureobject.h lllogchat.h llloginhandler.h llmainlooprepeater.h llmanip.h llmaniprotate.h llmanipscale.h llmaniptranslate.h llmapresponders.h llmarketplacenotifications.h llmediactrl.h llmediaremotectrl.h llmemoryview.h llmenucommands.h llmeshrepository.h llmimetypes.h llmorphview.h llmoveview.h llmutelist.h llnamebox.h llnameeditor.h llnamelistctrl.h llnetmap.h llnotify.h lloutfitobserver.h lloverlaybar.h llpanelaudioprefs.h llpanelaudiovolume.h llpanelavatar.h llpanelclassified.h llpanelcontents.h llpaneldebug.h llpaneldirbrowser.h llpaneldirclassified.h llpaneldirevents.h llpaneldirfind.h llpaneldirgroups.h llpaneldirland.h llpaneldirpeople.h llpaneldirplaces.h llpaneldirpopular.h llpaneldisplay.h llpaneleditwearable.h llpanelevent.h llpanelface.h llpanelgeneral.h llpanelgroup.h llpanelgroupgeneral.h llpanelgroupinvite.h llpanelgrouplandmoney.h llpanelgroupnotices.h llpanelgrouproles.h llpanelgroupvoting.h llpanelinput.h llpanelland.h llpanellandaudio.h llpanellandmedia.h llpanellandobjects.h llpanellandoptions.h llpanellogin.h llpanelmaininventory.h llpanelmediahud.h llpanelmorph.h llpanelmsgs.h llpanelnetwork.h llpanelobject.h llpanelobjectinventory.h llpanelpathfindingrebakenavmesh.h llpanelpermissions.h llpanelpick.h llpanelplace.h llpanelskins.h llpanelvolume.h llpanelweb.h llparcelselection.h llpatchvertexarray.h llpathfindingcharacter.h llpathfindingcharacterlist.h llpathfindinglinkset.h llpathfindinglinksetlist.h llpathfindingmanager.h llpathfindingnavmesh.h llpathfindingnavmeshstatus.h llpathfindingobject.h llpathfindingobjectlist.h llphysicsmotion.h llphysicsshapebuilderutil.h llpolymesh.h llpolymorph.h llprefschat.h llprefsim.h llprefsvoice.h llpreview.h llpreviewanim.h llpreviewgesture.h llpreviewlandmark.h llpreviewnotecard.h llpreviewscript.h llpreviewsound.h llpreviewtexture.h llproductinforequest.h llprogressview.h llregioninfomodel.h llregionposition.h llremoteparcelrequest.h llresourcedata.h llsavedlogins.h llsavedsettingsglue.h llscrollingpanelparam.h llscrollingpanelparambase.h llselectmgr.h llsky.h llspatialpartition.h llsprite.h llsrv.h llstartup.h llstatbar.h llstatgraph.h llstatusbar.h llstatview.h llstylemap.h llsurface.h llsurfacepatch.h lltable.h lltexglobalcolor.h lltexlayer.h lltexlayerparams.h lltexturecache.h lltexturectrl.h lltexturefetch.h lltextureinfo.h lltextureinfodetails.h lltexturestats.h lltexturestatsuploader.h lltextureview.h lltool.h lltoolbar.h lltoolbrush.h lltoolcomp.h lltooldraganddrop.h lltoolface.h lltoolfocus.h lltoolgrab.h lltoolgun.h lltoolindividual.h lltoolmgr.h lltoolmorph.h lltoolobjpicker.h lltoolpie.h lltoolpipette.h lltoolplacer.h lltoolselect.h lltoolselectland.h lltoolselectrect.h lltoolview.h lltracker.h lltranslate.h lluiconstants.h lluploaddialog.h lluploadfloaterobservers.h llurl.h llurldispatcher.h llurlhistory.h llurlsimstring.h llurlwhitelist.h lluserauth.h llvectorperfoptions.h llvelocitybar.h llviewchildren.h llviewerassetstorage.h llviewerassettype.h llvieweraudio.h llviewercamera.h llviewercontrol.h llviewerdisplay.h llviewerdisplayname.h llviewerfoldertype.h llviewergenericmessage.h llviewergesture.h llviewerinventory.h llviewerjoint.h llviewerjointattachment.h llviewerjointmesh.h llviewerjoystick.h llviewerkeyboard.h llviewerlayer.h llviewermedia.h llviewermediaeventemitter.h llviewermediafocus.h llviewermediaobserver.h llviewermenu.h llviewermenufile.h llviewermessage.h llviewernetwork.h llviewerobject.h llviewerobjectbackup.h llviewerobjectlist.h llviewerparcelmedia.h llviewerparcelmediaautoplay.h llviewerparcelmgr.h llviewerparceloverlay.h llviewerpartsim.h llviewerpartsource.h llviewerpluginmanager.h llviewerprecompiledheaders.h llviewerregion.h llviewershadermgr.h llviewerstats.h llviewerstatsrecorder.h llviewertexteditor.h llviewertexture.h llviewertextureanim.h llviewertexturelist.h llviewerthrottle.h llviewervisualparam.h llviewerwindow.h llvlcomposition.h llvlmanager.h llvoavatar.h llvoavatardefines.h llvoavatarself.h llvocache.h llvoclouds.h llvograss.h llvoground.h llvoiceclient.h llvoiceremotectrl.h llvoicevisualizer.h llvoinventorylistener.h llvopartgroup.h llvosky.h llvosurfacepatch.h llvotree.h llvotreenew.h llvovolume.h llvowater.h llvowlsky.h llwatchdog.h llwaterparammanager.h llwaterparamset.h llwearable.h llwearablelist.h llwearabletype.h llweb.h llwind.h llwindebug.h llwlanimator.h llwldaycycle.h llwlhandlers.h llwlparammanager.h llwlparamset.h llworld.h llworldmap.h llworldmipmap.h llworldmapview.h llxmlrpctransaction.h m7wlinterface.h macmain.h NACLantispam.h noise.h pipeline.h qtoolalign.h randgauss.h rlvcommon.h rlvdefines.h rlvextensions.h rlvfloaterbehaviour.h rlvhandler.h rlvhelper.h rlvinventory.h rlvlocks.h rlvui.h scriptcounter.h sgmemstat.h sgversion.h shcommandhandler.h shfloatermediaticker.h slfloatermediafilter.h VertexCache.h VorbisFramework.h wlfPanel_AdvSettings.h ) source_group("CMake Rules" FILES ViewerInstall.cmake) if (DARWIN) LIST(APPEND viewer_SOURCE_FILES llappviewermacosx.cpp) find_library(AGL_LIBRARY AGL) find_library(APPKIT_LIBRARY AppKit) find_library(COCOA_LIBRARY Cocoa) find_library(IOKIT_LIBRARY IOKit) set(viewer_LIBRARIES ${COCOA_LIBRARY} ${AGL_LIBRARY} ${IOKIT_LIBRARY} ) # Add resource files to the project. set(viewer_RESOURCE_FILES ${VIEWER_BRANDING_ID}.icns macview.r gpu_table.txt Info-${VIEWER_BRANDING_NAME_CAMELCASE}.plist SecondLife.nib/ # CMake doesn't seem to support Xcode language variants well just yet English.lproj/InfoPlist.strings English.lproj/language.txt German.lproj/language.txt Japanese.lproj/language.txt Korean.lproj/language.txt ) set_source_files_properties( ${viewer_RESOURCE_FILES} PROPERTIES HEADER_FILE_ONLY TRUE #MACOSX_PACKAGE_LOCATION Resources #don't do this! this tells cmake to copy the files. ) SOURCE_GROUP("Resources" FILES ${viewer_RESOURCE_FILES}) list(APPEND viewer_SOURCE_FILES ${viewer_RESOURCE_FILES}) endif (DARWIN) if (LINUX) LIST(APPEND viewer_SOURCE_FILES llappviewerlinux.cpp) LIST(APPEND viewer_SOURCE_FILES llappviewerlinux_api_dbus.cpp) SET(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -Wl,--as-needed") set(viewer_LIBRARIES Xinerama ) endif (LINUX) if (WINDOWS) list(APPEND viewer_SOURCE_FILES llappviewerwin32.cpp llwindebug.cpp ) list(APPEND viewer_HEADER_FILES llappviewerwin32.h llwindebug.h ) # precompiled header configuration # llviewerprecompiledheaders.cpp generates # the .pch file. # All sources added to viewer_SOURCE_FILES # at this point use it. set_source_files_properties(llviewerprecompiledheaders.cpp PROPERTIES COMPILE_FLAGS "/Ycllviewerprecompiledheaders.h" ) foreach( src_file ${viewer_SOURCE_FILES} ) set_source_files_properties( ${src_file} PROPERTIES COMPILE_FLAGS "/Yullviewerprecompiledheaders.h" ) endforeach( src_file ${viewer_SOURCE_FILES} ) list(APPEND viewer_SOURCE_FILES llviewerprecompiledheaders.cpp) # Add resource files to the project. # viewerRes.rc is the only buildable file, but # the rest are all dependencies of it. set(viewer_RESOURCE_FILES ${ARTWORK_DIR}/res/arrow.cur ${ARTWORK_DIR}/res/arrowcop.cur ${ARTWORK_DIR}/res/arrowcopmulti.cur ${ARTWORK_DIR}/res/arrowdrag.cur ${ARTWORK_DIR}/res/circleandline.cur ${ARTWORK_DIR}/res/icon1.ico ${ARTWORK_DIR}/res/llarrow.cur ${ARTWORK_DIR}/res/llarrowdrag.cur ${ARTWORK_DIR}/res/llarrowdragmulti.cur ${ARTWORK_DIR}/res/llarrowlocked.cur ${ARTWORK_DIR}/res/llgrablocked.cur ${ARTWORK_DIR}/res/llno.cur ${ARTWORK_DIR}/res/llnolocked.cur ${ARTWORK_DIR}/res/lltoolcamera.cur ${ARTWORK_DIR}/res/lltoolcreate.cur ${ARTWORK_DIR}/res/lltoolfocus.cur ${ARTWORK_DIR}/res/lltoolgrab.cur ${ARTWORK_DIR}/res/lltoolland.cur ${ARTWORK_DIR}/res/lltoolpan.cur ${ARTWORK_DIR}/res/lltoolpipette.cur ${ARTWORK_DIR}/res/lltoolrotate.cur ${ARTWORK_DIR}/res/lltoolscale.cur ${ARTWORK_DIR}/res/lltooltranslate.cur ${ARTWORK_DIR}/res/lltoolzoomin.cur ${ARTWORK_DIR}/res/lltoolzoomout.cur ${ARTWORK_DIR}/res/snowglobe_icon.BMP ${ARTWORK_DIR}/res/snowglobe_icon.ico ${ARTWORK_DIR}/res/resource.h ${ARTWORK_DIR}/res/toolpickobject.cur ${ARTWORK_DIR}/res/toolpickobject2.cur ${ARTWORK_DIR}/res/toolpickobject3.cur ${ARTWORK_DIR}/res/toolpipette.cur ${ARTWORK_DIR}/res/toolbuy.cur ${ARTWORK_DIR}/res/toolopen.cur ${ARTWORK_DIR}/res/toolpay.cur ${ARTWORK_DIR}/res/toolsit.cur ) set_source_files_properties(${viewer_RESOURCE_FILES} PROPERTIES HEADER_FILE_ONLY TRUE) if(NOT ARTWORK_IN_SOURCE) # The resource compiler needs to find resources here. include_directories(${ARTWORK_DIR}/res) endif(NOT ARTWORK_IN_SOURCE) if (MSVC71 OR MSVC80 AND NOT VISTA_ICON) set(viewer_RESOURCE_FILES res/resource.h res/viewerRes_bc.rc ${viewer_RESOURCE_FILES} ) else (MSVC71 OR MSVC80 AND NOT VISTA_ICON) set(viewer_RESOURCE_FILES res/resource.h res/viewerRes.rc ${viewer_RESOURCE_FILES} ) endif (MSVC71 OR MSVC80 AND NOT VISTA_ICON) SOURCE_GROUP("Resource Files" FILES ${viewer_RESOURCE_FILES}) list(APPEND viewer_SOURCE_FILES ${viewer_RESOURCE_FILES}) find_library(DINPUT_LIBRARY dinput8 ${DIRECTX_LIBRARY_DIR}) find_library(DXGUID_LIBRARY dxguid ${DIRECTX_LIBRARY_DIR}) mark_as_advanced( DINPUT_LIBRARY DXGUID_LIBRARY ) # see EXP-1765 - theory is opengl32.lib needs to be included before gdi32.lib (windows libs) set(viewer_LIBRARIES opengl32 advapi32 comdlg32 ${DINPUT_LIBRARY} ${DXGUID_LIBRARY} gdi32 kernel32 odbc32 odbccp32 ole32 oleaut32 shell32 user32 Vfw32 winspool ) if(FMODEX) list(APPEND viewer_LIBRARIES ${FMODEX_LIBRARY}) endif(FMODEX) if(FMOD) list(APPEND viewer_LIBRARIES ${FMOD_LIBRARY}) endif(FMOD) find_library(INTEL_MEMOPS_LIBRARY NAMES ll_intel_memops PATHS optimized ${ARCH_PREBUILT_DIRS_RELEASE} debug ${ARCH_PREBUILT_DIRS_DEBUG} ) mark_as_advanced(INTEL_MEMOPS_LIBRARY) if (INTEL_MEMOPS_LIBRARY) list(APPEND viewer_LIBRARIES ${INTEL_MEMOPS_LIBRARY}) endif (INTEL_MEMOPS_LIBRARY) use_prebuilt_binary(dbghelp) endif (WINDOWS) # Add the xui files. This is handy for searching for xui elements # from within the IDE. set(viewer_XUI_FILES ${CMAKE_CURRENT_SOURCE_DIR}/skins/default/colors.xml ${CMAKE_CURRENT_SOURCE_DIR}/skins/default/colors_base.xml ) file(GLOB viewer_XUI_FILE_GLOB_LIST ${CMAKE_CURRENT_SOURCE_DIR}/skins/default/xui/en-us/*.xml) list(APPEND viewer_XUI_FILES ${viewer_XUI_FILE_GLOB_LIST}) list(SORT viewer_XUI_FILES) source_group("XUI Files" FILES ${viewer_XUI_FILES}) set_source_files_properties(${viewer_XUI_FILES} PROPERTIES HEADER_FILE_ONLY TRUE) list(APPEND viewer_SOURCE_FILES ${viewer_XUI_FILES}) set(viewer_APPSETTINGS_FILES viewer_manifest.py app_settings/anim.ini app_settings/cmd_line.xml app_settings/grass.xml app_settings/high_graphics.xml app_settings/keys.ini app_settings/keywords.ini app_settings/logcontrol.xml app_settings/low_graphics.xml app_settings/mid_graphics.xml app_settings/settings.xml app_settings/settings_ascent.xml app_settings/settings_ascent_coa.xml app_settings/settings_crash_behavior.xml app_settings/settings_files.xml app_settings/settings_per_account.xml app_settings/settings_sh.xml app_settings/settings_rlv.xml app_settings/std_bump.ini app_settings/trees.xml app_settings/ultra_graphics.xml app_settings/viewerart.xml ${CMAKE_SOURCE_DIR}/../etc/message.xml ${CMAKE_SOURCE_DIR}/../scripts/messages/message_template.msg ) source_group("App Settings" FILES ${viewer_APPSETTINGS_FILES}) set_source_files_properties(${viewer_APPSETTINGS_FILES} PROPERTIES HEADER_FILE_ONLY TRUE) list(APPEND viewer_SOURCE_FILES ${viewer_APPSETTINGS_FILES}) if(ARTWORK_EXISTS) set(viewer_CHARACTER_FILES ${ARTWORK_DIR}/character/attentions.xml ${ARTWORK_DIR}/character/attentionsN.xml ${ARTWORK_DIR}/character/avatar_lad.xml ${ARTWORK_DIR}/character/avatar_skeleton.xml ${ARTWORK_DIR}/character/genepool.xml ) source_group("Character File" FILES ${viewer_CHARACTER_FILES}) set_source_files_properties(${viewer_CHARACTER_FILES} PROPERTIES HEADER_FILE_ONLY TRUE) list(APPEND viewer_SOURCE_FILES ${viewer_CHARACTER_FILES}) endif(ARTWORK_EXISTS) if (WINDOWS) file(GLOB viewer_INSTALLER_FILES installers/windows/*.nsi) source_group("Installer Files" FILES ${viewer_INSTALLER_FILES}) set_source_files_properties(${viewer_INSTALLER_FILES} PROPERTIES HEADER_FILE_ONLY TRUE) list(APPEND viewer_SOURCE_FILES ${viewer_INSTALLER_FILES}) endif (WINDOWS) if (OPENAL) set(LLSTARTUP_COMPILE_FLAGS "${LLSTARTUP_COMPILE_FLAGS} -DLL_OPENAL") endif (OPENAL) if (FMOD OR FMODEX) if (FMODEX) set(LLSTARTUP_COMPILE_FLAGS "${LLSTARTUP_COMPILE_FLAGS} -DLL_FMODEX") endif (FMODEX) if (FMOD) set(LLSTARTUP_COMPILE_FLAGS "${LLSTARTUP_COMPILE_FLAGS} -DLL_FMOD") endif (FMOD) if (DARWIN) if(FMOD) set(fmodwrapper_SOURCE_FILES fmodwrapper.cpp) add_library(fmodwrapper SHARED ${fmodwrapper_SOURCE_FILES}) if (FMOD) set(fmodwrapper_needed_LIBRARIES ${FMOD_LIBRARY} ${CARBON_LIBRARY}) endif (FMOD) set_target_properties( fmodwrapper PROPERTIES BUILD_WITH_INSTALL_RPATH 1 INSTALL_NAME_DIR "@executable_path/../Resources" LINK_FLAGS "-unexported_symbols_list ${CMAKE_CURRENT_SOURCE_DIR}/fmod_hidden_symbols.exp" ) set(FMODWRAPPER_LIBRARY fmodwrapper) target_link_libraries(fmodwrapper ${fmodwrapper_needed_LIBRARIES}) endif(FMOD) if(FMODEX) set(FMODWRAPPER_LIBRARY ${FMODEX_LIBRARY}) endif(FMODEX) else (DARWIN) # fmodwrapper unnecessary on linux or windows, for fmod and fmodex if (FMODEX) set(FMODWRAPPER_LIBRARY ${FMODEX_LIBRARY}) endif (FMODEX) if (FMOD) set(FMODWRAPPER_LIBRARY ${FMOD_LIBRARY}) endif (FMOD) endif (DARWIN) endif (FMOD OR FMODEX) set_source_files_properties(llstartup.cpp PROPERTIES COMPILE_FLAGS "${LLSTARTUP_COMPILE_FLAGS}") list(APPEND viewer_SOURCE_FILES ${viewer_HEADER_FILES}) set_source_files_properties(${viewer_HEADER_FILES} PROPERTIES HEADER_FILE_ONLY TRUE) add_executable(${VIEWER_BINARY_NAME} WIN32 MACOSX_BUNDLE ${viewer_SOURCE_FILES} ) if (!DISABLE_TEMPLATE_CHECK) check_message_template(${VIEWER_BINARY_NAME}) endif (!DISABLE_TEMPLATE_CHECK) if (LLKDU_LIBRARY) add_dependencies(${VIEWER_BINARY_NAME} ${LLKDU_LIBRARY}) endif (LLKDU_LIBRARY) # We package by default on Linux so we can run from newview/packaged. if (LINUX) set(PACKAGE_DEFAULT ON) else (LINUX) set(PACKAGE_DEFAULT OFF) endif (LINUX) set(PACKAGE ${PACKAGE_DEFAULT} CACHE BOOL "Add a package target that builds an installer package.") if (WINDOWS) if(MSVC10) set(release_flags "/MAPRelease/${VIEWER_BINARY_NAME}.map") else() set(release_flags "/MAP:Release/${VIEWER_BINARY_NAME}.map") endif() if (FMOD) if(MANIFEST_LIBRARIES) set(MANIFEST_LIBRARIES "${MANIFEST_LIBRARIES}|${FMOD_BINARY_DIR}/fmod.dll") else(MANIFEST_LIBRARIES) set(MANIFEST_LIBRARIES "--extra_libraries=${FMOD_BINARY_DIR}/fmod.dll") endif(MANIFEST_LIBRARIES) endif (FMOD) if (FMODEX) if(MANIFEST_LIBRARIES) set(MANIFEST_LIBRARIES "${MANIFEST_LIBRARIES}|${FMODEX_BINARY_DIR}/fmodex.dll") else(MANIFEST_LIBRARIES) set(MANIFEST_LIBRARIES "--extra_libraries=${FMODEX_BINARY_DIR}/fmodex.dll") endif(MANIFEST_LIBRARIES) set(EXTRA_LINKER_FLAGS "/DELAYLOAD:fmodex.dll") endif (FMODEX) set_target_properties(${VIEWER_BINARY_NAME} PROPERTIES LINK_FLAGS "/debug /NODEFAULTLIB:LIBCMT /SUBSYSTEM:WINDOWS ${GOOGLE_PERFTOOLS_LINKER_FLAGS} ${EXTRA_LINKER_FLAGS}" LINK_FLAGS_DEBUG "/NODEFAULTLIB:\"LIBCMT;LIBCMTD;MSVCRT\"" LINK_FLAGS_RELEASE ${release_flags} ) # sets the 'working directory' for debugging from visual studio. if (NOT UNATTENDED) add_custom_command( TARGET ${VIEWER_BINARY_NAME} PRE_BUILD COMMAND ${CMAKE_SOURCE_DIR}/tools/vstool/vstool.exe ARGS --solution ${CMAKE_BINARY_DIR}/${CMAKE_PROJECT_NAME}.sln --workingdir ${VIEWER_BINARY_NAME} "${CMAKE_CURRENT_SOURCE_DIR}" COMMENT "Setting the ${VIEWER_BINARY_NAME} working directory for debugging." ) endif (NOT UNATTENDED) add_custom_command( TARGET ${VIEWER_BINARY_NAME} PRE_BUILD COMMAND ${CMAKE_COMMAND} ARGS -E copy_if_different ${CMAKE_CURRENT_SOURCE_DIR}/../../scripts/messages/message_template.msg ${CMAKE_CURRENT_BINARY_DIR}/${CMAKE_CFG_INTDIR}/app_settings/message_template.msg COMMENT "Copying message_template.msg to the runtime folder." ) add_custom_command( TARGET ${VIEWER_BINARY_NAME} PRE_BUILD COMMAND ${CMAKE_COMMAND} ARGS -E copy_if_different ${CMAKE_CURRENT_SOURCE_DIR}/../../etc/message.xml ${CMAKE_CURRENT_BINARY_DIR}/${CMAKE_CFG_INTDIR}/app_settings/message.xml COMMENT "Copying message.xml to the runtime folder." ) add_dependencies(${VIEWER_BINARY_NAME} copy_win_libs) if (EXISTS ${CMAKE_SOURCE_DIR}/copy_win_scripts) add_dependencies(${VIEWER_BINARY_NAME} copy_win_scripts) endif (EXISTS ${CMAKE_SOURCE_DIR}/copy_win_scripts) add_custom_command( OUTPUT ${CMAKE_CFG_INTDIR}/touched.bat COMMAND ${PYTHON_EXECUTABLE} ARGS ${CMAKE_CURRENT_SOURCE_DIR}/viewer_manifest.py --artwork=${ARTWORK_DIR} --branding_id=${VIEWER_BRANDING_ID} --build=${CMAKE_CURRENT_BINARY_DIR} --channel=${VIEWER_CHANNEL} --configuration=${CMAKE_CFG_INTDIR} --dest=${CMAKE_CURRENT_BINARY_DIR}/${CMAKE_CFG_INTDIR} --grid=${GRID} --login_channel=${VIEWER_LOGIN_CHANNEL} --source=${CMAKE_CURRENT_SOURCE_DIR} --touch=${CMAKE_CURRENT_BINARY_DIR}/${CMAKE_CFG_INTDIR}/touched.bat ${MANIFEST_LIBRARIES} DEPENDS ${VIEWER_BINARY_NAME} ${CMAKE_CURRENT_SOURCE_DIR}/viewer_manifest.py ) add_dependencies(${VIEWER_BINARY_NAME} SLPlugin media_plugin_quicktime media_plugin_webkit basic_plugin_filepicker) if (PACKAGE) add_custom_target(package ALL DEPENDS ${CMAKE_CFG_INTDIR}/touched.bat) add_dependencies(package windows-updater windows-crash-logger) endif (PACKAGE) endif (WINDOWS) # *NOTE - this list is very sensitive to ordering, test carefully on all # platforms if you change the releative order of the entries here. # In particular, cmake 2.6.4 (when buidling with linux/makefile generators) # appears to sometimes de-duplicate redundantly listed dependencies improperly. # To work around this, higher level modules should be listed before the modules # that they depend upon. -brad target_link_libraries(${VIEWER_BINARY_NAME} ${GOOGLE_PERFTOOLS_LIBRARIES} ${LLAUDIO_LIBRARIES} ${LLAUDIO_VORBIS_LIBRARIES} ${LLCHARACTER_LIBRARIES} ${LLIMAGE_LIBRARIES} ${LLIMAGEJ2COJ_LIBRARIES} ${LLINVENTORY_LIBRARIES} ${LLMESSAGE_LIBRARIES} ${LLPLUGIN_LIBRARIES} ${AISTATEMACHINE_LIBRARIES} ${LLPRIMITIVE_LIBRARIES} ${LLRENDER_LIBRARIES} ${FREETYPE_LIBRARIES} ${LLUI_LIBRARIES} ${LLVFS_LIBRARIES} ${LLWINDOW_LIBRARIES} ${LLXML_LIBRARIES} # ${LSCRIPT_LIBRARIES} ${LLMATH_LIBRARIES} ${LLCOMMON_LIBRARIES} ${NDOF_LIBRARY} ${viewer_LIBRARIES} ${Boost_FILESYSTEM_LIBRARY} ${Boost_PROGRAM_OPTIONS_LIBRARY} ${Boost_REGEX_LIBRARY} ${Boost_SYSTEM_LIBRARY} ${DBUSGLIB_LIBRARIES} ${OPENGL_LIBRARIES} ${FMODWRAPPER_LIBRARY} # must come after LLAudio ${APRUTIL_LIBRARIES} ${OPENGL_LIBRARIES} ${JSONCPP_LIBRARIES} ${SDL_LIBRARY} ${SMARTHEAP_LIBRARY} ${UI_LIBRARIES} ${WINDOWS_LIBRARIES} ${XMLRPCEPI_LIBRARIES} ${ELFIO_LIBRARIES} ${HUNSPELL_LIBRARY} ) if (LINUX) add_custom_command( OUTPUT secondlife-stripped COMMAND strip ARGS --strip-debug -o secondlife-stripped ${VIEWER_BINARY_NAME} DEPENDS ${VIEWER_BINARY_NAME} ) set(product ${VIEWER_BRANDING_NAME_CAMELCASE}-${ARCH}-${viewer_VERSION}) if (FMODEX) if(MANIFEST_LIBRARIES) set(MANIFEST_LIBRARIES "${MANIFEST_LIBRARIES}|${FMODEX_LIBRARY}") else(MANIFEST_LIBRARIES) set(MANIFEST_LIBRARIES "--extra_libraries=${FMODEX_LIBRARY}") endif(MANIFEST_LIBRARIES) endif (FMODEX) add_custom_command( OUTPUT ${product}.tar.bz2 COMMAND ${PYTHON_EXECUTABLE} ARGS ${CMAKE_CURRENT_SOURCE_DIR}/viewer_manifest.py --arch=${ARCH} --artwork=${ARTWORK_DIR} --branding_id=${VIEWER_BRANDING_ID} --build=${CMAKE_CURRENT_BINARY_DIR} --buildtype=${CMAKE_BUILD_TYPE} --channel=${VIEWER_CHANNEL} --dest=${CMAKE_CURRENT_BINARY_DIR}/packaged --grid=${GRID} --installer_name=${product} --login_channel=${VIEWER_LOGIN_CHANNEL} --source=${CMAKE_CURRENT_SOURCE_DIR} --standalone=${STANDALONE} --touch=${CMAKE_CURRENT_BINARY_DIR}/${CMAKE_CFG_INTDIR}/.${product}.touched ${MANIFEST_LIBRARIES} DEPENDS secondlife-stripped ${CMAKE_CURRENT_SOURCE_DIR}/viewer_manifest.py ) add_dependencies(${VIEWER_BINARY_NAME} SLPlugin media_plugin_gstreamer010 media_plugin_webkit basic_plugin_filepicker) if (PACKAGE) add_custom_target(package ALL DEPENDS ${product}.tar.bz2) add_dependencies(package linux-crash-logger-strip-target) endif (PACKAGE) endif (LINUX) if (DARWIN) set(product ${VIEWER_BRANDING_NAME}) set_target_properties( ${VIEWER_BINARY_NAME} PROPERTIES OUTPUT_NAME "${product}" MACOSX_BUNDLE_INFO_STRING "A stable third-party Second Life viewer." MACOSX_BUNDLE_ICON_FILE "${VIEWER_BRANDING_ID}.icns" MACOSX_BUNDLE_GUI_IDENTIFIER "${VIEWER_BRANDING_NAME}" MACOSX_BUNDLE_LONG_VERSION_STRING "${viewer_VERSION}" MACOSX_BUNDLE_BUNDLE_NAME "${VIEWER_BRANDING_NAME}" MACOSX_BUNDLE_SHORT_VERSION_STRING "${viewer_VERSION}" MACOSX_BUNDLE_BUNDLE_VERSION "${viewer_VERSION}" MACOSX_BUNDLE_COPYRIGHT "Copyright 2010 Balseraph Software Group" ) add_custom_command( TARGET ${VIEWER_BINARY_NAME} POST_BUILD COMMAND ${PYTHON_EXECUTABLE} ARGS ${CMAKE_CURRENT_SOURCE_DIR}/viewer_manifest.py --actions=copy --artwork=${ARTWORK_DIR} --branding_id=${VIEWER_BRANDING_ID} --build=${CMAKE_CURRENT_BINARY_DIR} --buildtype=${CMAKE_BUILD_TYPE} --configuration=${CMAKE_CFG_INTDIR} --dest=${CMAKE_CURRENT_BINARY_DIR}/${CMAKE_CFG_INTDIR}/${product}.app --grid=${GRID} --source=${CMAKE_CURRENT_SOURCE_DIR} DEPENDS ${VIEWER_BINARY_NAME} ${CMAKE_CURRENT_SOURCE_DIR}/viewer_manifest.py ) add_dependencies(${VIEWER_BINARY_NAME} SLPlugin media_plugin_quicktime media_plugin_webkit basic_plugin_filepicker) if (FMODEX) add_custom_command(OUTPUT "${FMODEX_LIBRARY}" COMMAND cp "${FMODEX_ORIG_LIBRARY}" "${FMODEX_LIBRARY}" COMMAND install_name_tool -id "@executable_path/../Resources/libfmodex.dylib" ${FMODEX_LIBRARY} DEPENDS "${FMODEX_ORIG_LIBRARY}") add_custom_target(fmodex_modified_library DEPENDS "${FMODEX_LIBRARY}") add_dependencies(${VIEWER_BINARY_NAME} fmodex_modified_library) endif (FMODEX) if (PACKAGE) add_custom_target(package ALL DEPENDS ${VIEWER_BINARY_NAME}) add_dependencies(package mac-updater mac-crash-logger) add_custom_command( TARGET package POST_BUILD COMMAND ${PYTHON_EXECUTABLE} ARGS ${CMAKE_CURRENT_SOURCE_DIR}/viewer_manifest.py --artwork=${ARTWORK_DIR} --branding_id=${VIEWER_BRANDING_ID} --build=${CMAKE_CURRENT_BINARY_DIR} --buildtype=${CMAKE_BUILD_TYPE} --channel=${VIEWER_CHANNEL} --configuration=${CMAKE_CFG_INTDIR} --dest=${CMAKE_CURRENT_BINARY_DIR}/${CMAKE_CFG_INTDIR}/${product}.app --grid=${GRID} --login_channel=${VIEWER_LOGIN_CHANNEL} --source=${CMAKE_CURRENT_SOURCE_DIR} --touch=${CMAKE_CURRENT_BINARY_DIR}/${CMAKE_CFG_INTDIR}/.${product}.touched DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/viewer_manifest.py ) # Viewer-Development doesn't have this duplicate of the above command, here.. # this may be a botched merge, but Mac seems to be picky, so I'm leaving it ~Liru add_custom_command( TARGET package POST_BUILD COMMAND ${PYTHON_EXECUTABLE} ARGS ${CMAKE_CURRENT_SOURCE_DIR}/viewer_manifest.py --artwork=${ARTWORK_DIR} --branding_id=${VIEWER_BRANDING_ID} --build=${CMAKE_CURRENT_BINARY_DIR} --buildtype=${CMAKE_BUILD_TYPE} --channel=${VIEWER_CHANNEL} --configuration=${CMAKE_CFG_INTDIR} --dest=${CMAKE_CURRENT_BINARY_DIR}/${CMAKE_CFG_INTDIR}/${product}.app --grid=${GRID} --login_channel=${VIEWER_LOGIN_CHANNEL} --source=${CMAKE_CURRENT_SOURCE_DIR} --touch=${CMAKE_CURRENT_BINARY_DIR}/${CMAKE_CFG_INTDIR}/.${product}.touched DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/viewer_manifest.py ) endif (PACKAGE) endif (DARWIN) if (INSTALL) include(${CMAKE_CURRENT_SOURCE_DIR}/ViewerInstall.cmake) endif (INSTALL) # Add tests if (LL_TESTS) ADD_VIEWER_BUILD_TEST(llagentaccess viewer) #ADD_VIEWER_BUILD_TEST(llworldmap viewer) #ADD_VIEWER_BUILD_TEST(llworldmipmap viewer) ADD_VIEWER_BUILD_TEST(lltextureinfo viewer) ADD_VIEWER_BUILD_TEST(lltextureinfodetails viewer) ADD_VIEWER_BUILD_TEST(lltexturestatsuploader viewer) #ADD_VIEWER_COMM_BUILD_TEST(lltranslate viewer "") endif (LL_TESTS) # Don't do these for DARWIN or LINUX here -- they're taken care of by viewer_manifest.py if (WINDOWS) get_target_property(BUILT_LLCOMMON llcommon LOCATION) set_target_properties(llcommon PROPERTIES LINK_FLAGS "/debug /NODEFAULTLIB:LIBCMT" LINK_FLAGS_DEBUG "/NODEFAULTLIB:\"LIBCMT;LIBCMTD;MSVCRT\"" ) add_custom_command( TARGET ${VIEWER_BINARY_NAME} POST_BUILD COMMAND ${CMAKE_COMMAND} ARGS -E copy_if_different ${BUILT_LLCOMMON} ${CMAKE_CURRENT_BINARY_DIR}/${CMAKE_CFG_INTDIR} COMMENT "Copying llcommon.dll to the runtime folder." ) get_target_property(BUILT_SLPLUGIN SLPlugin LOCATION) add_custom_command( TARGET ${VIEWER_BINARY_NAME} POST_BUILD COMMAND ${CMAKE_COMMAND} ARGS -E copy_if_different ${BUILT_SLPLUGIN} ${CMAKE_CURRENT_BINARY_DIR}/${CMAKE_CFG_INTDIR} COMMENT "Copying SLPlugin executable to the runtime folder." ) get_target_property(BUILT_WEBKIT_PLUGIN media_plugin_webkit LOCATION) add_custom_command( TARGET ${VIEWER_BINARY_NAME} POST_BUILD COMMAND ${CMAKE_COMMAND} ARGS -E copy_if_different ${BUILT_WEBKIT_PLUGIN} ${CMAKE_CURRENT_BINARY_DIR}/${CMAKE_CFG_INTDIR}/llplugin COMMENT "Copying WebKit Plugin to the runtime folder." ) get_target_property(BUILT_QUICKTIME_PLUGIN media_plugin_quicktime LOCATION) add_custom_command( TARGET ${VIEWER_BINARY_NAME} POST_BUILD COMMAND ${CMAKE_COMMAND} ARGS -E copy_if_different ${BUILT_QUICKTIME_PLUGIN} ${CMAKE_CURRENT_BINARY_DIR}/${CMAKE_CFG_INTDIR}/llplugin COMMENT "Copying Quicktime Plugin to the runtime folder." ) get_target_property(BUILT_FILEPICKER_PLUGIN basic_plugin_filepicker LOCATION) add_custom_command( TARGET ${VIEWER_BINARY_NAME} POST_BUILD COMMAND ${CMAKE_COMMAND} ARGS -E copy_if_different ${BUILT_FILEPICKER_PLUGIN} ${CMAKE_CURRENT_BINARY_DIR}/${CMAKE_CFG_INTDIR}/llplugin COMMENT "Copying filepicker Plugin to the runtime folder." ) # Copying the mime_types.xml file to app_settings set(mime_types_source "${CMAKE_SOURCE_DIR}/newview/skins/default/xui/en-us") set(mime_types_dest "${CMAKE_CURRENT_BINARY_DIR}/${CMAKE_CFG_INTDIR}/app_settings") add_custom_command( TARGET ${VIEWER_BINARY_NAME} POST_BUILD COMMAND ${CMAKE_COMMAND} ARGS -E copy_if_different ${mime_types_source}/mime_types_windows.xml ${mime_types_dest}/mime_types.xml COMMENT "Copying mime_types_windows.xml to mime_types.xml." ) endif (WINDOWS) if (DARWIN) # Don't do this here -- it's taken care of by viewer_manifest.py # add_custom_command(TARGET ${VIEWER_BINARY_NAME} POST_BUILD # COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_SOURCE_DIR}/../libraries/universal-darwin/lib/release/libllqtwebkit.dylib ${CMAKE_CURRENT_BINARY_DIR}/${CMAKE_CFG_INTDIR}/llplugin/ # DEPENDS ${CMAKE_SOURCE_DIR}/../libraries/universal-darwin/lib/release/libllqtwebkit.dylib # ) endif (DARWIN)