diff options
Diffstat (limited to 'indra/newview/CMakeLists.txt')
-rw-r--r-- | indra/newview/CMakeLists.txt | 3555 |
1 files changed, 1778 insertions, 1777 deletions
diff --git a/indra/newview/CMakeLists.txt b/indra/newview/CMakeLists.txt index 644ebfa3f4..e138b431c5 100644 --- a/indra/newview/CMakeLists.txt +++ b/indra/newview/CMakeLists.txt @@ -1,1777 +1,1778 @@ -# -*- cmake -*-
-
-project(viewer)
-
-include(00-Common)
-include(Boost)
-include(BuildVersion)
-include(DBusGlib)
-include(DirectX)
-include(ELFIO)
-include(FMOD)
-include(OPENAL)
-include(FindOpenGL)
-include(LLAudio)
-include(LLCharacter)
-include(LLCommon)
-include(LLImage)
-include(LLImageJ2COJ)
-include(LLInventory)
-include(LLMath)
-include(LLMessage)
-include(LLPlugin)
-include(LLPrimitive)
-include(LLRender)
-include(LLUI)
-include(LLVFS)
-include(LLWindow)
-include(LLXML)
-include(LLXUIXML)
-include(LScript)
-include(Linking)
-include(NDOF)
-include(GooglePerfTools)
-include(TemplateCheck)
-include(UI)
-include(UnixInstall)
-include(LLKDU)
-include(ViewerMiscLibs)
-include(LLLogin)
-include(CMakeCopyIfDifferent)
-
-include_directories(
- ${DBUSGLIB_INCLUDE_DIRS}
- ${ELFIO_INCLUDE_DIR}
- ${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}
- ${LLXUIXML_INCLUDE_DIRS}
- ${LSCRIPT_INCLUDE_DIRS}
- ${LSCRIPT_INCLUDE_DIRS}/lscript_compile
- ${LLLOGIN_INCLUDE_DIRS}
- )
-
-set(viewer_SOURCE_FILES
- llaccordionctrl.cpp
- llaccordionctrltab.cpp
- llagent.cpp
- llagentaccess.cpp
- llagentdata.cpp
- llagentlanguage.cpp
- llagentlistener.cpp
- llagentpicksinfo.cpp
- llagentpilot.cpp
- llagentui.cpp
- llagentwearables.cpp
- llanimstatelabels.cpp
- llappearancemgr.cpp
- llappviewer.cpp
- llappviewerlistener.cpp
- llassetuploadqueue.cpp
- llassetuploadresponders.cpp
- llaudiosourcevo.cpp
- llavataractions.cpp
- llavatariconctrl.cpp
- llavatarlist.cpp
- llavatarlistitem.cpp
- llavatarpropertiesprocessor.cpp
- llbottomtray.cpp
- llbox.cpp
- llbreadcrumbview.cpp
- llcallbacklist.cpp
- llcallingcard.cpp
- llcapabilitylistener.cpp
- llcaphttpsender.cpp
- llchannelmanager.cpp
- llchatbar.cpp
- llchathistory.cpp
- llchatitemscontainerctrl.cpp
- llchatmsgbox.cpp
- llchiclet.cpp
- llclassifiedinfo.cpp
- llclassifiedstatsresponder.cpp
- llcloud.cpp
- llcolorswatch.cpp
- llcommandhandler.cpp
- llcommandlineparser.cpp
- llcompilequeue.cpp
- llconfirmationmanager.cpp
- llcurrencyuimanager.cpp
- llcylinder.cpp
- lldateutil.cpp
- lldebugmessagebox.cpp
- lldebugview.cpp
- lldelayedgestureerror.cpp
- lldirpicker.cpp
- lldndbutton.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
- lldynamictexture.cpp
- llemote.cpp
- lleventinfo.cpp
- lleventnotifier.cpp
- lleventpoll.cpp
- llexpandabletextbox.cpp
- llface.cpp
- llfasttimerview.cpp
- llfavoritesbar.cpp
- llfeaturemanager.cpp
- llfilepicker.cpp
- llfirstuse.cpp
- llflexibleobject.cpp
- llfloaterabout.cpp
- llfloateractivespeakers.cpp
- llfloateranimpreview.cpp
- llfloaterauction.cpp
- llfloateravatarpicker.cpp
- llfloateravatartextures.cpp
- llfloaterbeacons.cpp
- llfloaterbuildoptions.cpp
- llfloaterbulkpermission.cpp
- llfloaterbump.cpp
- llfloaterbuy.cpp
- llfloaterbuycontents.cpp
- llfloaterbuycurrency.cpp
- llfloaterbuyland.cpp
- llfloatercall.cpp
- llfloatercamera.cpp
- llfloaterchat.cpp
- llfloaterchatterbox.cpp
- llfloatercolorpicker.cpp
- llfloatercustomize.cpp
- llfloaterdaycycle.cpp
- llfloaterenvsettings.cpp
- llfloaterfonttest.cpp
- llfloaterfriends.cpp
- llfloatergesture.cpp
- llfloatergodtools.cpp
- llfloatergroupinvite.cpp
- llfloatergroups.cpp
- llfloaterhandler.cpp
- llfloaterhardwaresettings.cpp
- llfloaterhelpbrowser.cpp
- llfloaterhud.cpp
- llfloaterimagepreview.cpp
- llfloaterinspect.cpp
- llfloaterinventory.cpp
- llfloaterjoystick.cpp
- llfloaterlagmeter.cpp
- llfloaterland.cpp
- llfloaterlandholdings.cpp
- llfloatermap.cpp
- llfloatermediabrowser.cpp
- llfloatermediasettings.cpp
- llfloatermemleak.cpp
- llfloaternamedesc.cpp
- llfloaternotificationsconsole.cpp
- llfloateropenobject.cpp
- llfloaterparcel.cpp
- llfloaterpay.cpp
- llfloaterperms.cpp
- llfloaterpostcard.cpp
- llfloaterpostprocess.cpp
- llfloaterpreference.cpp
- llfloaterproperties.cpp
- llfloaterregioninfo.cpp
- llfloaterreporter.cpp
- llfloaterscriptdebug.cpp
- llfloatersearch.cpp
- llfloatersellland.cpp
- llfloatersettingsdebug.cpp
- llfloatersnapshot.cpp
- llfloatertelehub.cpp
- llfloatertestinspectors.cpp
- llfloatertestlistview.cpp
- llfloatertools.cpp
- llfloatertopobjects.cpp
- llfloatertos.cpp
- llfloateruipreview.cpp
- llfloaterurldisplay.cpp
- llfloaterurlentry.cpp
- llfloatervoicedevicesettings.cpp
- llfloaterwater.cpp
- llfloaterwhitelistentry.cpp
- llfloaterwindlight.cpp
- llfloaterworldmap.cpp
- llfoldertype.cpp
- llfolderview.cpp
- llfolderviewitem.cpp
- llfollowcam.cpp
- llfriendcard.cpp
- llgesturemgr.cpp
- llglsandbox.cpp
- llgroupactions.cpp
- llgrouplist.cpp
- llgroupmgr.cpp
- llgroupnotify.cpp
- llhomelocationresponder.cpp
- llhudeffect.cpp
- llhudeffectbeam.cpp
- llhudeffectlookat.cpp
- llhudeffectpointat.cpp
- llhudeffecttrail.cpp
- llhudicon.cpp
- llhudmanager.cpp
- llhudobject.cpp
- llhudrender.cpp
- llhudtext.cpp
- llhudview.cpp
- llimcontrolpanel.cpp
- llimfloater.cpp
- llimhandler.cpp
- llimpanel.cpp
- llimview.cpp
- llinspect.cpp
- llinspectavatar.cpp
- llinspectgroup.cpp
- llinspectobject.cpp
- llinventorybridge.cpp
- llinventoryclipboard.cpp
- llinventoryfilter.cpp
- llinventoryfunctions.cpp
- llinventorymodel.cpp
- llinventorypanel.cpp
- llinventorysubtreepanel.cpp
- lljoystickbutton.cpp
- lllandmarkactions.cpp
- lllandmarklist.cpp
- lllistbrowser.cpp
- lllistview.cpp
- lllocaltextureobject.cpp
- lllocationhistory.cpp
- lllocationinputctrl.cpp
- lllogchat.cpp
- llloginhandler.cpp
- lllogininstance.cpp
- llmanip.cpp
- llmaniprotate.cpp
- llmanipscale.cpp
- llmaniptranslate.cpp
- llmapresponders.cpp
- llmediactrl.cpp
- llmediadataclient.cpp
- llmediaremotectrl.cpp
- llmemoryview.cpp
- llmenucommands.cpp
- llmetricperformancetester.cpp
- llmimetypes.cpp
- llmorphview.cpp
- llmoveview.cpp
- llmutelist.cpp
- llnamebox.cpp
- llnameeditor.cpp
- llnamelistctrl.cpp
- llnavigationbar.cpp
- llnearbychat.cpp
- llnearbychatbar.cpp
- llnearbychathandler.cpp
- llnetmap.cpp
- llnotificationalerthandler.cpp
- llnotificationgrouphandler.cpp
- llnotificationmanager.cpp
- llnotificationscripthandler.cpp
- llnotificationtiphandler.cpp
- llnotify.cpp
- lloutputmonitorctrl.cpp
- lloverlaybar.cpp
- llpanelappearance.cpp
- llpanelappearancetab.cpp
- llpanelavatar.cpp
- llpanelavatarrow.cpp
- llpanelavatartag.cpp
- llpanelblockedlist.cpp
- llpanelclassified.cpp
- llpanelcontents.cpp
- llpaneleditwearable.cpp
- llpanelevent.cpp
- llpanelface.cpp
- llpanelgroup.cpp
- llpanelgroupgeneral.cpp
- llpanelgroupinvite.cpp
- llpanelgrouplandmoney.cpp
- llpanelgroupnotices.cpp
- llpanelgrouproles.cpp
- llpanelimcontrolpanel.cpp
- llpanelland.cpp
- llpanellandaudio.cpp
- llpanellandmarks.cpp
- llpanellandmedia.cpp
- llpanellogin.cpp
- llpanellookinfo.cpp
- llpanellooks.cpp
- llpanelmaininventory.cpp
- llpanelmedia.cpp
- llpanelmediasettingsgeneral.cpp
- llpanelmediasettingspermissions.cpp
- llpanelmediasettingssecurity.cpp
- llpanelmeprofile.cpp
- llpanelobject.cpp
- llpanelobjectinventory.cpp
- llpanelpeople.cpp
- llpanelpeoplemenus.cpp
- llpanelpermissions.cpp
- llpanelpick.cpp
- llpanelpicks.cpp
- llpanelplace.cpp
- llpanelplaceinfo.cpp
- llpanelplaces.cpp
- llpanelplacestab.cpp
- llpanelprimmediacontrols.cpp
- llpanelprofile.cpp
- llpanelprofileview.cpp
- llpanelshower.cpp
- llpanelteleporthistory.cpp
- llpanelvolume.cpp
- llparcelselection.cpp
- llparticipantlist.cpp
- llpatchvertexarray.cpp
- llplacesinventorybridge.cpp
- llpolymesh.cpp
- llpolymorph.cpp
- llpreview.cpp
- llpreviewanim.cpp
- llpreviewgesture.cpp
- llpreviewnotecard.cpp
- llpreviewscript.cpp
- llpreviewsound.cpp
- llpreviewtexture.cpp
- llproductinforequest.cpp
- llprogressview.cpp
- llrecentpeople.cpp
- llregionposition.cpp
- llremoteparcelrequest.cpp
- llsavedsettingsglue.cpp
- llscreenchannel.cpp
- llscrollingpanelparam.cpp
- llsearchcombobox.cpp
- llsearchhistory.cpp
- llselectmgr.cpp
- llsidepanelinventory.cpp
- llsidepanelobjectinfo.cpp
- llsidetray.cpp
- llsidetraypanelcontainer.cpp
- llsky.cpp
- llslurl.cpp
- llspatialpartition.cpp
- llspeakers.cpp
- llsplitbutton.cpp
- llsprite.cpp
- llstartup.cpp
- llstatusbar.cpp
- llstylemap.cpp
- llsurface.cpp
- llsurfacepatch.cpp
- llsyswellitem.cpp
- llsyswellwindow.cpp
- llteleporthistory.cpp
- llteleporthistorystorage.cpp
- lltexglobalcolor.cpp
- lltexlayer.cpp
- lltexlayerparams.cpp
- lltextureatlas.cpp
- lltextureatlasmanager.cpp
- lltexturecache.cpp
- lltexturectrl.cpp
- lltexturefetch.cpp
- lltextureview.cpp
- lltoast.cpp
- lltoastalertpanel.cpp
- lltoastgroupnotifypanel.cpp
- lltoastimpanel.cpp
- lltoastnotifypanel.cpp
- lltoastpanel.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
- lltracker.cpp
- lltransientdockablefloater.cpp
- lltransientfloatermgr.cpp
- lluilistener.cpp
- lluploaddialog.cpp
- llurl.cpp
- llurldispatcher.cpp
- llurlhistory.cpp
- llurllineeditorctrl.cpp
- llurlsimstring.cpp
- llurlwhitelist.cpp
- llvectorperfoptions.cpp
- llviewchildren.cpp
- llviewerassetstorage.cpp
- llvieweraudio.cpp
- llviewercamera.cpp
- llviewercontrol.cpp
- llviewercontrollistener.cpp
- llviewerdisplay.cpp
- llviewerfloaterreg.cpp
- llviewergenericmessage.cpp
- llviewergesture.cpp
- llviewerhelp.cpp
- llviewerhelputil.cpp
- llviewerinventory.cpp
- llviewerjoint.cpp
- llviewerjointattachment.cpp
- llviewerjointmesh.cpp
- llviewerjointmesh_sse.cpp
- llviewerjointmesh_sse2.cpp
- llviewerjointmesh_vec.cpp
- llviewerjoystick.cpp
- llviewerkeyboard.cpp
- llviewerlayer.cpp
- llviewermedia.cpp
- llviewermedia_streamingaudio.cpp
- llviewermediafocus.cpp
- llviewermenu.cpp
- llviewermenufile.cpp
- llviewermessage.cpp
- llviewernetwork.cpp
- llviewerobject.cpp
- llviewerobjectlist.cpp
- llviewerparcelmedia.cpp
- llviewerparcelmediaautoplay.cpp
- llviewerparcelmgr.cpp
- llviewerparceloverlay.cpp
- llviewerpartsim.cpp
- llviewerpartsource.cpp
- llviewerregion.cpp
- llviewershadermgr.cpp
- llviewerstats.cpp
- llviewertexteditor.cpp
- llviewertexture.cpp
- llviewertextureanim.cpp
- llviewertexturelist.cpp
- llviewerthrottle.cpp
- llviewervisualparam.cpp
- llviewerwindow.cpp
- llviewerwindowlistener.cpp
- llvlcomposition.cpp
- llvlmanager.cpp
- llvoavatar.cpp
- llvoavatardefines.cpp
- llvoavatarself.cpp
- llvocache.cpp
- llvoclouds.cpp
- llvograss.cpp
- llvoground.cpp
- llvoicechannel.cpp
- llvoiceclient.cpp
- llvoicecontrolpanel.cpp
- llvoiceremotectrl.cpp
- llvoicevisualizer.cpp
- llvoinventorylistener.cpp
- llvopartgroup.cpp
- llvosky.cpp
- llvosurfacepatch.cpp
- llvotextbubble.cpp
- llvotree.cpp
- llvovolume.cpp
- llvowater.cpp
- llvowlsky.cpp
- llwatchdog.cpp
- llwaterparammanager.cpp
- llwaterparamset.cpp
- llwearable.cpp
- llwearabledictionary.cpp
- llwearablelist.cpp
- llweb.cpp
- llwind.cpp
- llwlanimator.cpp
- llwldaycycle.cpp
- llwlparammanager.cpp
- llwlparamset.cpp
- llworld.cpp
- llworldmap.cpp
- llworldmapview.cpp
- llxmlrpclistener.cpp
- llxmlrpctransaction.cpp
- noise.cpp
- pipeline.cpp
- )
-
-set(VIEWER_BINARY_NAME "secondlife-bin" CACHE STRING
- "The name of the viewer executable to create.")
-
-if (LINUX)
- # We can't set these flags for Darwin, because they get passed to
- # the PPC compiler. Ugh.
-
- set_source_files_properties(
- llviewerjointmesh_sse.cpp
- PROPERTIES COMPILE_FLAGS "-msse -mfpmath=sse"
- )
- set_source_files_properties(
- llviewerjointmesh_sse2.cpp
- PROPERTIES COMPILE_FLAGS "-msse2 -mfpmath=sse"
- )
-endif (LINUX)
-
-set(viewer_HEADER_FILES
- CMakeLists.txt
- ViewerInstall.cmake
- llaccordionctrl.h
- llaccordionctrltab.h
- llagent.h
- llagentaccess.h
- llagentdata.h
- llagentlanguage.h
- llagentlistener.h
- llagentpicksinfo.h
- llagentpilot.h
- llagentui.h
- llagentwearables.h
- llanimstatelabels.h
- llappearance.h
- llappearancemgr.h
- llappviewer.h
- llappviewerlistener.h
- llassetuploadqueue.h
- llassetuploadresponders.h
- llaudiosourcevo.h
- llavataractions.h
- llavatariconctrl.h
- llavatarlist.h
- llavatarlistitem.h
- llavatarpropertiesprocessor.h
- llbottomtray.h
- llbox.h
- llbreadcrumbview.h
- llcallbacklist.h
- llcallingcard.h
- llcapabilitylistener.h
- llcapabilityprovider.h
- llcaphttpsender.h
- llchannelmanager.h
- llchatbar.h
- llchathistory.h
- llchatitemscontainerctrl.h
- llchatmsgbox.h
- llchiclet.h
- llclassifiedinfo.h
- llclassifiedstatsresponder.h
- llcloud.h
- llcolorswatch.h
- llcommandhandler.h
- llcommandlineparser.h
- llcompilequeue.h
- llconfirmationmanager.h
- llcurrencyuimanager.h
- llcylinder.h
- lldateutil.h
- lldebugmessagebox.h
- lldebugview.h
- lldelayedgestureerror.h
- lldirpicker.h
- lldndbutton.h
- lldrawable.h
- lldrawpool.h
- lldrawpoolalpha.h
- lldrawpoolavatar.h
- lldrawpoolbump.h
- lldrawpoolclouds.h
- lldrawpoolground.h
- lldrawpoolsimple.h
- lldrawpoolsky.h
- lldrawpoolterrain.h
- lldrawpooltree.h
- lldrawpoolwater.h
- lldrawpoolwlsky.h
- lldriverparam.h
- lldynamictexture.h
- llemote.h
- lleventinfo.h
- lleventnotifier.h
- lleventpoll.h
- llexpandabletextbox.h
- llface.h
- llfasttimerview.h
- llfavoritesbar.h
- llfeaturemanager.h
- llfilepicker.h
- llfirstuse.h
- llflexibleobject.h
- llfloaterabout.h
- llfloateractivespeakers.h
- llfloateranimpreview.h
- llfloaterauction.h
- llfloateravatarpicker.h
- llfloateravatartextures.h
- llfloaterbeacons.h
- llfloaterbuildoptions.h
- llfloaterbulkpermission.h
- llfloaterbump.h
- llfloaterbuy.h
- llfloaterbuycontents.h
- llfloaterbuycurrency.h
- llfloaterbuyland.h
- llfloatercall.h
- llfloatercamera.h
- llfloaterchat.h
- llfloaterchatterbox.h
- llfloatercolorpicker.h
- llfloatercustomize.h
- llfloaterdaycycle.h
- llfloaterenvsettings.h
- llfloaterfonttest.h
- llfloaterfriends.h
- llfloatergesture.h
- llfloatergodtools.h
- llfloatergroupinvite.h
- llfloatergroups.h
- llfloaterhandler.h
- llfloaterhardwaresettings.h
- llfloaterhelpbrowser.h
- llfloaterhud.h
- llfloaterimagepreview.h
- llfloaterinspect.h
- llfloaterinventory.h
- llfloaterjoystick.h
- llfloaterlagmeter.h
- llfloaterland.h
- llfloaterlandholdings.h
- llfloatermap.h
- llfloatermediabrowser.h
- llfloatermediasettings.h
- llfloatermemleak.h
- llfloaternamedesc.h
- llfloaternotificationsconsole.h
- llfloateropenobject.h
- llfloaterparcel.h
- llfloaterpay.h
- llfloaterperms.h
- llfloaterpostcard.h
- llfloaterpostprocess.h
- llfloaterpreference.h
- llfloaterproperties.h
- llfloaterregioninfo.h
- llfloaterreporter.h
- llfloaterscriptdebug.h
- llfloatersearch.h
- llfloatersellland.h
- llfloatersettingsdebug.h
- llfloatersnapshot.h
- llfloatertelehub.h
- llfloatertestinspectors.h
- llfloatertestlistview.h
- llfloatertools.h
- llfloatertopobjects.h
- llfloatertos.h
- llfloateruipreview.h
- llfloaterurldisplay.h
- llfloaterurlentry.h
- llfloatervoicedevicesettings.h
- llfloaterwater.h
- llfloaterwhitelistentry.h
- llfloaterwindlight.h
- llfloaterworldmap.h
- llfoldertype.h
- llfolderview.h
- llfoldervieweventlistener.h
- llfolderviewitem.h
- llfollowcam.h
- llfriendcard.h
- llgesturemgr.h
- llgroupactions.h
- llgrouplist.h
- llgroupmgr.h
- llgroupnotify.h
- llhomelocationresponder.h
- llhudeffect.h
- llhudeffectbeam.h
- llhudeffectlookat.h
- llhudeffectpointat.h
- llhudeffecttrail.h
- llhudicon.h
- llhudmanager.h
- llhudobject.h
- llhudrender.h
- llhudtext.h
- llhudview.h
- llimcontrolpanel.h
- llimfloater.h
- llimpanel.h
- llimview.h
- llinspect.h
- llinspectavatar.h
- llinspectgroup.h
- llinspectobject.h
- llinventorybridge.h
- llinventoryclipboard.h
- llinventoryfilter.h
- llinventoryfunctions.h
- llinventorymodel.h
- llinventorypanel.h
- llinventorysubtreepanel.h
- lljoystickbutton.h
- lllandmarkactions.h
- lllandmarklist.h
- lllightconstants.h
- lllistbrowser.h
- lllistview.h
- lllocaltextureobject.h
- lllocationhistory.h
- lllocationinputctrl.h
- lllogchat.h
- llloginhandler.h
- lllogininstance.h
- llmanip.h
- llmaniprotate.h
- llmanipscale.h
- llmaniptranslate.h
- llmapresponders.h
- llmediactrl.h
- llmediadataclient.h
- llmediaremotectrl.h
- llmemoryview.h
- llmenucommands.h
- llmetricperformancetester.h
- llmimetypes.h
- llmorphview.h
- llmoveview.h
- llmutelist.h
- llnamebox.h
- llnameeditor.h
- llnamelistctrl.h
- llnavigationbar.h
- llnearbychat.h
- llnearbychatbar.h
- llnearbychathandler.h
- llnetmap.h
- llnotificationhandler.h
- llnotificationmanager.h
- llnotify.h
- lloutputmonitorctrl.h
- lloverlaybar.h
- llpanelappearance.h
- llpanelappearancetab.h
- llpanelavatar.h
- llpanelavatarrow.h
- llpanelavatartag.h
- llpanelblockedlist.h
- llpanelclassified.h
- llpanelcontents.h
- llpaneleditwearable.h
- llpanelevent.h
- llpanelface.h
- llpanelgroup.h
- llpanelgroupgeneral.h
- llpanelgroupinvite.h
- llpanelgrouplandmoney.h
- llpanelgroupnotices.h
- llpanelgrouproles.h
- llpanelimcontrolpanel.h
- llpanelinventory.h
- llpanelland.h
- llpanellandaudio.h
- llpanellandmarks.h
- llpanellandmedia.h
- llpanellogin.h
- llpanellookinfo.h
- llpanellooks.h
- llpanelmaininventory.h
- llpanelmedia.h
- llpanelmediasettingsgeneral.h
- llpanelmediasettingspermissions.h
- llpanelmediasettingssecurity.h
- llpanelmeprofile.h
- llpanelobject.h
- llpanelobjectinventory.h
- llpanelpeople.h
- llpanelpeoplemenus.h
- llpanelpermissions.h
- llpanelpick.h
- llpanelpicks.h
- llpanelplace.h
- llpanelplaceinfo.h
- llpanelplaces.h
- llpanelplacestab.h
- llpanelprimmediacontrols.h
- llpanelprofile.h
- llpanelprofileview.h
- llpanelshower.h
- llpanelteleporthistory.h
- llpanelvolume.h
- llparcelselection.h
- llparticipantlist.h
- llpatchvertexarray.h
- llplacesinventorybridge.h
- llpolymesh.h
- llpolymorph.h
- llpreview.h
- llpreviewanim.h
- llpreviewgesture.h
- llpreviewnotecard.h
- llpreviewscript.h
- llpreviewsound.h
- llpreviewtexture.h
- llproductinforequest.h
- llprogressview.h
- llrecentpeople.h
- llregionposition.h
- llremoteparcelrequest.h
- llresourcedata.h
- llrootview.h
- llsavedsettingsglue.h
- llscreenchannel.h
- llscrollingpanelparam.h
- llsearchcombobox.h
- llsearchhistory.h
- llselectmgr.h
- llsidepanelinventory.h
- llsidepanelobjectinfo.h
- llsidetray.h
- llsidetraypanelcontainer.h
- llsky.h
- llslurl.h
- llspatialpartition.h
- llspeakers.h
- llsplitbutton.h
- llsprite.h
- llstartup.h
- llstatusbar.h
- llstylemap.h
- llsurface.h
- llsurfacepatch.h
- llsyswellitem.h
- llsyswellwindow.h
- lltable.h
- llteleporthistory.h
- llteleporthistorystorage.h
- lltexglobalcolor.h
- lltexlayer.h
- lltexlayerparams.h
- lltextureatlas.h
- lltextureatlasmanager.h
- lltexturecache.h
- lltexturectrl.h
- lltexturefetch.h
- lltextureview.h
- lltoast.h
- lltoastalertpanel.h
- lltoastgroupnotifypanel.h
- lltoastimpanel.h
- lltoastnotifypanel.h
- lltoastpanel.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
- lltracker.h
- lltransientdockablefloater.h
- lltransientfloatermgr.h
- lluiconstants.h
- lluilistener.h
- lluploaddialog.h
- llurl.h
- llurldispatcher.h
- llurlhistory.h
- llurllineeditorctrl.h
- llurlsimstring.h
- llurlwhitelist.h
- llvectorperfoptions.h
- llviewchildren.h
- llviewerassetstorage.h
- llvieweraudio.h
- llviewerbuild.h
- llviewercamera.h
- llviewercontrol.h
- llviewercontrollistener.h
- llviewerdisplay.h
- llviewerfloaterreg.h
- llviewergenericmessage.h
- llviewergesture.h
- llviewerhelp.h
- llviewerinventory.h
- llviewerjoint.h
- llviewerjointattachment.h
- llviewerjointmesh.h
- llviewerjoystick.h
- llviewerkeyboard.h
- llviewerlayer.h
- llviewermedia.h
- llviewermediafocus.h
- llviewermediaobserver.h
- llviewermenu.h
- llviewermenufile.h
- llviewermessage.h
- llviewernetwork.h
- llviewerobject.h
- llviewerobjectlist.h
- llviewerparcelmedia.h
- llviewerparcelmediaautoplay.h
- llviewerparcelmgr.h
- llviewerparceloverlay.h
- llviewerpartsim.h
- llviewerpartsource.h
- llviewerprecompiledheaders.h
- llviewerregion.h
- llviewershadermgr.h
- llviewerstats.h
- llviewertexteditor.h
- llviewertexture.h
- llviewertextureanim.h
- llviewertexturelist.h
- llviewerthrottle.h
- llviewervisualparam.h
- llviewerwindow.h
- llviewerwindowlistener.h
- llvlcomposition.h
- llvlmanager.h
- llvoavatar.h
- llvoavatardefines.h
- llvoavatarself.h
- llvocache.h
- llvoclouds.h
- llvograss.h
- llvoground.h
- llvoicechannel.h
- llvoiceclient.h
- llvoicecontrolpanel.h
- llvoiceremotectrl.h
- llvoicevisualizer.h
- llvoinventorylistener.h
- llvopartgroup.h
- llvosky.h
- llvosurfacepatch.h
- llvotextbubble.h
- llvotree.h
- llvotreenew.h
- llvovolume.h
- llvowater.h
- llvowlsky.h
- llwatchdog.h
- llwaterparammanager.h
- llwaterparamset.h
- llwearable.h
- llwearabledictionary.h
- llwearablelist.h
- llweb.h
- llwind.h
- llwindebug.h
- llwlanimator.h
- llwldaycycle.h
- llwlparammanager.h
- llwlparamset.h
- llworld.h
- llworldmap.h
- llworldmapview.h
- llxmlrpclistener.h
- llxmlrpctransaction.h
- macmain.h
- noise.h
- pipeline.h
- randgauss.h
- VertexCache.h
- VorbisFramework.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
- secondlife.icns
- macview.r
- gpu_table.txt
- Info-SecondLife.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)
- # llstartup.cpp needs special symbols for audio libraries, so it resets
- # COMPILE_FLAGS below. Make sure it maintains precompiled header settings.
- set(LLSTARTUP_COMPILE_FLAGS
- "${LLSTARTUP_COMPILE_FLAGS} /Yullviewerprecompiledheaders.h")
-
- # 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
- res/arrow.cur
- res/arrowcop.cur
- res/arrowcopmulti.cur
- res/arrowdrag.cur
- res/circleandline.cur
- res/icon1.ico
- res/llarrow.cur
- res/llarrowdrag.cur
- res/llarrowdragmulti.cur
- res/llarrowlocked.cur
- res/llgrablocked.cur
- res/llno.cur
- res/llnolocked.cur
- res/lltoolcamera.cur
- res/lltoolcreate.cur
- res/lltoolfocus.cur
- res/lltoolgrab.cur
- res/lltoolland.cur
- res/lltoolpan.cur
- res/lltoolpipette.cur
- res/lltoolrotate.cur
- res/lltoolscale.cur
- res/lltooltranslate.cur
- res/lltoolzoomin.cur
- res/lltoolzoomout.cur
- res/ll_icon.BMP
- res/ll_icon.ico
- res/resource.h
- res/toolpickobject.cur
- res/toolpickobject2.cur
- res/toolpickobject3.cur
- res/toolpipette.cur
- )
-
- set_source_files_properties(${viewer_RESOURCE_FILES}
- PROPERTIES HEADER_FILE_ONLY TRUE)
-
- set(viewer_RESOURCE_FILES
- res/viewerRes.rc
- ${viewer_RESOURCE_FILES}
- )
-
- SOURCE_GROUP("Resource Files" FILES ${viewer_RESOURCE_FILES})
-
- if (NOT STANDALONE)
- list(APPEND viewer_SOURCE_FILES ${viewer_RESOURCE_FILES})
- endif (NOT STANDALONE)
-
- find_library(DINPUT_LIBRARY dinput8 ${DIRECTX_LIBRARY_DIR})
- find_library(DXGUID_LIBRARY dxguid ${DIRECTX_LIBRARY_DIR})
- mark_as_advanced(
- DINPUT_LIBRARY
- DXGUID_LIBRARY
- )
-
- set(viewer_LIBRARIES
- ${WINDOWS_LIBRARIES}
- comdlg32
- ${DINPUT_LIBRARY}
- ${DXGUID_LIBRARY}
- kernel32
- odbc32
- odbccp32
- ole32
- oleaut32
- opengl32
- shell32
- Vfw32
- winspool
- )
-
- 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
- skins/default/colors.xml
- skins/default/textures/textures.xml
-
-
-
- )
-file(GLOB DEFAULT_XUI_FILE_GLOB_LIST
- ${CMAKE_CURRENT_SOURCE_DIR}/skins/default/xui/en/*.xml)
-list(APPEND viewer_XUI_FILES ${DEFAULT_XUI_FILE_GLOB_LIST})
-
-file(GLOB DEFAULT_WIDGET_FILE_GLOB_LIST
- ${CMAKE_CURRENT_SOURCE_DIR}/skins/default/xui/en/widgets/*.xml)
-list(APPEND viewer_XUI_FILES ${DEFAULT_WIDGET_FILE_GLOB_LIST})
-
-file(GLOB SILVER_XUI_FILE_GLOB_LIST
- ${CMAKE_CURRENT_SOURCE_DIR}/skins/silver/xui/en-us/*.xml)
-list(APPEND viewer_XUI_FILES ${SILVER_XUI_FILE_GLOB_LIST})
-
-# Cannot append empty lists in CMake, wait until we have files here.
-#file(GLOB SILVER_WIDGET_FILE_GLOB_LIST
-# ${CMAKE_CURRENT_SOURCE_DIR}/skins/silver/xui/en-us/widgets/*.xml)
-#list(APPEND viewer_XUI_FILES ${SILVER_WIDGET_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
- 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_crash_behavior.xml
- app_settings/settings_files.xml
- app_settings/settings_per_account.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
- )
-
-use_prebuilt_binary(artwork-common)
-
-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})
-
-set(viewer_CHARACTER_FILES
- character/attentions.xml
- character/attentionsN.xml
- character/avatar_lad.xml
- character/avatar_skeleton.xml
- character/genepool.xml
- )
-
-source_group("Character File" FILES ${viewer_CHARACTER_FILES})
-
-set_source_files_properties(${viewer_CHARACTER_FILES}
- PROPERTIES HEADER_FILE_ONLY TRUE)
-if (NOT STANDALONE)
- list(APPEND viewer_SOURCE_FILES ${viewer_CHARACTER_FILES})
-endif (NOT STANDALONE)
-
-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)
- set(LLSTARTUP_COMPILE_FLAGS "${LLSTARTUP_COMPILE_FLAGS} -DLL_FMOD")
-
- if (DARWIN)
- set(fmodwrapper_SOURCE_FILES fmodwrapper.cpp)
- add_library(fmodwrapper SHARED ${fmodwrapper_SOURCE_FILES})
- set(fmodwrapper_needed_LIBRARIES ${FMOD_LIBRARY} ${CARBON_LIBRARY})
- 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})
- else (DARWIN)
- # fmodwrapper unnecessary on linux or windows
- set(FMODWRAPPER_LIBRARY ${FMOD_LIBRARY})
- endif (DARWIN)
-endif (FMOD)
-
-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}
- )
-check_message_template(${VIEWER_BINARY_NAME})
-
-if (LLKDU_LIBRARY)
- add_dependencies(${VIEWER_BINARY_NAME} ${LLKDU_LIBRARY})
-endif (LLKDU_LIBRARY)
-
-# add package files
-file(GLOB EVENT_HOST_SCRIPT_GLOB_LIST
- ${CMAKE_CURRENT_SOURCE_DIR}/../viewer_components/*.py)
-list(APPEND EVENT_HOST_SCRIPTS ${EVENT_HOST_SCRIPT_GLOB_LIST})
-
-set(PACKAGE OFF CACHE BOOL
- "Add a package target that builds an installer package.")
-
-if (WINDOWS)
- if(MSVC71)
- set(release_flags "/MAP:Release/${VIEWER_BINARY_NAME}.map /MAPINFO:LINES")
- else(MSVC71)
- set(release_flags "/MAP:Release/${VIEWER_BINARY_NAME}.map")
- endif(MSVC71)
-
- set_target_properties(${VIEWER_BINARY_NAME}
- PROPERTIES
- # *TODO -reenable this once we get server usage sorted out
- #LINK_FLAGS "/debug /NODEFAULTLIB:LIBCMT /SUBSYSTEM:WINDOWS /INCLUDE:\"__tcmalloc\""
- LINK_FLAGS "/debug /NODEFAULTLIB:LIBCMT /SUBSYSTEM:WINDOWS"
- LINK_FLAGS_DEBUG "/NODEFAULTLIB:\"LIBCMT;LIBCMTD;MSVCRT\" /INCREMENTAL:NO"
- 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."
- )
-
- if(WINDOWS)
- # Copy Win Libs...
- # This happens at build time, not config time. We can't glob files in this cmake.
- # *FIX:Mani Write a sub script to glob the files...
- # *FIX:Mani Use actually dependencies rather than bulk copy.
- add_custom_command(
- TARGET ${VIEWER_BINARY_NAME} PRE_BUILD
- COMMAND ${CMAKE_COMMAND}
- ARGS
- -E
- copy_directory
- ${SHARED_LIB_STAGING_DIR}/${CMAKE_CFG_INTDIR}
- ${CMAKE_CURRENT_BINARY_DIR}/${CMAKE_CFG_INTDIR}
- COMMENT "Copying staged dlls."
- )
-
- add_dependencies(${VIEWER_BINARY_NAME} stage_third_party_libs llcommon)
- if(LLKDU_LIBRARY)
- # kdu may not exist!
- add_dependencies(${VIEWER_BINARY_NAME} llkdu)
- endif(LLKDU_LIBRARY)
- endif(WINDOWS)
-
- 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
- --configuration=${CMAKE_CFG_INTDIR}
- --channel=${VIEWER_CHANNEL}
- --login_channel=${VIEWER_LOGIN_CHANNEL}
- --grid=${GRID}
- --source=${CMAKE_CURRENT_SOURCE_DIR}
- --artwork=${ARTWORK_DIR}
- --build=${CMAKE_CURRENT_BINARY_DIR}
- --dest=${CMAKE_CURRENT_BINARY_DIR}/${CMAKE_CFG_INTDIR}
- --touch=${CMAKE_CURRENT_BINARY_DIR}/${CMAKE_CFG_INTDIR}/touched.bat
- DEPENDS ${VIEWER_BINARY_NAME} ${CMAKE_CURRENT_SOURCE_DIR}/viewer_manifest.py
- )
-
- add_dependencies(${VIEWER_BINARY_NAME} SLPlugin media_plugin_quicktime media_plugin_webkit)
-
- if (PACKAGE)
- add_custom_command(
- OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/${CMAKE_CFG_INTDIR}/event_host.tar.bz2
- COMMAND ${PYTHON_EXECUTABLE}
- ARGS
- ${CMAKE_CURRENT_SOURCE_DIR}/event_host_manifest.py
- ${CMAKE_CURRENT_SOURCE_DIR}/..
- ${CMAKE_CURRENT_BINARY_DIR}
- ${CMAKE_CFG_INTDIR}
-
- DEPENDS
- lleventhost
- ${EVENT_HOST_SCRIPTS}
- ${CMAKE_CURRENT_SOURCE_DIR}/event_host_manifest.py)
-
- add_custom_target(package ALL
- DEPENDS
- ${CMAKE_CFG_INTDIR}/touched.bat)
- # temporarily disable packaging of event_host until hg subrepos get
- # sorted out on the parabuild cluster...
- #${CMAKE_CURRENT_BINARY_DIR}/${CMAKE_CFG_INTDIR}/event_host.tar.bz2)
- add_dependencies(package windows-updater windows-crash-logger)
-
-
- endif (PACKAGE)
-endif (WINDOWS)
-
-target_link_libraries(${VIEWER_BINARY_NAME}
- ${LLAUDIO_LIBRARIES}
- ${LLCHARACTER_LIBRARIES}
- ${LLIMAGE_LIBRARIES}
- ${LLIMAGEJ2COJ_LIBRARIES}
- ${LLINVENTORY_LIBRARIES}
- ${LLMESSAGE_LIBRARIES}
- ${LLPLUGIN_LIBRARIES}
- ${LLPRIMITIVE_LIBRARIES}
- ${LLRENDER_LIBRARIES}
- ${FREETYPE_LIBRARIES}
- ${LLUI_LIBRARIES}
- ${LLVFS_LIBRARIES}
- ${LLWINDOW_LIBRARIES}
- ${LLXML_LIBRARIES}
- ${LLXUIXML_LIBRARIES}
- ${LSCRIPT_LIBRARIES}
- ${LLMATH_LIBRARIES}
- ${LLCOMMON_LIBRARIES}
- ${NDOF_LIBRARY}
- ${viewer_LIBRARIES}
- ${BOOST_PROGRAM_OPTIONS_LIBRARY}
- ${BOOST_REGEX_LIBRARY}
- ${DBUSGLIB_LIBRARIES}
- ${OPENGL_LIBRARIES}
- ${FMODWRAPPER_LIBRARY}
- ${OPENGL_LIBRARIES}
- ${SDL_LIBRARY}
- ${SMARTHEAP_LIBRARY}
- ${UI_LIBRARIES}
- ${WINDOWS_LIBRARIES}
- ${XMLRPCEPI_LIBRARIES}
- ${ELFIO_LIBRARIES}
- ${LLLOGIN_LIBRARIES}
- ${GOOGLE_PERFTOOLS_LIBRARIES}
- )
-
-build_version(viewer)
-
-set(ARTWORK_DIR ${CMAKE_CURRENT_SOURCE_DIR} CACHE PATH
- "Path to artwork files.")
-
-
-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 SecondLife-${ARCH}-${viewer_VERSION})
-
- add_custom_command(
- OUTPUT ${product}.tar.bz2
- COMMAND ${PYTHON_EXECUTABLE}
- ARGS
- ${CMAKE_CURRENT_SOURCE_DIR}/viewer_manifest.py
- --grid=${GRID}
- --channel=${VIEWER_CHANNEL}
- --login_channel=${VIEWER_LOGIN_CHANNEL}
- --installer_name=${product}
- --arch=${ARCH}
- --source=${CMAKE_CURRENT_SOURCE_DIR}
- --artwork=${ARTWORK_DIR}
- --build=${CMAKE_CURRENT_BINARY_DIR}
- --dest=${CMAKE_CURRENT_BINARY_DIR}/packaged
- --touch=${CMAKE_CURRENT_BINARY_DIR}/${CMAKE_CFG_INTDIR}/.${product}.touched
- DEPENDS secondlife-stripped ${CMAKE_CURRENT_SOURCE_DIR}/viewer_manifest.py
- )
-
- add_dependencies(${VIEWER_BINARY_NAME} SLPlugin media_plugin_gstreamer010 media_plugin_webkit)
-
- if (NOT INSTALL)
- add_custom_target(package ALL DEPENDS ${product}.tar.bz2)
- add_dependencies(package linux-crash-logger-strip-target)
- add_dependencies(package linux-updater-strip-target)
- endif (NOT INSTALL)
-endif (LINUX)
-
-if (DARWIN)
- set(product "Second Life")
- set_target_properties(
- ${VIEWER_BINARY_NAME}
- PROPERTIES
- OUTPUT_NAME "${product}"
- MACOSX_BUNDLE_INFO_STRING "info string - localize me"
- MACOSX_BUNDLE_ICON_FILE "secondlife.icns"
- MACOSX_BUNDLE_GUI_IDENTIFIER "Second Life"
- MACOSX_BUNDLE_LONG_VERSION_STRING "ververver"
- MACOSX_BUNDLE_BUNDLE_NAME "Second Life"
- MACOSX_BUNDLE_SHORT_VERSION_STRING "asdf"
- MACOSX_BUNDLE_BUNDLE_VERSION "asdf"
- MACOSX_BUNDLE_COPYRIGHT "copyright linden lab 2007 - localize me and run me through a legal wringer"
- )
-
- add_custom_command(
- TARGET ${VIEWER_BINARY_NAME} POST_BUILD
- COMMAND ${PYTHON_EXECUTABLE}
- ARGS
- ${CMAKE_CURRENT_SOURCE_DIR}/viewer_manifest.py
- --grid=${GRID}
- --actions=copy
- --configuration=${CMAKE_CFG_INTDIR}
- --source=${CMAKE_CURRENT_SOURCE_DIR}
- --artwork=${ARTWORK_DIR}
- --build=${CMAKE_CURRENT_BINARY_DIR}
- --dest=${CMAKE_CURRENT_BINARY_DIR}/${CMAKE_CFG_INTDIR}/${product}.app
- DEPENDS ${VIEWER_BINARY_NAME} ${CMAKE_CURRENT_SOURCE_DIR}/viewer_manifest.py
- )
-
- add_dependencies(${VIEWER_BINARY_NAME} SLPlugin media_plugin_quicktime media_plugin_webkit)
-
- 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
- --grid=${GRID}
- --configuration=${CMAKE_CFG_INTDIR}
- --channel=${VIEWER_CHANNEL}
- --login_channel=${VIEWER_LOGIN_CHANNEL}
- --source=${CMAKE_CURRENT_SOURCE_DIR}
- --artwork=${ARTWORK_DIR}
- --build=${CMAKE_CURRENT_BINARY_DIR}
- --dest=${CMAKE_CURRENT_BINARY_DIR}/${CMAKE_CFG_INTDIR}/${product}.app
- --touch=${CMAKE_CURRENT_BINARY_DIR}/${CMAKE_CFG_INTDIR}/.${product}.touched
- DEPENDS
- ${CMAKE_CURRENT_SOURCE_DIR}/viewer_manifest.py
- )
-
-
- add_custom_command(
- TARGET package POST_BUILD
- COMMAND ${PYTHON_EXECUTABLE}
- ARGS
- ${CMAKE_CURRENT_SOURCE_DIR}/viewer_manifest.py
- --grid=${GRID}
- --configuration=${CMAKE_CFG_INTDIR}
- --channel=${VIEWER_CHANNEL}
- --login_channel=${VIEWER_LOGIN_CHANNEL}
- --source=${CMAKE_CURRENT_SOURCE_DIR}
- --artwork=${ARTWORK_DIR}
- --build=${CMAKE_CURRENT_BINARY_DIR}
- --dest=${CMAKE_CURRENT_BINARY_DIR}/${CMAKE_CFG_INTDIR}/${product}.app
- --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)
-
-# To add a viewer unit test, just add the test .cpp file below
-# This creates a separate test project per file listed.
-include(LLAddBuildTest)
-SET(viewer_TEST_SOURCE_FILES
- llagentaccess.cpp
- lldateutil.cpp
- llmediadataclient.cpp
- llviewerhelputil.cpp
- lllogininstance.cpp
- )
-set_source_files_properties(
- ${viewer_TEST_SOURCE_FILES}
- PROPERTIES
- LL_TEST_ADDITIONAL_SOURCE_FILES llviewerprecompiledheaders.cpp
- )
-LL_ADD_PROJECT_UNIT_TESTS(${VIEWER_BINARY_NAME} "${viewer_TEST_SOURCE_FILES}")
-
-#set(TEST_DEBUG on)
-set(test_sources llcapabilitylistener.cpp llviewerprecompiledheaders.cpp)
-set(test_libs
- ${LLMESSAGE_LIBRARIES}
- ${WINDOWS_LIBRARIES}
- ${LLVFS_LIBRARIES}
- ${LLMATH_LIBRARIES}
- ${LLCOMMON_LIBRARIES}
- ${GOOGLEMOCK_LIBRARIES}
- )
-
-LL_ADD_INTEGRATION_TEST(llcapabilitylistener
- "${test_sources}"
- "${test_libs}"
- ${PYTHON_EXECUTABLE}
- "${CMAKE_SOURCE_DIR}/llmessage/tests/test_llsdmessage_peer.py"
- )
-
-#ADD_VIEWER_BUILD_TEST(llmemoryview viewer)
-
-
-# Don't do these for DARWIN or LINUX here -- they're taken care of by viewer_manifest.py
-if (WINDOWS)
- add_custom_command(
- TARGET ${VIEWER_BINARY_NAME} POST_BUILD
- COMMAND ${CMAKE_COMMAND}
- ARGS
- -E
- make_directory
- ${CMAKE_CURRENT_BINARY_DIR}/${CMAKE_CFG_INTDIR}/llplugin
- COMMENT "Creating llplugin dir."
- )
-
- 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."
- )
-
- #*******************************
- # Copy media plugin support dlls
- # Debug config runtime files required for the plugins
- set(plugins_debug_src_dir "${CMAKE_SOURCE_DIR}/../libraries/i686-win32/lib/debug")
- set(plugins_debug_files
- libeay32.dll
- qtcored4.dll
- qtguid4.dll
- qtnetworkd4.dll
- qtopengld4.dll
- qtwebkitd4.dll
- ssleay32.dll
- )
- copy_if_different(
- ${plugins_debug_src_dir}
- "${CMAKE_CURRENT_BINARY_DIR}/Debug/llplugin"
- out_targets
- ${plugins_debug_files}
- )
- set(media_plugin_targets ${media_plugin_targets} ${out_targets})
-
- # Release & ReleaseDebInfo config runtime files required for the plugins
- set(plugins_release_src_dir "${CMAKE_SOURCE_DIR}/../libraries/i686-win32/lib/release")
- set(plugins_release_files
- libeay32.dll
- qtcore4.dll
- qtgui4.dll
- qtnetwork4.dll
- qtopengl4.dll
- qtwebkit4.dll
- ssleay32.dll
- )
- copy_if_different(
- ${plugins_release_src_dir}
- "${CMAKE_CURRENT_BINARY_DIR}/Release/llplugin"
- out_targets
- ${plugins_release_files}
- )
- set(media_plugin_targets ${media_plugin_targets} ${out_targets})
-
- copy_if_different(
- ${plugins_release_src_dir}
- "${CMAKE_CURRENT_BINARY_DIR}/RelWithDebInfo/llplugin"
- out_targets
- ${plugins_release_files}
- )
- set(media_plugin_targets ${media_plugin_targets} ${out_targets})
-
- add_custom_target(copy_media_plugin_libs ALL
- DEPENDS
- ${media_plugin_targets}
- )
-
- add_custom_command(
- TARGET ${VIEWER_BINARY_NAME} POST_BUILD
- COMMAND ${CMAKE_COMMAND}
- ARGS
- -E
- copy_directory
- ${CMAKE_BINARY_DIR}/test_apps/llplugintest/${CMAKE_CFG_INTDIR}/imageformats
- ${CMAKE_CURRENT_BINARY_DIR}/${CMAKE_CFG_INTDIR}/llplugin/imageformats
- COMMENT "Copying llpluging imageformat libs."
- )
-
- add_dependencies(${VIEWER_BINARY_NAME} llmediaplugintest copy_media_plugin_libs)
-
-endif (WINDOWS)
-
+# -*- cmake -*- + +project(viewer) + +include(00-Common) +include(Boost) +include(BuildVersion) +include(DBusGlib) +include(DirectX) +include(ELFIO) +include(FMOD) +include(OPENAL) +include(FindOpenGL) +include(LLAudio) +include(LLCharacter) +include(LLCommon) +include(LLImage) +include(LLImageJ2COJ) +include(LLInventory) +include(LLMath) +include(LLMessage) +include(LLPlugin) +include(LLPrimitive) +include(LLRender) +include(LLUI) +include(LLVFS) +include(LLWindow) +include(LLXML) +include(LLXUIXML) +include(LScript) +include(Linking) +include(NDOF) +include(GooglePerfTools) +include(TemplateCheck) +include(UI) +include(UnixInstall) +include(LLKDU) +include(ViewerMiscLibs) +include(LLLogin) +include(CMakeCopyIfDifferent) + +include_directories( + ${DBUSGLIB_INCLUDE_DIRS} + ${ELFIO_INCLUDE_DIR} + ${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} + ${LLXUIXML_INCLUDE_DIRS} + ${LSCRIPT_INCLUDE_DIRS} + ${LSCRIPT_INCLUDE_DIRS}/lscript_compile + ${LLLOGIN_INCLUDE_DIRS} + ) + +set(viewer_SOURCE_FILES + llaccordionctrl.cpp + llaccordionctrltab.cpp + llagent.cpp + llagentaccess.cpp + llagentdata.cpp + llagentlanguage.cpp + llagentlistener.cpp + llagentpicksinfo.cpp + llagentpilot.cpp + llagentui.cpp + llagentwearables.cpp + llanimstatelabels.cpp + llappearancemgr.cpp + llappviewer.cpp + llappviewerlistener.cpp + llassetuploadqueue.cpp + llassetuploadresponders.cpp + llaudiosourcevo.cpp + llavataractions.cpp + llavatariconctrl.cpp + llavatarlist.cpp + llavatarlistitem.cpp + llavatarpropertiesprocessor.cpp + llbottomtray.cpp + llbox.cpp + llbreadcrumbview.cpp + llcallbacklist.cpp + llcallingcard.cpp + llcapabilitylistener.cpp + llcaphttpsender.cpp + llchannelmanager.cpp + llchatbar.cpp + llchathistory.cpp + llchatitemscontainerctrl.cpp + llchatmsgbox.cpp + llchiclet.cpp + llclassifiedinfo.cpp + llclassifiedstatsresponder.cpp + llcloud.cpp + llcolorswatch.cpp + llcommandhandler.cpp + llcommandlineparser.cpp + llcompilequeue.cpp + llconfirmationmanager.cpp + llcurrencyuimanager.cpp + llcylinder.cpp + lldateutil.cpp + lldebugmessagebox.cpp + lldebugview.cpp + lldelayedgestureerror.cpp + lldirpicker.cpp + lldndbutton.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 + lldynamictexture.cpp + llemote.cpp + lleventinfo.cpp + lleventnotifier.cpp + lleventpoll.cpp + llexpandabletextbox.cpp + llface.cpp + llfasttimerview.cpp + llfavoritesbar.cpp + llfeaturemanager.cpp + llfilepicker.cpp + llfirstuse.cpp + llflexibleobject.cpp + llfloaterabout.cpp + llfloateractivespeakers.cpp + llfloateranimpreview.cpp + llfloaterauction.cpp + llfloateravatarpicker.cpp + llfloateravatartextures.cpp + llfloaterbeacons.cpp + llfloaterbuildoptions.cpp + llfloaterbulkpermission.cpp + llfloaterbump.cpp + llfloaterbuy.cpp + llfloaterbuycontents.cpp + llfloaterbuycurrency.cpp + llfloaterbuyland.cpp + llfloatercall.cpp + llfloatercamera.cpp + llfloaterchat.cpp + llfloaterchatterbox.cpp + llfloatercolorpicker.cpp + llfloatercustomize.cpp + llfloaterdaycycle.cpp + llfloaterenvsettings.cpp + llfloaterfonttest.cpp + llfloaterfriends.cpp + llfloatergesture.cpp + llfloatergodtools.cpp + llfloatergroupinvite.cpp + llfloatergroups.cpp + llfloaterhandler.cpp + llfloaterhardwaresettings.cpp + llfloaterhelpbrowser.cpp + llfloaterhud.cpp + llfloaterimagepreview.cpp + llfloaterinspect.cpp + llfloaterinventory.cpp + llfloaterjoystick.cpp + llfloaterlagmeter.cpp + llfloaterland.cpp + llfloaterlandholdings.cpp + llfloatermap.cpp + llfloatermediabrowser.cpp + llfloatermediasettings.cpp + llfloatermemleak.cpp + llfloaternamedesc.cpp + llfloaternearbymedia.cpp + llfloaternotificationsconsole.cpp + llfloateropenobject.cpp + llfloaterparcel.cpp + llfloaterpay.cpp + llfloaterperms.cpp + llfloaterpostcard.cpp + llfloaterpostprocess.cpp + llfloaterpreference.cpp + llfloaterproperties.cpp + llfloaterregioninfo.cpp + llfloaterreporter.cpp + llfloaterscriptdebug.cpp + llfloatersearch.cpp + llfloatersellland.cpp + llfloatersettingsdebug.cpp + llfloatersnapshot.cpp + llfloatertelehub.cpp + llfloatertestinspectors.cpp + llfloatertestlistview.cpp + llfloatertools.cpp + llfloatertopobjects.cpp + llfloatertos.cpp + llfloateruipreview.cpp + llfloaterurldisplay.cpp + llfloaterurlentry.cpp + llfloatervoicedevicesettings.cpp + llfloaterwater.cpp + llfloaterwhitelistentry.cpp + llfloaterwindlight.cpp + llfloaterworldmap.cpp + llfoldertype.cpp + llfolderview.cpp + llfolderviewitem.cpp + llfollowcam.cpp + llfriendcard.cpp + llgesturemgr.cpp + llglsandbox.cpp + llgroupactions.cpp + llgrouplist.cpp + llgroupmgr.cpp + llgroupnotify.cpp + llhomelocationresponder.cpp + llhudeffect.cpp + llhudeffectbeam.cpp + llhudeffectlookat.cpp + llhudeffectpointat.cpp + llhudeffecttrail.cpp + llhudicon.cpp + llhudmanager.cpp + llhudobject.cpp + llhudrender.cpp + llhudtext.cpp + llhudview.cpp + llimcontrolpanel.cpp + llimfloater.cpp + llimhandler.cpp + llimpanel.cpp + llimview.cpp + llinspect.cpp + llinspectavatar.cpp + llinspectgroup.cpp + llinspectobject.cpp + llinventorybridge.cpp + llinventoryclipboard.cpp + llinventoryfilter.cpp + llinventoryfunctions.cpp + llinventorymodel.cpp + llinventorypanel.cpp + llinventorysubtreepanel.cpp + lljoystickbutton.cpp + lllandmarkactions.cpp + lllandmarklist.cpp + lllistbrowser.cpp + lllistview.cpp + lllocaltextureobject.cpp + lllocationhistory.cpp + lllocationinputctrl.cpp + lllogchat.cpp + llloginhandler.cpp + lllogininstance.cpp + llmanip.cpp + llmaniprotate.cpp + llmanipscale.cpp + llmaniptranslate.cpp + llmapresponders.cpp + llmediactrl.cpp + llmediadataclient.cpp + llmediaremotectrl.cpp + llmemoryview.cpp + llmenucommands.cpp + llmetricperformancetester.cpp + llmimetypes.cpp + llmorphview.cpp + llmoveview.cpp + llmutelist.cpp + llnamebox.cpp + llnameeditor.cpp + llnamelistctrl.cpp + llnavigationbar.cpp + llnearbychat.cpp + llnearbychatbar.cpp + llnearbychathandler.cpp + llnetmap.cpp + llnotificationalerthandler.cpp + llnotificationgrouphandler.cpp + llnotificationmanager.cpp + llnotificationscripthandler.cpp + llnotificationtiphandler.cpp + llnotify.cpp + lloutputmonitorctrl.cpp + lloverlaybar.cpp + llpanelappearance.cpp + llpanelappearancetab.cpp + llpanelavatar.cpp + llpanelavatarrow.cpp + llpanelavatartag.cpp + llpanelblockedlist.cpp + llpanelclassified.cpp + llpanelcontents.cpp + llpaneleditwearable.cpp + llpanelevent.cpp + llpanelface.cpp + llpanelgroup.cpp + llpanelgroupgeneral.cpp + llpanelgroupinvite.cpp + llpanelgrouplandmoney.cpp + llpanelgroupnotices.cpp + llpanelgrouproles.cpp + llpanelimcontrolpanel.cpp + llpanelland.cpp + llpanellandaudio.cpp + llpanellandmarks.cpp + llpanellandmedia.cpp + llpanellogin.cpp + llpanellookinfo.cpp + llpanellooks.cpp + llpanelmaininventory.cpp + llpanelmedia.cpp + llpanelmediasettingsgeneral.cpp + llpanelmediasettingspermissions.cpp + llpanelmediasettingssecurity.cpp + llpanelmeprofile.cpp + llpanelobject.cpp + llpanelobjectinventory.cpp + llpanelpeople.cpp + llpanelpeoplemenus.cpp + llpanelpermissions.cpp + llpanelpick.cpp + llpanelpicks.cpp + llpanelplace.cpp + llpanelplaceinfo.cpp + llpanelplaces.cpp + llpanelplacestab.cpp + llpanelprimmediacontrols.cpp + llpanelprofile.cpp + llpanelprofileview.cpp + llpanelshower.cpp + llpanelteleporthistory.cpp + llpanelvolume.cpp + llparcelselection.cpp + llparticipantlist.cpp + llpatchvertexarray.cpp + llplacesinventorybridge.cpp + llpolymesh.cpp + llpolymorph.cpp + llpreview.cpp + llpreviewanim.cpp + llpreviewgesture.cpp + llpreviewnotecard.cpp + llpreviewscript.cpp + llpreviewsound.cpp + llpreviewtexture.cpp + llproductinforequest.cpp + llprogressview.cpp + llrecentpeople.cpp + llregionposition.cpp + llremoteparcelrequest.cpp + llsavedsettingsglue.cpp + llscreenchannel.cpp + llscrollingpanelparam.cpp + llsearchcombobox.cpp + llsearchhistory.cpp + llselectmgr.cpp + llsidepanelinventory.cpp + llsidepanelobjectinfo.cpp + llsidetray.cpp + llsidetraypanelcontainer.cpp + llsky.cpp + llslurl.cpp + llspatialpartition.cpp + llspeakers.cpp + llsplitbutton.cpp + llsprite.cpp + llstartup.cpp + llstatusbar.cpp + llstylemap.cpp + llsurface.cpp + llsurfacepatch.cpp + llsyswellitem.cpp + llsyswellwindow.cpp + llteleporthistory.cpp + llteleporthistorystorage.cpp + lltexglobalcolor.cpp + lltexlayer.cpp + lltexlayerparams.cpp + lltextureatlas.cpp + lltextureatlasmanager.cpp + lltexturecache.cpp + lltexturectrl.cpp + lltexturefetch.cpp + lltextureview.cpp + lltoast.cpp + lltoastalertpanel.cpp + lltoastgroupnotifypanel.cpp + lltoastimpanel.cpp + lltoastnotifypanel.cpp + lltoastpanel.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 + lltracker.cpp + lltransientdockablefloater.cpp + lltransientfloatermgr.cpp + lluilistener.cpp + lluploaddialog.cpp + llurl.cpp + llurldispatcher.cpp + llurlhistory.cpp + llurllineeditorctrl.cpp + llurlsimstring.cpp + llurlwhitelist.cpp + llvectorperfoptions.cpp + llviewchildren.cpp + llviewerassetstorage.cpp + llvieweraudio.cpp + llviewercamera.cpp + llviewercontrol.cpp + llviewercontrollistener.cpp + llviewerdisplay.cpp + llviewerfloaterreg.cpp + llviewergenericmessage.cpp + llviewergesture.cpp + llviewerhelp.cpp + llviewerhelputil.cpp + llviewerinventory.cpp + llviewerjoint.cpp + llviewerjointattachment.cpp + llviewerjointmesh.cpp + llviewerjointmesh_sse.cpp + llviewerjointmesh_sse2.cpp + llviewerjointmesh_vec.cpp + llviewerjoystick.cpp + llviewerkeyboard.cpp + llviewerlayer.cpp + llviewermedia.cpp + llviewermedia_streamingaudio.cpp + llviewermediafocus.cpp + llviewermenu.cpp + llviewermenufile.cpp + llviewermessage.cpp + llviewernetwork.cpp + llviewerobject.cpp + llviewerobjectlist.cpp + llviewerparcelmedia.cpp + llviewerparcelmediaautoplay.cpp + llviewerparcelmgr.cpp + llviewerparceloverlay.cpp + llviewerpartsim.cpp + llviewerpartsource.cpp + llviewerregion.cpp + llviewershadermgr.cpp + llviewerstats.cpp + llviewertexteditor.cpp + llviewertexture.cpp + llviewertextureanim.cpp + llviewertexturelist.cpp + llviewerthrottle.cpp + llviewervisualparam.cpp + llviewerwindow.cpp + llviewerwindowlistener.cpp + llvlcomposition.cpp + llvlmanager.cpp + llvoavatar.cpp + llvoavatardefines.cpp + llvoavatarself.cpp + llvocache.cpp + llvoclouds.cpp + llvograss.cpp + llvoground.cpp + llvoicechannel.cpp + llvoiceclient.cpp + llvoicecontrolpanel.cpp + llvoiceremotectrl.cpp + llvoicevisualizer.cpp + llvoinventorylistener.cpp + llvopartgroup.cpp + llvosky.cpp + llvosurfacepatch.cpp + llvotextbubble.cpp + llvotree.cpp + llvovolume.cpp + llvowater.cpp + llvowlsky.cpp + llwatchdog.cpp + llwaterparammanager.cpp + llwaterparamset.cpp + llwearable.cpp + llwearabledictionary.cpp + llwearablelist.cpp + llweb.cpp + llwind.cpp + llwlanimator.cpp + llwldaycycle.cpp + llwlparammanager.cpp + llwlparamset.cpp + llworld.cpp + llworldmap.cpp + llworldmapview.cpp + llxmlrpclistener.cpp + llxmlrpctransaction.cpp + noise.cpp + pipeline.cpp + ) + +set(VIEWER_BINARY_NAME "secondlife-bin" CACHE STRING + "The name of the viewer executable to create.") + +if (LINUX) + # We can't set these flags for Darwin, because they get passed to + # the PPC compiler. Ugh. + + set_source_files_properties( + llviewerjointmesh_sse.cpp + PROPERTIES COMPILE_FLAGS "-msse -mfpmath=sse" + ) + set_source_files_properties( + llviewerjointmesh_sse2.cpp + PROPERTIES COMPILE_FLAGS "-msse2 -mfpmath=sse" + ) +endif (LINUX) + +set(viewer_HEADER_FILES + CMakeLists.txt + ViewerInstall.cmake + llaccordionctrl.h + llaccordionctrltab.h + llagent.h + llagentaccess.h + llagentdata.h + llagentlanguage.h + llagentlistener.h + llagentpicksinfo.h + llagentpilot.h + llagentui.h + llagentwearables.h + llanimstatelabels.h + llappearance.h + llappearancemgr.h + llappviewer.h + llappviewerlistener.h + llassetuploadqueue.h + llassetuploadresponders.h + llaudiosourcevo.h + llavataractions.h + llavatariconctrl.h + llavatarlist.h + llavatarlistitem.h + llavatarpropertiesprocessor.h + llbottomtray.h + llbox.h + llbreadcrumbview.h + llcallbacklist.h + llcallingcard.h + llcapabilitylistener.h + llcapabilityprovider.h + llcaphttpsender.h + llchannelmanager.h + llchatbar.h + llchathistory.h + llchatitemscontainerctrl.h + llchatmsgbox.h + llchiclet.h + llclassifiedinfo.h + llclassifiedstatsresponder.h + llcloud.h + llcolorswatch.h + llcommandhandler.h + llcommandlineparser.h + llcompilequeue.h + llconfirmationmanager.h + llcurrencyuimanager.h + llcylinder.h + lldateutil.h + lldebugmessagebox.h + lldebugview.h + lldelayedgestureerror.h + lldirpicker.h + lldndbutton.h + lldrawable.h + lldrawpool.h + lldrawpoolalpha.h + lldrawpoolavatar.h + lldrawpoolbump.h + lldrawpoolclouds.h + lldrawpoolground.h + lldrawpoolsimple.h + lldrawpoolsky.h + lldrawpoolterrain.h + lldrawpooltree.h + lldrawpoolwater.h + lldrawpoolwlsky.h + lldriverparam.h + lldynamictexture.h + llemote.h + lleventinfo.h + lleventnotifier.h + lleventpoll.h + llexpandabletextbox.h + llface.h + llfasttimerview.h + llfavoritesbar.h + llfeaturemanager.h + llfilepicker.h + llfirstuse.h + llflexibleobject.h + llfloaterabout.h + llfloateractivespeakers.h + llfloateranimpreview.h + llfloaterauction.h + llfloateravatarpicker.h + llfloateravatartextures.h + llfloaterbeacons.h + llfloaterbuildoptions.h + llfloaterbulkpermission.h + llfloaterbump.h + llfloaterbuy.h + llfloaterbuycontents.h + llfloaterbuycurrency.h + llfloaterbuyland.h + llfloatercall.h + llfloatercamera.h + llfloaterchat.h + llfloaterchatterbox.h + llfloatercolorpicker.h + llfloatercustomize.h + llfloaterdaycycle.h + llfloaterenvsettings.h + llfloaterfonttest.h + llfloaterfriends.h + llfloatergesture.h + llfloatergodtools.h + llfloatergroupinvite.h + llfloatergroups.h + llfloaterhandler.h + llfloaterhardwaresettings.h + llfloaterhelpbrowser.h + llfloaterhud.h + llfloaterimagepreview.h + llfloaterinspect.h + llfloaterinventory.h + llfloaterjoystick.h + llfloaterlagmeter.h + llfloaterland.h + llfloaterlandholdings.h + llfloatermap.h + llfloatermediabrowser.h + llfloatermediasettings.h + llfloatermemleak.h + llfloaternamedesc.h + llfloaternearbymedia.h + llfloaternotificationsconsole.h + llfloateropenobject.h + llfloaterparcel.h + llfloaterpay.h + llfloaterperms.h + llfloaterpostcard.h + llfloaterpostprocess.h + llfloaterpreference.h + llfloaterproperties.h + llfloaterregioninfo.h + llfloaterreporter.h + llfloaterscriptdebug.h + llfloatersearch.h + llfloatersellland.h + llfloatersettingsdebug.h + llfloatersnapshot.h + llfloatertelehub.h + llfloatertestinspectors.h + llfloatertestlistview.h + llfloatertools.h + llfloatertopobjects.h + llfloatertos.h + llfloateruipreview.h + llfloaterurldisplay.h + llfloaterurlentry.h + llfloatervoicedevicesettings.h + llfloaterwater.h + llfloaterwhitelistentry.h + llfloaterwindlight.h + llfloaterworldmap.h + llfoldertype.h + llfolderview.h + llfoldervieweventlistener.h + llfolderviewitem.h + llfollowcam.h + llfriendcard.h + llgesturemgr.h + llgroupactions.h + llgrouplist.h + llgroupmgr.h + llgroupnotify.h + llhomelocationresponder.h + llhudeffect.h + llhudeffectbeam.h + llhudeffectlookat.h + llhudeffectpointat.h + llhudeffecttrail.h + llhudicon.h + llhudmanager.h + llhudobject.h + llhudrender.h + llhudtext.h + llhudview.h + llimcontrolpanel.h + llimfloater.h + llimpanel.h + llimview.h + llinspect.h + llinspectavatar.h + llinspectgroup.h + llinspectobject.h + llinventorybridge.h + llinventoryclipboard.h + llinventoryfilter.h + llinventoryfunctions.h + llinventorymodel.h + llinventorypanel.h + llinventorysubtreepanel.h + lljoystickbutton.h + lllandmarkactions.h + lllandmarklist.h + lllightconstants.h + lllistbrowser.h + lllistview.h + lllocaltextureobject.h + lllocationhistory.h + lllocationinputctrl.h + lllogchat.h + llloginhandler.h + lllogininstance.h + llmanip.h + llmaniprotate.h + llmanipscale.h + llmaniptranslate.h + llmapresponders.h + llmediactrl.h + llmediadataclient.h + llmediaremotectrl.h + llmemoryview.h + llmenucommands.h + llmetricperformancetester.h + llmimetypes.h + llmorphview.h + llmoveview.h + llmutelist.h + llnamebox.h + llnameeditor.h + llnamelistctrl.h + llnavigationbar.h + llnearbychat.h + llnearbychatbar.h + llnearbychathandler.h + llnetmap.h + llnotificationhandler.h + llnotificationmanager.h + llnotify.h + lloutputmonitorctrl.h + lloverlaybar.h + llpanelappearance.h + llpanelappearancetab.h + llpanelavatar.h + llpanelavatarrow.h + llpanelavatartag.h + llpanelblockedlist.h + llpanelclassified.h + llpanelcontents.h + llpaneleditwearable.h + llpanelevent.h + llpanelface.h + llpanelgroup.h + llpanelgroupgeneral.h + llpanelgroupinvite.h + llpanelgrouplandmoney.h + llpanelgroupnotices.h + llpanelgrouproles.h + llpanelimcontrolpanel.h + llpanelland.h + llpanellandaudio.h + llpanellandmarks.h + llpanellandmedia.h + llpanellogin.h + llpanellookinfo.h + llpanellooks.h + llpanelmaininventory.h + llpanelmedia.h + llpanelmediasettingsgeneral.h + llpanelmediasettingspermissions.h + llpanelmediasettingssecurity.h + llpanelmeprofile.h + llpanelobject.h + llpanelobjectinventory.h + llpanelpeople.h + llpanelpeoplemenus.h + llpanelpermissions.h + llpanelpick.h + llpanelpicks.h + llpanelplace.h + llpanelplaceinfo.h + llpanelplaces.h + llpanelplacestab.h + llpanelprimmediacontrols.h + llpanelprofile.h + llpanelprofileview.h + llpanelshower.h + llpanelteleporthistory.h + llpanelvolume.h + llparcelselection.h + llparticipantlist.h + llpatchvertexarray.h + llplacesinventorybridge.h + llpolymesh.h + llpolymorph.h + llpreview.h + llpreviewanim.h + llpreviewgesture.h + llpreviewnotecard.h + llpreviewscript.h + llpreviewsound.h + llpreviewtexture.h + llproductinforequest.h + llprogressview.h + llrecentpeople.h + llregionposition.h + llremoteparcelrequest.h + llresourcedata.h + llrootview.h + llsavedsettingsglue.h + llscreenchannel.h + llscrollingpanelparam.h + llsearchcombobox.h + llsearchhistory.h + llselectmgr.h + llsidepanelinventory.h + llsidepanelobjectinfo.h + llsidetray.h + llsidetraypanelcontainer.h + llsky.h + llslurl.h + llspatialpartition.h + llspeakers.h + llsplitbutton.h + llsprite.h + llstartup.h + llstatusbar.h + llstylemap.h + llsurface.h + llsurfacepatch.h + llsyswellitem.h + llsyswellwindow.h + lltable.h + llteleporthistory.h + llteleporthistorystorage.h + lltexglobalcolor.h + lltexlayer.h + lltexlayerparams.h + lltextureatlas.h + lltextureatlasmanager.h + lltexturecache.h + lltexturectrl.h + lltexturefetch.h + lltextureview.h + lltoast.h + lltoastalertpanel.h + lltoastgroupnotifypanel.h + lltoastimpanel.h + lltoastnotifypanel.h + lltoastpanel.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 + lltracker.h + lltransientdockablefloater.h + lltransientfloatermgr.h + lluiconstants.h + lluilistener.h + lluploaddialog.h + llurl.h + llurldispatcher.h + llurlhistory.h + llurllineeditorctrl.h + llurlsimstring.h + llurlwhitelist.h + llvectorperfoptions.h + llviewchildren.h + llviewerassetstorage.h + llvieweraudio.h + llviewerbuild.h + llviewercamera.h + llviewercontrol.h + llviewercontrollistener.h + llviewerdisplay.h + llviewerfloaterreg.h + llviewergenericmessage.h + llviewergesture.h + llviewerhelp.h + llviewerinventory.h + llviewerjoint.h + llviewerjointattachment.h + llviewerjointmesh.h + llviewerjoystick.h + llviewerkeyboard.h + llviewerlayer.h + llviewermedia.h + llviewermediafocus.h + llviewermediaobserver.h + llviewermenu.h + llviewermenufile.h + llviewermessage.h + llviewernetwork.h + llviewerobject.h + llviewerobjectlist.h + llviewerparcelmedia.h + llviewerparcelmediaautoplay.h + llviewerparcelmgr.h + llviewerparceloverlay.h + llviewerpartsim.h + llviewerpartsource.h + llviewerprecompiledheaders.h + llviewerregion.h + llviewershadermgr.h + llviewerstats.h + llviewertexteditor.h + llviewertexture.h + llviewertextureanim.h + llviewertexturelist.h + llviewerthrottle.h + llviewervisualparam.h + llviewerwindow.h + llviewerwindowlistener.h + llvlcomposition.h + llvlmanager.h + llvoavatar.h + llvoavatardefines.h + llvoavatarself.h + llvocache.h + llvoclouds.h + llvograss.h + llvoground.h + llvoicechannel.h + llvoiceclient.h + llvoicecontrolpanel.h + llvoiceremotectrl.h + llvoicevisualizer.h + llvoinventorylistener.h + llvopartgroup.h + llvosky.h + llvosurfacepatch.h + llvotextbubble.h + llvotree.h + llvotreenew.h + llvovolume.h + llvowater.h + llvowlsky.h + llwatchdog.h + llwaterparammanager.h + llwaterparamset.h + llwearable.h + llwearabledictionary.h + llwearablelist.h + llweb.h + llwind.h + llwindebug.h + llwlanimator.h + llwldaycycle.h + llwlparammanager.h + llwlparamset.h + llworld.h + llworldmap.h + llworldmapview.h + llxmlrpclistener.h + llxmlrpctransaction.h + macmain.h + noise.h + pipeline.h + randgauss.h + VertexCache.h + VorbisFramework.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 + secondlife.icns + macview.r + gpu_table.txt + Info-SecondLife.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) + # llstartup.cpp needs special symbols for audio libraries, so it resets + # COMPILE_FLAGS below. Make sure it maintains precompiled header settings. + set(LLSTARTUP_COMPILE_FLAGS + "${LLSTARTUP_COMPILE_FLAGS} /Yullviewerprecompiledheaders.h") + + # 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 + res/arrow.cur + res/arrowcop.cur + res/arrowcopmulti.cur + res/arrowdrag.cur + res/circleandline.cur + res/icon1.ico + res/llarrow.cur + res/llarrowdrag.cur + res/llarrowdragmulti.cur + res/llarrowlocked.cur + res/llgrablocked.cur + res/llno.cur + res/llnolocked.cur + res/lltoolcamera.cur + res/lltoolcreate.cur + res/lltoolfocus.cur + res/lltoolgrab.cur + res/lltoolland.cur + res/lltoolpan.cur + res/lltoolpipette.cur + res/lltoolrotate.cur + res/lltoolscale.cur + res/lltooltranslate.cur + res/lltoolzoomin.cur + res/lltoolzoomout.cur + res/ll_icon.BMP + res/ll_icon.ico + res/resource.h + res/toolpickobject.cur + res/toolpickobject2.cur + res/toolpickobject3.cur + res/toolpipette.cur + ) + + set_source_files_properties(${viewer_RESOURCE_FILES} + PROPERTIES HEADER_FILE_ONLY TRUE) + + set(viewer_RESOURCE_FILES + res/viewerRes.rc + ${viewer_RESOURCE_FILES} + ) + + SOURCE_GROUP("Resource Files" FILES ${viewer_RESOURCE_FILES}) + + if (NOT STANDALONE) + list(APPEND viewer_SOURCE_FILES ${viewer_RESOURCE_FILES}) + endif (NOT STANDALONE) + + find_library(DINPUT_LIBRARY dinput8 ${DIRECTX_LIBRARY_DIR}) + find_library(DXGUID_LIBRARY dxguid ${DIRECTX_LIBRARY_DIR}) + mark_as_advanced( + DINPUT_LIBRARY + DXGUID_LIBRARY + ) + + set(viewer_LIBRARIES + ${WINDOWS_LIBRARIES} + comdlg32 + ${DINPUT_LIBRARY} + ${DXGUID_LIBRARY} + kernel32 + odbc32 + odbccp32 + ole32 + oleaut32 + opengl32 + shell32 + Vfw32 + winspool + ) + + 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 + skins/default/colors.xml + skins/default/textures/textures.xml + + + + ) +file(GLOB DEFAULT_XUI_FILE_GLOB_LIST + ${CMAKE_CURRENT_SOURCE_DIR}/skins/default/xui/en/*.xml) +list(APPEND viewer_XUI_FILES ${DEFAULT_XUI_FILE_GLOB_LIST}) + +file(GLOB DEFAULT_WIDGET_FILE_GLOB_LIST + ${CMAKE_CURRENT_SOURCE_DIR}/skins/default/xui/en/widgets/*.xml) +list(APPEND viewer_XUI_FILES ${DEFAULT_WIDGET_FILE_GLOB_LIST}) + +file(GLOB SILVER_XUI_FILE_GLOB_LIST + ${CMAKE_CURRENT_SOURCE_DIR}/skins/silver/xui/en-us/*.xml) +list(APPEND viewer_XUI_FILES ${SILVER_XUI_FILE_GLOB_LIST}) + +# Cannot append empty lists in CMake, wait until we have files here. +#file(GLOB SILVER_WIDGET_FILE_GLOB_LIST +# ${CMAKE_CURRENT_SOURCE_DIR}/skins/silver/xui/en-us/widgets/*.xml) +#list(APPEND viewer_XUI_FILES ${SILVER_WIDGET_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 + 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_crash_behavior.xml + app_settings/settings_files.xml + app_settings/settings_per_account.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 + ) + +use_prebuilt_binary(artwork-common) + +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}) + +set(viewer_CHARACTER_FILES + character/attentions.xml + character/attentionsN.xml + character/avatar_lad.xml + character/avatar_skeleton.xml + character/genepool.xml + ) + +source_group("Character File" FILES ${viewer_CHARACTER_FILES}) + +set_source_files_properties(${viewer_CHARACTER_FILES} + PROPERTIES HEADER_FILE_ONLY TRUE) +if (NOT STANDALONE) + list(APPEND viewer_SOURCE_FILES ${viewer_CHARACTER_FILES}) +endif (NOT STANDALONE) + +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) + set(LLSTARTUP_COMPILE_FLAGS "${LLSTARTUP_COMPILE_FLAGS} -DLL_FMOD") + + if (DARWIN) + set(fmodwrapper_SOURCE_FILES fmodwrapper.cpp) + add_library(fmodwrapper SHARED ${fmodwrapper_SOURCE_FILES}) + set(fmodwrapper_needed_LIBRARIES ${FMOD_LIBRARY} ${CARBON_LIBRARY}) + 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}) + else (DARWIN) + # fmodwrapper unnecessary on linux or windows + set(FMODWRAPPER_LIBRARY ${FMOD_LIBRARY}) + endif (DARWIN) +endif (FMOD) + +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} + ) +check_message_template(${VIEWER_BINARY_NAME}) + +if (LLKDU_LIBRARY) + add_dependencies(${VIEWER_BINARY_NAME} ${LLKDU_LIBRARY}) +endif (LLKDU_LIBRARY) + +# add package files +file(GLOB EVENT_HOST_SCRIPT_GLOB_LIST + ${CMAKE_CURRENT_SOURCE_DIR}/../viewer_components/*.py) +list(APPEND EVENT_HOST_SCRIPTS ${EVENT_HOST_SCRIPT_GLOB_LIST}) + +set(PACKAGE OFF CACHE BOOL + "Add a package target that builds an installer package.") + +if (WINDOWS) + if(MSVC71) + set(release_flags "/MAP:Release/${VIEWER_BINARY_NAME}.map /MAPINFO:LINES") + else(MSVC71) + set(release_flags "/MAP:Release/${VIEWER_BINARY_NAME}.map") + endif(MSVC71) + + set_target_properties(${VIEWER_BINARY_NAME} + PROPERTIES + # *TODO -reenable this once we get server usage sorted out + #LINK_FLAGS "/debug /NODEFAULTLIB:LIBCMT /SUBSYSTEM:WINDOWS /INCLUDE:\"__tcmalloc\"" + LINK_FLAGS "/debug /NODEFAULTLIB:LIBCMT /SUBSYSTEM:WINDOWS" + LINK_FLAGS_DEBUG "/NODEFAULTLIB:\"LIBCMT;LIBCMTD;MSVCRT\" /INCREMENTAL:NO" + 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." + ) + + if(WINDOWS) + # Copy Win Libs... + # This happens at build time, not config time. We can't glob files in this cmake. + # *FIX:Mani Write a sub script to glob the files... + # *FIX:Mani Use actually dependencies rather than bulk copy. + add_custom_command( + TARGET ${VIEWER_BINARY_NAME} PRE_BUILD + COMMAND ${CMAKE_COMMAND} + ARGS + -E + copy_directory + ${SHARED_LIB_STAGING_DIR}/${CMAKE_CFG_INTDIR} + ${CMAKE_CURRENT_BINARY_DIR}/${CMAKE_CFG_INTDIR} + COMMENT "Copying staged dlls." + ) + + add_dependencies(${VIEWER_BINARY_NAME} stage_third_party_libs llcommon) + if(LLKDU_LIBRARY) + # kdu may not exist! + add_dependencies(${VIEWER_BINARY_NAME} llkdu) + endif(LLKDU_LIBRARY) + endif(WINDOWS) + + 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 + --configuration=${CMAKE_CFG_INTDIR} + --channel=${VIEWER_CHANNEL} + --login_channel=${VIEWER_LOGIN_CHANNEL} + --grid=${GRID} + --source=${CMAKE_CURRENT_SOURCE_DIR} + --artwork=${ARTWORK_DIR} + --build=${CMAKE_CURRENT_BINARY_DIR} + --dest=${CMAKE_CURRENT_BINARY_DIR}/${CMAKE_CFG_INTDIR} + --touch=${CMAKE_CURRENT_BINARY_DIR}/${CMAKE_CFG_INTDIR}/touched.bat + DEPENDS ${VIEWER_BINARY_NAME} ${CMAKE_CURRENT_SOURCE_DIR}/viewer_manifest.py + ) + + add_dependencies(${VIEWER_BINARY_NAME} SLPlugin media_plugin_quicktime media_plugin_webkit) + + if (PACKAGE) + add_custom_command( + OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/${CMAKE_CFG_INTDIR}/event_host.tar.bz2 + COMMAND ${PYTHON_EXECUTABLE} + ARGS + ${CMAKE_CURRENT_SOURCE_DIR}/event_host_manifest.py + ${CMAKE_CURRENT_SOURCE_DIR}/.. + ${CMAKE_CURRENT_BINARY_DIR} + ${CMAKE_CFG_INTDIR} + + DEPENDS + lleventhost + ${EVENT_HOST_SCRIPTS} + ${CMAKE_CURRENT_SOURCE_DIR}/event_host_manifest.py) + + add_custom_target(package ALL + DEPENDS + ${CMAKE_CFG_INTDIR}/touched.bat) + # temporarily disable packaging of event_host until hg subrepos get + # sorted out on the parabuild cluster... + #${CMAKE_CURRENT_BINARY_DIR}/${CMAKE_CFG_INTDIR}/event_host.tar.bz2) + add_dependencies(package windows-updater windows-crash-logger) + + + endif (PACKAGE) +endif (WINDOWS) + +target_link_libraries(${VIEWER_BINARY_NAME} + ${LLAUDIO_LIBRARIES} + ${LLCHARACTER_LIBRARIES} + ${LLIMAGE_LIBRARIES} + ${LLIMAGEJ2COJ_LIBRARIES} + ${LLINVENTORY_LIBRARIES} + ${LLMESSAGE_LIBRARIES} + ${LLPLUGIN_LIBRARIES} + ${LLPRIMITIVE_LIBRARIES} + ${LLRENDER_LIBRARIES} + ${FREETYPE_LIBRARIES} + ${LLUI_LIBRARIES} + ${LLVFS_LIBRARIES} + ${LLWINDOW_LIBRARIES} + ${LLXML_LIBRARIES} + ${LLXUIXML_LIBRARIES} + ${LSCRIPT_LIBRARIES} + ${LLMATH_LIBRARIES} + ${LLCOMMON_LIBRARIES} + ${NDOF_LIBRARY} + ${viewer_LIBRARIES} + ${BOOST_PROGRAM_OPTIONS_LIBRARY} + ${BOOST_REGEX_LIBRARY} + ${DBUSGLIB_LIBRARIES} + ${OPENGL_LIBRARIES} + ${FMODWRAPPER_LIBRARY} + ${OPENGL_LIBRARIES} + ${SDL_LIBRARY} + ${SMARTHEAP_LIBRARY} + ${UI_LIBRARIES} + ${WINDOWS_LIBRARIES} + ${XMLRPCEPI_LIBRARIES} + ${ELFIO_LIBRARIES} + ${LLLOGIN_LIBRARIES} + ${GOOGLE_PERFTOOLS_LIBRARIES} + ) + +build_version(viewer) + +set(ARTWORK_DIR ${CMAKE_CURRENT_SOURCE_DIR} CACHE PATH + "Path to artwork files.") + + +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 SecondLife-${ARCH}-${viewer_VERSION}) + + add_custom_command( + OUTPUT ${product}.tar.bz2 + COMMAND ${PYTHON_EXECUTABLE} + ARGS + ${CMAKE_CURRENT_SOURCE_DIR}/viewer_manifest.py + --grid=${GRID} + --channel=${VIEWER_CHANNEL} + --login_channel=${VIEWER_LOGIN_CHANNEL} + --installer_name=${product} + --arch=${ARCH} + --source=${CMAKE_CURRENT_SOURCE_DIR} + --artwork=${ARTWORK_DIR} + --build=${CMAKE_CURRENT_BINARY_DIR} + --dest=${CMAKE_CURRENT_BINARY_DIR}/packaged + --touch=${CMAKE_CURRENT_BINARY_DIR}/${CMAKE_CFG_INTDIR}/.${product}.touched + DEPENDS secondlife-stripped ${CMAKE_CURRENT_SOURCE_DIR}/viewer_manifest.py + ) + + add_dependencies(${VIEWER_BINARY_NAME} SLPlugin media_plugin_gstreamer010 media_plugin_webkit) + + if (NOT INSTALL) + add_custom_target(package ALL DEPENDS ${product}.tar.bz2) + add_dependencies(package linux-crash-logger-strip-target) + add_dependencies(package linux-updater-strip-target) + endif (NOT INSTALL) +endif (LINUX) + +if (DARWIN) + set(product "Second Life") + set_target_properties( + ${VIEWER_BINARY_NAME} + PROPERTIES + OUTPUT_NAME "${product}" + MACOSX_BUNDLE_INFO_STRING "info string - localize me" + MACOSX_BUNDLE_ICON_FILE "secondlife.icns" + MACOSX_BUNDLE_GUI_IDENTIFIER "Second Life" + MACOSX_BUNDLE_LONG_VERSION_STRING "ververver" + MACOSX_BUNDLE_BUNDLE_NAME "Second Life" + MACOSX_BUNDLE_SHORT_VERSION_STRING "asdf" + MACOSX_BUNDLE_BUNDLE_VERSION "asdf" + MACOSX_BUNDLE_COPYRIGHT "copyright linden lab 2007 - localize me and run me through a legal wringer" + ) + + add_custom_command( + TARGET ${VIEWER_BINARY_NAME} POST_BUILD + COMMAND ${PYTHON_EXECUTABLE} + ARGS + ${CMAKE_CURRENT_SOURCE_DIR}/viewer_manifest.py + --grid=${GRID} + --actions=copy + --configuration=${CMAKE_CFG_INTDIR} + --source=${CMAKE_CURRENT_SOURCE_DIR} + --artwork=${ARTWORK_DIR} + --build=${CMAKE_CURRENT_BINARY_DIR} + --dest=${CMAKE_CURRENT_BINARY_DIR}/${CMAKE_CFG_INTDIR}/${product}.app + DEPENDS ${VIEWER_BINARY_NAME} ${CMAKE_CURRENT_SOURCE_DIR}/viewer_manifest.py + ) + + add_dependencies(${VIEWER_BINARY_NAME} SLPlugin media_plugin_quicktime media_plugin_webkit) + + 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 + --grid=${GRID} + --configuration=${CMAKE_CFG_INTDIR} + --channel=${VIEWER_CHANNEL} + --login_channel=${VIEWER_LOGIN_CHANNEL} + --source=${CMAKE_CURRENT_SOURCE_DIR} + --artwork=${ARTWORK_DIR} + --build=${CMAKE_CURRENT_BINARY_DIR} + --dest=${CMAKE_CURRENT_BINARY_DIR}/${CMAKE_CFG_INTDIR}/${product}.app + --touch=${CMAKE_CURRENT_BINARY_DIR}/${CMAKE_CFG_INTDIR}/.${product}.touched + DEPENDS + ${CMAKE_CURRENT_SOURCE_DIR}/viewer_manifest.py + ) + + + add_custom_command( + TARGET package POST_BUILD + COMMAND ${PYTHON_EXECUTABLE} + ARGS + ${CMAKE_CURRENT_SOURCE_DIR}/viewer_manifest.py + --grid=${GRID} + --configuration=${CMAKE_CFG_INTDIR} + --channel=${VIEWER_CHANNEL} + --login_channel=${VIEWER_LOGIN_CHANNEL} + --source=${CMAKE_CURRENT_SOURCE_DIR} + --artwork=${ARTWORK_DIR} + --build=${CMAKE_CURRENT_BINARY_DIR} + --dest=${CMAKE_CURRENT_BINARY_DIR}/${CMAKE_CFG_INTDIR}/${product}.app + --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) + +# To add a viewer unit test, just add the test .cpp file below +# This creates a separate test project per file listed. +include(LLAddBuildTest) +SET(viewer_TEST_SOURCE_FILES + llagentaccess.cpp + lldateutil.cpp + llmediadataclient.cpp + llviewerhelputil.cpp + lllogininstance.cpp + ) +set_source_files_properties( + ${viewer_TEST_SOURCE_FILES} + PROPERTIES + LL_TEST_ADDITIONAL_SOURCE_FILES llviewerprecompiledheaders.cpp + ) +LL_ADD_PROJECT_UNIT_TESTS(${VIEWER_BINARY_NAME} "${viewer_TEST_SOURCE_FILES}") + +#set(TEST_DEBUG on) +set(test_sources llcapabilitylistener.cpp llviewerprecompiledheaders.cpp) +set(test_libs + ${LLMESSAGE_LIBRARIES} + ${WINDOWS_LIBRARIES} + ${LLVFS_LIBRARIES} + ${LLMATH_LIBRARIES} + ${LLCOMMON_LIBRARIES} + ${GOOGLEMOCK_LIBRARIES} + ) + +LL_ADD_INTEGRATION_TEST(llcapabilitylistener + "${test_sources}" + "${test_libs}" + ${PYTHON_EXECUTABLE} + "${CMAKE_SOURCE_DIR}/llmessage/tests/test_llsdmessage_peer.py" + ) + +#ADD_VIEWER_BUILD_TEST(llmemoryview viewer) + + +# Don't do these for DARWIN or LINUX here -- they're taken care of by viewer_manifest.py +if (WINDOWS) + add_custom_command( + TARGET ${VIEWER_BINARY_NAME} POST_BUILD + COMMAND ${CMAKE_COMMAND} + ARGS + -E + make_directory + ${CMAKE_CURRENT_BINARY_DIR}/${CMAKE_CFG_INTDIR}/llplugin + COMMENT "Creating llplugin dir." + ) + + 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." + ) + + #******************************* + # Copy media plugin support dlls + # Debug config runtime files required for the plugins + set(plugins_debug_src_dir "${CMAKE_SOURCE_DIR}/../libraries/i686-win32/lib/debug") + set(plugins_debug_files + libeay32.dll + qtcored4.dll + qtguid4.dll + qtnetworkd4.dll + qtopengld4.dll + qtwebkitd4.dll + ssleay32.dll + ) + copy_if_different( + ${plugins_debug_src_dir} + "${CMAKE_CURRENT_BINARY_DIR}/Debug/llplugin" + out_targets + ${plugins_debug_files} + ) + set(media_plugin_targets ${media_plugin_targets} ${out_targets}) + + # Release & ReleaseDebInfo config runtime files required for the plugins + set(plugins_release_src_dir "${CMAKE_SOURCE_DIR}/../libraries/i686-win32/lib/release") + set(plugins_release_files + libeay32.dll + qtcore4.dll + qtgui4.dll + qtnetwork4.dll + qtopengl4.dll + qtwebkit4.dll + ssleay32.dll + ) + copy_if_different( + ${plugins_release_src_dir} + "${CMAKE_CURRENT_BINARY_DIR}/Release/llplugin" + out_targets + ${plugins_release_files} + ) + set(media_plugin_targets ${media_plugin_targets} ${out_targets}) + + copy_if_different( + ${plugins_release_src_dir} + "${CMAKE_CURRENT_BINARY_DIR}/RelWithDebInfo/llplugin" + out_targets + ${plugins_release_files} + ) + set(media_plugin_targets ${media_plugin_targets} ${out_targets}) + + add_custom_target(copy_media_plugin_libs ALL + DEPENDS + ${media_plugin_targets} + ) + + add_custom_command( + TARGET ${VIEWER_BINARY_NAME} POST_BUILD + COMMAND ${CMAKE_COMMAND} + ARGS + -E + copy_directory + ${CMAKE_BINARY_DIR}/test_apps/llplugintest/${CMAKE_CFG_INTDIR}/imageformats + ${CMAKE_CURRENT_BINARY_DIR}/${CMAKE_CFG_INTDIR}/llplugin/imageformats + COMMENT "Copying llpluging imageformat libs." + ) + + add_dependencies(${VIEWER_BINARY_NAME} llmediaplugintest copy_media_plugin_libs) + +endif (WINDOWS) + |