1956 lines
54 KiB
CMake
1956 lines
54 KiB
CMake
# -*- cmake -*-
|
|
|
|
project(viewer)
|
|
|
|
include(00-Common)
|
|
include(Boost)
|
|
include(DBusGlib)
|
|
include(DirectX)
|
|
include(ELFIO)
|
|
if(FMODSTUDIO)
|
|
include(FMODSTUDIO)
|
|
endif(FMODSTUDIO)
|
|
if(FMODEX)
|
|
include(FMODEX)
|
|
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(LLPhysicsExtensions)
|
|
include(LLPlugin)
|
|
include(LLPrimitive)
|
|
include(LLRender)
|
|
include(LLUI)
|
|
include(LLVFS)
|
|
include(LLWindow)
|
|
include(LLXML)
|
|
#include(LScript)
|
|
include(Linking)
|
|
include(NDOF)
|
|
include(NVAPI)
|
|
include(StateMachine)
|
|
include(TemplateCheck)
|
|
include(UI)
|
|
include(ViewerMiscLibs)
|
|
include(GLOD)
|
|
include(LLAppearance)
|
|
|
|
if (WINDOWS)
|
|
set(CMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP)
|
|
include(InstallRequiredSystemLibraries)
|
|
endif (WINDOWS)
|
|
|
|
include_directories(
|
|
${CMAKE_SOURCE_DIR}/newview
|
|
${STATEMACHINE_INCLUDE_DIRS}
|
|
${DBUSGLIB_INCLUDE_DIRS}
|
|
${HUNSPELL_INCLUDE_DIR}
|
|
${ELFIO_INCLUDE_DIR}
|
|
${JSONCPP_INCLUDE_DIR}
|
|
${GLOD_INCLUDE_DIRS}
|
|
${LLAUDIO_INCLUDE_DIRS}
|
|
${LLCHARACTER_INCLUDE_DIRS}
|
|
${LLCOMMON_INCLUDE_DIRS}
|
|
${LLIMAGE_INCLUDE_DIRS}
|
|
${LLINVENTORY_INCLUDE_DIRS}
|
|
${LLMATH_INCLUDE_DIRS}
|
|
${LLMESSAGE_INCLUDE_DIRS}
|
|
${LLPHYSICSEXTENSIONS_INCLUDE_DIRS}
|
|
${LLPLUGIN_INCLUDE_DIRS}
|
|
${LLPRIMITIVE_INCLUDE_DIRS}
|
|
${LLRENDER_INCLUDE_DIRS}
|
|
${LLUI_INCLUDE_DIRS}
|
|
${LLVFS_INCLUDE_DIRS}
|
|
${LLWINDOW_INCLUDE_DIRS}
|
|
${LLXML_INCLUDE_DIRS}
|
|
${LLAPPEARANCE_INCLUDE_DIRS}
|
|
# ${LSCRIPT_INCLUDE_DIRS}
|
|
# ${LSCRIPT_INCLUDE_DIRS}/lscript_compile
|
|
)
|
|
|
|
set(viewer_SOURCE_FILES
|
|
NACLantispam.cpp
|
|
aihttpview.cpp
|
|
aixmllindengenepool.cpp
|
|
alfloaterregiontracker.cpp
|
|
aoremotectrl.cpp
|
|
ascentfloatercontactgroups.cpp
|
|
ascentkeyword.cpp
|
|
ascentprefschat.cpp
|
|
ascentprefssys.cpp
|
|
ascentprefsvan.cpp
|
|
awavefront.cpp
|
|
chatbar_as_cmdline.cpp
|
|
daeexport.cpp
|
|
floaterao.cpp
|
|
floaterlocalassetbrowse.cpp
|
|
floatervoicelicense.cpp
|
|
generichandlers.cpp
|
|
groupchatlistener.cpp
|
|
hbfloatergrouptitles.cpp
|
|
hippofloaterxml.cpp
|
|
hippogridmanager.cpp
|
|
hippolimits.cpp
|
|
hippopanelgrids.cpp
|
|
importtracker.cpp
|
|
jcfloaterareasearch.cpp
|
|
lffloaterinvpanel.cpp
|
|
lfsimfeaturehandler.cpp
|
|
lggdicdownload.cpp
|
|
lgghunspell_wrapper.cpp
|
|
llaccountingcostmanager.cpp
|
|
llaisapi.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
|
|
llassetuploadqueue.cpp
|
|
llassetuploadresponders.cpp
|
|
llattachmentsmgr.cpp
|
|
llaudiosourcevo.cpp
|
|
llautoreplace.cpp
|
|
llavataractions.cpp
|
|
llavatarpropertiesprocessor.cpp
|
|
llbox.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
|
|
llcrashlogger.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
|
|
lldrawpoolmaterials.cpp
|
|
lldrawpoolsimple.cpp
|
|
lldrawpoolsky.cpp
|
|
lldrawpoolterrain.cpp
|
|
lldrawpooltree.cpp
|
|
lldrawpoolwater.cpp
|
|
lldrawpoolwlsky.cpp
|
|
lldroptarget.cpp
|
|
lldynamictexture.cpp
|
|
llemote.cpp
|
|
llenvmanager.cpp
|
|
llestateinfomodel.cpp
|
|
lleventinfo.cpp
|
|
lleventnotifier.cpp
|
|
lleventpoll.cpp
|
|
llexternaleditor.cpp
|
|
llface.cpp
|
|
llfasttimerview.cpp
|
|
llfeaturemanager.cpp
|
|
llfirstuse.cpp
|
|
llflexibleobject.cpp
|
|
llfloaterabout.cpp
|
|
llfloateractivespeakers.cpp
|
|
llfloaterauction.cpp
|
|
llfloaterautoreplacesettings.cpp
|
|
llfloateravatar.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
|
|
llfloaterbvhpreview.cpp
|
|
llfloatercamera.cpp
|
|
llfloaterchat.cpp
|
|
llfloaterchatterbox.cpp
|
|
llfloaterclassified.cpp
|
|
llfloatercolorpicker.cpp
|
|
llfloatercustomize.cpp
|
|
llfloaterdaycycle.cpp
|
|
llfloaterdestinations.cpp
|
|
llfloaterdirectory.cpp
|
|
llfloaterdisplayname.cpp
|
|
llfloatereditui.cpp
|
|
llfloaterenvsettings.cpp
|
|
llfloaterevent.cpp
|
|
llfloaterexploreanimations.cpp
|
|
llfloaterexploresounds.cpp
|
|
llfloaterfeed.cpp
|
|
llfloaterfonttest.cpp
|
|
llfloaterfriends.cpp
|
|
llfloatergesture.cpp
|
|
llfloatergodtools.cpp
|
|
llfloatergroupbulkban.cpp
|
|
llfloatergroupinfo.cpp
|
|
llfloatergroupinvite.cpp
|
|
llfloatergroups.cpp
|
|
llfloaterhandler.cpp
|
|
llfloaterhtmlcurrency.cpp
|
|
llfloaterhtmlsimple.cpp
|
|
llfloaterhud.cpp
|
|
llfloaterimagepreview.cpp
|
|
llfloaterinspect.cpp
|
|
llfloaterjoystick.cpp
|
|
llfloaterland.cpp
|
|
llfloaterlandholdings.cpp
|
|
llfloaterlandmark.cpp
|
|
llfloatermap.cpp
|
|
llfloatermediafilter.cpp
|
|
llfloatermediasettings.cpp
|
|
llfloatermemleak.cpp
|
|
llfloatermessagelog.cpp
|
|
llfloatermodelpreview.cpp
|
|
llfloatermodeluploadbase.cpp
|
|
llfloatermute.cpp
|
|
llfloaternamedesc.cpp
|
|
llfloaternotificationsconsole.cpp
|
|
llfloaterobjectiminfo.cpp
|
|
llfloaterobjectweights.cpp
|
|
llfloateropenobject.cpp
|
|
llfloateroutbox.cpp
|
|
llfloaterparcel.cpp
|
|
llfloaterpathfindingcharacters.cpp
|
|
llfloaterpathfindinglinksets.cpp
|
|
llfloaterpathfindingobjects.cpp
|
|
llfloaterperms.cpp
|
|
llfloaterpostcard.cpp
|
|
llfloaterpostprocess.cpp
|
|
llfloaterpreference.cpp
|
|
llfloaterproperties.cpp
|
|
llfloaterregiondebugconsole.cpp
|
|
llfloaterregioninfo.cpp
|
|
llfloaterregionrestarting.cpp
|
|
llfloaterreporter.cpp
|
|
llfloaterscriptdebug.cpp
|
|
llfloaterscriptlimits.cpp
|
|
llfloatersearch.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
|
|
llfloatervoiceeffect.cpp
|
|
llfloaterwater.cpp
|
|
llfloaterwebcontent.cpp
|
|
llfloaterwebprofile.cpp
|
|
llfloaterwhitelistentry.cpp
|
|
llfloaterwindlight.cpp
|
|
llfloaterworldmap.cpp
|
|
llfolderview.cpp
|
|
llfolderviewitem.cpp
|
|
llfollowcam.cpp
|
|
llframestats.cpp
|
|
llframestatview.cpp
|
|
llgesturemgr.cpp
|
|
llgiveinventory.cpp
|
|
llgivemoney.cpp
|
|
llglsandbox.cpp
|
|
llgroupactions.cpp
|
|
llgroupmgr.cpp
|
|
llgroupnotify.cpp
|
|
llhomelocationresponder.cpp
|
|
llhoverview.cpp
|
|
llhttpretrypolicy.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
|
|
llinventorybridge.cpp
|
|
llinventoryclipboard.cpp
|
|
llinventoryfilter.cpp
|
|
llinventoryfunctions.cpp
|
|
llinventoryicon.cpp
|
|
llinventorymodel.cpp
|
|
llinventorymodelbackgroundfetch.cpp
|
|
llinventoryobserver.cpp
|
|
llinventorypanel.cpp
|
|
lljoystickbutton.cpp
|
|
lllandmarklist.cpp
|
|
lllogchat.cpp
|
|
llloginhandler.cpp
|
|
llmainlooprepeater.cpp
|
|
llmakeoutfitdialog.cpp
|
|
llmanip.cpp
|
|
llmaniprotate.cpp
|
|
llmanipscale.cpp
|
|
llmaniptranslate.cpp
|
|
llmapresponders.cpp
|
|
llmarketplacefunctions.cpp
|
|
llmarketplacenotifications.cpp
|
|
llmaterialmgr.cpp
|
|
llmediactrl.cpp
|
|
llmediadataclient.cpp
|
|
llmediafilter.cpp
|
|
llmediaremotectrl.cpp
|
|
llmenucommands.cpp
|
|
llmenuoptionpathfindingrebakenavmesh.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
|
|
llpaneldirbrowser.cpp
|
|
llpaneldirclassified.cpp
|
|
llpaneldirevents.cpp
|
|
llpaneldirfind.cpp
|
|
llpaneldirgroups.cpp
|
|
llpaneldirland.cpp
|
|
llpaneldirpeople.cpp
|
|
llpaneldirplaces.cpp
|
|
llpaneldirpopular.cpp
|
|
llpaneldisplay.cpp
|
|
llpaneleditwearable.cpp
|
|
llpanelevent.cpp
|
|
llpanelface.cpp
|
|
llpanelgeneral.cpp
|
|
llpanelgroup.cpp
|
|
llpanelgroupbulk.cpp
|
|
llpanelgroupbulkban.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
|
|
llpanelmarketplaceoutboxinventory.cpp
|
|
llpanelmediasettingsgeneral.cpp
|
|
llpanelmediasettingspermissions.cpp
|
|
llpanelmediasettingssecurity.cpp
|
|
llpanelnearbymedia.cpp
|
|
llpanelmorph.cpp
|
|
llpanelmsgs.cpp
|
|
llpanelnetwork.cpp
|
|
llpanelobject.cpp
|
|
llpanelobjectinventory.cpp
|
|
llpanelpermissions.cpp
|
|
llpanelpick.cpp
|
|
llpanelplace.cpp
|
|
llpanelprimmediacontrols.cpp
|
|
llpanelprofile.cpp
|
|
llpanelskins.cpp
|
|
llpanelvoicedevicesettings.cpp
|
|
llpanelvoiceeffect.cpp
|
|
llpanelvolume.cpp
|
|
llpanelweb.cpp
|
|
llparcelselection.cpp
|
|
llparticipantlist.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
|
|
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
|
|
llshareavatarhandler.cpp
|
|
llsky.cpp
|
|
llslurl.cpp
|
|
llspatialpartition.cpp
|
|
llspeakers.cpp
|
|
llsprite.cpp
|
|
llstartup.cpp
|
|
llstatusbar.cpp
|
|
llstylemap.cpp
|
|
llsurface.cpp
|
|
llsurfacepatch.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
|
|
llurlwhitelist.cpp
|
|
lluserauth.cpp
|
|
llvectorperfoptions.cpp
|
|
llvelocitybar.cpp
|
|
llviewchildren.cpp
|
|
llviewerassetstats.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
|
|
llviewermediafocus.cpp
|
|
llviewermenu.cpp
|
|
llviewermenufile.cpp
|
|
llviewermessage.cpp
|
|
llviewernetwork.cpp
|
|
llviewerobject.cpp
|
|
llviewerobjectbackup.cpp
|
|
llviewerobjectlist.cpp
|
|
llvieweroctree.cpp
|
|
llviewerparcelmedia.cpp
|
|
llviewerparcelmediaautoplay.cpp
|
|
llviewerparcelmgr.cpp
|
|
llviewerparceloverlay.cpp
|
|
llviewerpartsim.cpp
|
|
llviewerpartsource.cpp
|
|
llviewerpluginmanager.cpp
|
|
llviewerregion.cpp
|
|
llviewershadermgr.cpp
|
|
llviewerstats.cpp
|
|
llviewerstatsrecorder.cpp
|
|
llviewertexlayer.cpp
|
|
llviewertexteditor.cpp
|
|
llviewertexture.cpp
|
|
llviewertextureanim.cpp
|
|
llviewertexturelist.cpp
|
|
llviewerthrottle.cpp
|
|
llviewerwearable.cpp
|
|
llviewerwindow.cpp
|
|
llvlcomposition.cpp
|
|
llvlmanager.cpp
|
|
llvoavatar.cpp
|
|
llvoavatarself.cpp
|
|
llvocache.cpp
|
|
llvoclouds.cpp
|
|
llvograss.cpp
|
|
llvoground.cpp
|
|
llvoicecallhandler.cpp
|
|
llvoicechannel.cpp
|
|
llvoiceclient.cpp
|
|
llvoiceremotectrl.cpp
|
|
llvoicevisualizer.cpp
|
|
llvoicevivox.cpp
|
|
llvoinventorylistener.cpp
|
|
llvopartgroup.cpp
|
|
llvosky.cpp
|
|
llvosurfacepatch.cpp
|
|
llvotree.cpp
|
|
llvovolume.cpp
|
|
llvowater.cpp
|
|
llvowlsky.cpp
|
|
llwatchdog.cpp
|
|
llwaterparammanager.cpp
|
|
llwaterparamset.cpp
|
|
llwearablelist.cpp
|
|
llweb.cpp
|
|
llwebprofile.cpp
|
|
llwind.cpp
|
|
llwlanimator.cpp
|
|
llwldaycycle.cpp
|
|
llwlhandlers.cpp
|
|
llwlparammanager.cpp
|
|
llwlparamset.cpp
|
|
llworld.cpp
|
|
llworldmap.cpp
|
|
llworldmapmessage.cpp
|
|
llworldmapview.cpp
|
|
llworldmipmap.cpp
|
|
llxmlrpcresponder.cpp
|
|
m7wlinterface.cpp
|
|
pipeline.cpp
|
|
qtoolalign.cpp
|
|
rlvactions.cpp
|
|
rlvcommon.cpp
|
|
rlvextensions.cpp
|
|
rlvfloaters.cpp
|
|
rlvhandler.cpp
|
|
rlvhelper.cpp
|
|
rlvinventory.cpp
|
|
rlvlocks.cpp
|
|
rlvui.cpp
|
|
scriptcounter.cpp
|
|
sgmemstat.cpp
|
|
sgversion.cpp
|
|
shcommandhandler.cpp
|
|
shfloatermediaticker.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
|
|
|
|
NACLantispam.h
|
|
aihttpview.h
|
|
aixmllindengenepool.h
|
|
alfloaterregiontracker.h
|
|
aoremotectrl.h
|
|
ascentfloatercontactgroups.h
|
|
ascentkeyword.h
|
|
ascentprefschat.h
|
|
ascentprefssys.h
|
|
ascentprefsvan.h
|
|
awavefront.h
|
|
chatbar_as_cmdline.h
|
|
daeexport.h
|
|
floaterao.h
|
|
floaterlocalassetbrowse.h
|
|
floatervoicelicense.h
|
|
generichandlers.h
|
|
groupchatlistener.h
|
|
hbfloatergrouptitles.h
|
|
hippofloaterxml.h
|
|
hippogridmanager.h
|
|
hippolimits.h
|
|
hippopanelgrids.h
|
|
importtracker.h
|
|
jcfloaterareasearch.h
|
|
lffloaterinvpanel.h
|
|
lfsimfeaturehandler.h
|
|
lggdicdownload.h
|
|
lgghunspell_wrapper.h
|
|
llaccountingcostmanager.h
|
|
llaisapi.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
|
|
llassetuploadqueue.h
|
|
llassetuploadresponders.h
|
|
llattachmentsmgr.h
|
|
llaudiosourcevo.h
|
|
llautoreplace.h
|
|
llavataractions.h
|
|
llavatarpropertiesprocessor.h
|
|
llbox.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
|
|
llcrashlogger.h
|
|
llcurrencyuimanager.h
|
|
llcylinder.h
|
|
lldaycyclemanager.h
|
|
lldebugmessagebox.h
|
|
lldebugview.h
|
|
lldelayedgestureerror.h
|
|
lldrawable.h
|
|
lldrawpool.h
|
|
lldrawpoolalpha.h
|
|
lldrawpoolavatar.h
|
|
lldrawpoolbump.h
|
|
lldrawpoolmaterials.h
|
|
lldrawpoolground.h
|
|
lldrawpoolsimple.h
|
|
lldrawpoolsky.h
|
|
lldrawpoolterrain.h
|
|
lldrawpooltree.h
|
|
lldrawpoolwater.h
|
|
lldrawpoolwlsky.h
|
|
lldroptarget.h
|
|
lldynamictexture.h
|
|
llemote.h
|
|
llenvmanager.h
|
|
llestateinfomodel.h
|
|
lleventinfo.h
|
|
lleventnotifier.h
|
|
lleventpoll.h
|
|
llexternaleditor.h
|
|
llface.h
|
|
llfasttimerview.h
|
|
llfeaturemanager.h
|
|
llfirstuse.h
|
|
llflexibleobject.h
|
|
llfloaterabout.h
|
|
llfloateractivespeakers.h
|
|
llfloaterauction.h
|
|
llfloaterautoreplacesettings.h
|
|
llfloateravatar.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
|
|
llfloaterbvhpreview.h
|
|
llfloatercamera.h
|
|
llfloaterchat.h
|
|
llfloaterchatterbox.h
|
|
llfloaterclassified.h
|
|
llfloatercolorpicker.h
|
|
llfloatercustomize.h
|
|
llfloaterdaycycle.h
|
|
llfloaterdestinations.h
|
|
llfloaterdirectory.h
|
|
llfloaterdisplayname.h
|
|
llfloatereditui.h
|
|
llfloaterenvsettings.h
|
|
llfloaterevent.h
|
|
llfloaterexploreanimations.h
|
|
llfloaterexploresounds.h
|
|
llfloaterfeed.h
|
|
llfloaterfonttest.h
|
|
llfloaterfriends.h
|
|
llfloatergesture.h
|
|
llfloatergodtools.h
|
|
llfloatergroupbulkban.h
|
|
llfloatergroupinfo.h
|
|
llfloatergroupinvite.h
|
|
llfloatergroups.h
|
|
llfloaterhandler.h
|
|
llfloaterhtmlcurrency.h
|
|
llfloaterhtmlsimple.h
|
|
llfloaterhud.h
|
|
llfloaterimagepreview.h
|
|
llfloaterinspect.h
|
|
llfloaterjoystick.h
|
|
llfloaterland.h
|
|
llfloaterlandholdings.h
|
|
llfloaterlandmark.h
|
|
llfloatermap.h
|
|
llfloatermediafilter.h
|
|
llfloatermediasettings.h
|
|
llfloatermemleak.h
|
|
llfloatermessagelog.h
|
|
llfloatermodelpreview.h
|
|
llfloatermodeluploadbase.h
|
|
llfloatermute.h
|
|
llfloaternamedesc.h
|
|
llfloaternotificationsconsole.h
|
|
llfloaterobjectiminfo.h
|
|
llfloaterobjectweights.h
|
|
llfloateropenobject.h
|
|
llfloateroutbox.h
|
|
llfloaterparcel.h
|
|
llfloaterpathfindingcharacters.h
|
|
llfloaterpathfindinglinksets.h
|
|
llfloaterpathfindingobjects.h
|
|
llfloaterperms.h
|
|
llfloaterpostcard.h
|
|
llfloaterpostprocess.h
|
|
llfloaterpreference.h
|
|
llfloaterproperties.h
|
|
llfloaterregiondebugconsole.h
|
|
llfloaterregioninfo.h
|
|
llfloaterregionrestarting.h
|
|
llfloaterreporter.h
|
|
llfloaterscriptdebug.h
|
|
llfloaterscriptlimits.h
|
|
llfloatersearch.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
|
|
llfloatervoiceeffect.h
|
|
llfloaterwater.h
|
|
llfloaterwebcontent.h
|
|
llfloaterwebprofile.h
|
|
llfloaterwhitelistentry.h
|
|
llfloaterwindlight.h
|
|
llfloaterworldmap.h
|
|
llfolderview.h
|
|
llfoldervieweventlistener.h
|
|
llfolderviewitem.h
|
|
llfollowcam.h
|
|
llframestats.h
|
|
llframestatview.h
|
|
llgesturemgr.h
|
|
llgiveinventory.h
|
|
llgivemoney.h
|
|
llgroupactions.h
|
|
llgroupmgr.h
|
|
llgroupnotify.h
|
|
llhttpretrypolicy.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
|
|
llinventorybridge.h
|
|
llinventoryclipboard.h
|
|
llinventoryfilter.h
|
|
llinventoryfunctions.h
|
|
llinventoryicon.h
|
|
llinventorymodel.h
|
|
llinventorymodelbackgroundfetch.h
|
|
llinventoryobserver.h
|
|
llinventorypanel.h
|
|
lljoystickbutton.h
|
|
lllandmarklist.h
|
|
lllightconstants.h
|
|
lllogchat.h
|
|
llloginhandler.h
|
|
llmainlooprepeater.h
|
|
llmakeoutfitdialog.h
|
|
llmanip.h
|
|
llmaniprotate.h
|
|
llmanipscale.h
|
|
llmaniptranslate.h
|
|
llmapresponders.h
|
|
llmarketplacefunctions.h
|
|
llmarketplacenotifications.h
|
|
llmaterialmgr.h
|
|
llmediactrl.h
|
|
llmediadataclient.h
|
|
llmediafilter.h
|
|
llmediaremotectrl.h
|
|
llmenucommands.h
|
|
llmenuoptionpathfindingrebakenavmesh.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
|
|
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
|
|
llpanelgroupbulk.h
|
|
llpanelgroupbulkban.h
|
|
llpanelgroupbulkimpl.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
|
|
llpanelmarketplaceoutboxinventory.h
|
|
llpanelmediasettingsgeneral.h
|
|
llpanelmediasettingspermissions.h
|
|
llpanelmediasettingssecurity.h
|
|
llpanelnearbymedia.h
|
|
llpanelmorph.h
|
|
llpanelmsgs.h
|
|
llpanelnetwork.h
|
|
llpanelobject.h
|
|
llpanelobjectinventory.h
|
|
llpanelpermissions.h
|
|
llpanelpick.h
|
|
llpanelplace.h
|
|
llpanelprimmediacontrols.h
|
|
llpanelprofile.h
|
|
llpanelskins.h
|
|
llpanelvoicedevicesettings.h
|
|
llpanelvoiceeffect.h
|
|
llpanelvolume.h
|
|
llpanelweb.h
|
|
llparcelselection.h
|
|
llparticipantlist.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
|
|
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
|
|
llsimplestat.h
|
|
llsky.h
|
|
llslurl.h
|
|
llspatialpartition.h
|
|
llspeakers.h
|
|
llsprite.h
|
|
llstartup.h
|
|
llstatusbar.h
|
|
llstylemap.h
|
|
llsurface.h
|
|
llsurfacepatch.h
|
|
lltable.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
|
|
llurlwhitelist.h
|
|
lluserauth.h
|
|
llvectorperfoptions.h
|
|
llvelocitybar.h
|
|
llviewchildren.h
|
|
llviewerassetstats.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
|
|
llviewermediafocus.h
|
|
llviewermenu.h
|
|
llviewermenufile.h
|
|
llviewermessage.h
|
|
llviewernetwork.h
|
|
llviewerobject.h
|
|
llviewerobjectbackup.h
|
|
llviewerobjectlist.h
|
|
llvieweroctree.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
|
|
llviewertexlayer.h
|
|
llviewertexteditor.h
|
|
llviewertexture.h
|
|
llviewertextureanim.h
|
|
llviewertexturelist.h
|
|
llviewerthrottle.h
|
|
llviewerwearable.h
|
|
llviewerwindow.h
|
|
llvlcomposition.h
|
|
llvlmanager.h
|
|
llvoavatar.h
|
|
llvoavatarself.h
|
|
llvocache.h
|
|
llvoclouds.h
|
|
llvograss.h
|
|
llvoground.h
|
|
llvoicechannel.h
|
|
llvoiceclient.h
|
|
llvoiceremotectrl.h
|
|
llvoicevisualizer.h
|
|
llvoicevivox.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
|
|
llwearablelist.h
|
|
llweb.h
|
|
llwebprofile.h
|
|
llwind.h
|
|
llwindebug.h
|
|
llwlanimator.h
|
|
llwldaycycle.h
|
|
llwlhandlers.h
|
|
llwlparammanager.h
|
|
llwlparamset.h
|
|
llworld.h
|
|
llworldmap.h
|
|
llworldmapmessage.h
|
|
llworldmapview.h
|
|
llworldmipmap.h
|
|
llxmlrpcresponder.h
|
|
m7wlinterface.h
|
|
macmain.h
|
|
pipeline.h
|
|
qtoolalign.h
|
|
rlvactions.h
|
|
rlvcommon.h
|
|
rlvdefines.h
|
|
rlvextensions.h
|
|
rlvfloaters.h
|
|
rlvhandler.h
|
|
rlvhelper.h
|
|
rlvinventory.h
|
|
rlvlocks.h
|
|
rlvui.h
|
|
roles_constants.h
|
|
scriptcounter.h
|
|
sgmemstat.h
|
|
sgversion.h
|
|
shcommandhandler.h
|
|
shfloatermediaticker.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}_icon.icns
|
|
macview.r
|
|
gpu_table.txt
|
|
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
|
|
res/arrow.cur
|
|
res/arrowcop.cur
|
|
res/arrowcopmulti.cur
|
|
res/arrowdrag.cur
|
|
res/circleandline.cur
|
|
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/${VIEWER_BRANDING_ID}_icon.ico
|
|
res/resource.h
|
|
res/toolpickobject.cur
|
|
res/toolpickobject2.cur
|
|
res/toolpickobject3.cur
|
|
res/toolpipette.cur
|
|
res/toolbuy.cur
|
|
res/toolopen.cur
|
|
res/toolpay.cur
|
|
res/toolsit.cur
|
|
)
|
|
|
|
set_source_files_properties(${viewer_RESOURCE_FILES}
|
|
PROPERTIES HEADER_FILE_ONLY TRUE)
|
|
|
|
set(viewer_RESOURCE_FILES
|
|
res/resource.h
|
|
res/viewerRes.rc
|
|
${viewer_RESOURCE_FILES}
|
|
)
|
|
|
|
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
|
|
Wbemuuid
|
|
winspool
|
|
)
|
|
|
|
find_library(DEBUG_INTEL_MEMOPS_LIBRARY ll_intel_memops
|
|
PATHS
|
|
${LIBS_PREBUILT_DIR}/lib/debug
|
|
${LIBS_PREBUILT_LEGACY_DIR}/lib/debug
|
|
"${QUICKTIME_SDK_DIR}\\libraries"
|
|
)
|
|
|
|
find_library(RELEASE_INTEL_MEMOPS_LIBRARY ll_intel_memops
|
|
PATHS
|
|
${LIBS_PREBUILT_DIR}/lib/release
|
|
${LIBS_PREBUILT_LEGACY_DIR}/lib/release
|
|
"${QUICKTIME_SDK_DIR}\\libraries"
|
|
)
|
|
|
|
if (DEBUG_INTEL_MEMOPS_LIBRARY AND RELEASE_INTEL_MEMOPS_LIBRARY)
|
|
list(APPEND viewer_LIBRARIES optimized ${RELEASE_INTEL_MEMOPS_LIBRARY})
|
|
list(APPEND viewer_LIBRARIES debug ${DEBUG_INTEL_MEMOPS_LIBRARY})
|
|
mark_as_advanced(RELEASE_INTEL_MEMOPS_LIBRARY)
|
|
mark_as_advanced(DEBUG_INTEL_MEMOPS_LIBRARY)
|
|
endif (DEBUG_INTEL_MEMOPS_LIBRARY AND RELEASE_INTEL_MEMOPS_LIBRARY)
|
|
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.xml
|
|
app_settings/keysZQSD.xml
|
|
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})
|
|
|
|
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)
|
|
|
|
list(APPEND viewer_SOURCE_FILES ${viewer_CHARACTER_FILES})
|
|
|
|
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)
|
|
|
|
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)
|
|
|
|
set(PACKAGE OFF CACHE BOOL
|
|
"Add a package_viewer target that builds an installer package.")
|
|
|
|
if(FMOD_LIBRARY_RELEASE)
|
|
get_filename_component(fmod_lib_rel_name ${FMOD_LIBRARY_RELEASE} NAME)
|
|
get_filename_component(fmod_lib_deb_name ${FMOD_LIBRARY_DEBUG} NAME)
|
|
add_custom_command(OUTPUT fmod_lib.marker
|
|
COMMENT "Copying fmod library to executable directory"
|
|
COMMAND ${CMAKE_COMMAND} -E copy_if_different "$<$<NOT:$<CONFIG:debug>>:${FMOD_LIBRARY_RELEASE}>$<$<CONFIG:debug>:${FMOD_LIBRARY_DEBUG}>" "${CMAKE_CFG_INTDIR}/$<$<NOT:$<CONFIG:debug>>:${fmod_lib_rel_name}>$<$<CONFIG:debug>:${fmod_lib_deb_name}>"
|
|
DEPENDS "${FMOD_LIBRARY_RELEASE}")
|
|
add_custom_target(fmod_lib_copy DEPENDS fmod_lib.marker prepare)
|
|
if(DARWIN AND FMOD_EXTERNAL_LIB)
|
|
add_custom_command(OUTPUT fmod_lib_install.marker
|
|
COMMAND install_name_tool -id "@executable_path/../Resources/$<$<NOT:$<CONFIG:debug>>:${fmod_lib_rel_name}>$<$<CONFIG:debug>:${FMOD_LIBRARY_DEBUG}>" "${CMAKE_CFG_INTDIR}/$<$<NOT:$<CONFIG:debug>>:${fmod_lib_rel_name}>$<$<CONFIG:debug>:${fmod_lib_deb_name}>"
|
|
DEPENDS fmod_lib.marker)
|
|
add_dependencies(fmod_lib_copy fmod_lib_install.marker)
|
|
endif(DARWIN AND FMOD_EXTERNAL_LIB)
|
|
add_dependencies(${VIEWER_BINARY_NAME} fmod_lib_copy)
|
|
|
|
#viewer_manifest.py needs these libraries (for now its all dylib)
|
|
if(MANIFEST_LIBRARIES)
|
|
set(MANIFEST_LIBRARIES ${MANIFEST_LIBRARIES}|optimized ${fmod_lib_rel_name}|debug ${fmod_lib_deb_name})
|
|
else(MANIFEST_LIBRARIES)
|
|
set(MANIFEST_LIBRARIES optimized ${fmod_lib_rel_name}|debug ${fmod_lib_deb_name})
|
|
endif(MANIFEST_LIBRARIES)
|
|
|
|
if(WINDOWS) #If windows, fmod_lib_<config> points to a dll. The correct .lib needs to be linked (but copying is not necessary)
|
|
set(EXTRA_LINKER_FLAGS_RELEASE "/DELAYLOAD:${fmod_lib_rel_name}")
|
|
set(EXTRA_LINKER_FLAGS_DEBUG "/DELAYLOAD:${fmod_lib_deb_name}")
|
|
endif(WINDOWS)
|
|
list(APPEND viewer_LIBRARIES optimized "${FMOD_LINK_LIBRARY_RELEASE}" debug "${FMOD_LINK_LIBRARY_DEBUG}" )
|
|
endif(FMOD_LIBRARY_RELEASE)
|
|
|
|
if (WINDOWS)
|
|
set(release_flags "/MAP")
|
|
|
|
set_target_properties(${VIEWER_BINARY_NAME}
|
|
PROPERTIES
|
|
LINK_FLAGS "/debug /NODEFAULTLIB:LIBCMT /SUBSYSTEM:WINDOWS ${GOOGLE_PERFTOOLS_LINKER_FLAGS}"
|
|
LINK_FLAGS_DEBUG "/NODEFAULTLIB:\"LIBCMT;LIBCMTD;MSVCRT\" ${EXTRA_LINKER_FLAGS_DEBUG}"
|
|
LINK_FLAGS_RELEASE "${release_flags} ${EXTRA_LINKER_FLAGS_RELEASE}"
|
|
LINK_FLAGS_RELWITHDEBINFO "${release_flags} ${EXTRA_LINKER_FLAGS_RELEASE}"
|
|
)
|
|
|
|
# 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 (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
|
|
--arch=${ARCH}
|
|
--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
|
|
--extra_libraries="${MANIFEST_LIBRARIES}"
|
|
DEPENDS
|
|
${VIEWER_BINARY_NAME}
|
|
${CMAKE_CURRENT_SOURCE_DIR}/viewer_manifest.py
|
|
)
|
|
|
|
add_custom_command(
|
|
OUTPUT ${CMAKE_CFG_INTDIR}/copy_touched.bat
|
|
COMMAND ${PYTHON_EXECUTABLE}
|
|
ARGS
|
|
${CMAKE_CURRENT_SOURCE_DIR}/viewer_manifest.py
|
|
--arch=${ARCH}
|
|
--artwork=${ARTWORK_DIR}
|
|
--actions=copy
|
|
--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}/copy_touched.bat
|
|
--extra_libraries="${MANIFEST_LIBRARIES}"
|
|
DEPENDS
|
|
${VIEWER_BINARY_NAME}
|
|
${CMAKE_CURRENT_SOURCE_DIR}/viewer_manifest.py
|
|
COMMENT "Performing viewer_manifest copy"
|
|
)
|
|
|
|
add_dependencies(${VIEWER_BINARY_NAME} SLPlugin media_plugin_quicktime media_plugin_webkit basic_plugin_filepicker)
|
|
|
|
if(WORD_SIZE EQUAL 32)
|
|
add_dependencies(${VIEWER_BINARY_NAME} winmm_shim)
|
|
endif(WORD_SIZE EQUAL 32)
|
|
|
|
if (PACKAGE)
|
|
add_custom_target(package_viewer ALL DEPENDS ${CMAKE_CFG_INTDIR}/touched.bat)
|
|
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}
|
|
${STATEMACHINE_LIBRARIES}
|
|
${LLPRIMITIVE_LIBRARIES}
|
|
${LLRENDER_LIBRARIES}
|
|
${FREETYPE_LIBRARIES}
|
|
${LLUI_LIBRARIES}
|
|
${LLVFS_LIBRARIES}
|
|
${LLWINDOW_LIBRARIES}
|
|
${LLXML_LIBRARIES}
|
|
# ${LSCRIPT_LIBRARIES}
|
|
${LLMATH_LIBRARIES}
|
|
${LLCOMMON_LIBRARIES}
|
|
${NDOF_LIBRARY}
|
|
${NVAPI_LIBRARY}
|
|
${viewer_LIBRARIES}
|
|
${Boost_CONTEXT_LIBRARY}
|
|
${Boost_FILESYSTEM_LIBRARY}
|
|
${Boost_PROGRAM_OPTIONS_LIBRARY}
|
|
${Boost_REGEX_LIBRARY}
|
|
${Boost_SYSTEM_LIBRARY}
|
|
${Boost_DATE_TIME_LIBRARY}
|
|
${DBUSGLIB_LIBRARIES}
|
|
${OPENGL_LIBRARIES}
|
|
${GLOD_LIBRARIES}
|
|
${APRUTIL_LIBRARIES}
|
|
${OPENGL_LIBRARIES}
|
|
${JSONCPP_LIBRARIES}
|
|
${SDL_LIBRARY}
|
|
${SMARTHEAP_LIBRARY}
|
|
${UI_LIBRARIES}
|
|
${WINDOWS_LIBRARIES}
|
|
${XMLRPCEPI_LIBRARIES}
|
|
${ELFIO_LIBRARIES}
|
|
${HUNSPELL_LIBRARY}
|
|
${LLPHYSICSEXTENSIONS_LIBRARIES}
|
|
${LLAPPEARANCE_LIBRARIES}
|
|
)
|
|
|
|
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}-${${ROOT_PROJECT_NAME}_VERSION})
|
|
|
|
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
|
|
--extra_libraries="${MANIFEST_LIBRARIES}"
|
|
DEPENDS
|
|
secondlife-stripped
|
|
${CMAKE_CURRENT_SOURCE_DIR}/viewer_manifest.py
|
|
)
|
|
|
|
add_custom_command(
|
|
OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/${CMAKE_CFG_INTDIR}/.${product}.copy_touched
|
|
COMMAND ${PYTHON_EXECUTABLE}
|
|
ARGS
|
|
${CMAKE_CURRENT_SOURCE_DIR}/viewer_manifest.py
|
|
--arch=${ARCH}
|
|
--actions=copy
|
|
--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}
|
|
--extra_libraries="${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)
|
|
add_custom_target(copy_l_viewer_manifest ALL DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/${CMAKE_CFG_INTDIR}/.${product}.copy_touched)
|
|
|
|
if (PACKAGE)
|
|
add_custom_target(package_viewer ALL DEPENDS ${product}.tar.bz2)
|
|
add_dependencies(package_viewer copy_l_viewer_manifest)
|
|
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}_icon.icns"
|
|
MACOSX_BUNDLE_GUI_IDENTIFIER "${VIEWER_BRANDING_NAME}"
|
|
MACOSX_BUNDLE_LONG_VERSION_STRING "${${ROOT_PROJECT_NAME}_VERSION}"
|
|
MACOSX_BUNDLE_BUNDLE_NAME "${VIEWER_BRANDING_NAME}"
|
|
MACOSX_BUNDLE_SHORT_VERSION_STRING "${${ROOT_PROJECT_NAME}_VERSION}"
|
|
MACOSX_BUNDLE_BUNDLE_VERSION "${${ROOT_PROJECT_NAME}_VERSION}"
|
|
MACOSX_BUNDLE_COPYRIGHT "Copyright 2013 Siana Gearz"
|
|
)
|
|
|
|
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}
|
|
--extra_libraries="${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_viewer ALL DEPENDS ${VIEWER_BINARY_NAME})
|
|
|
|
add_custom_command(
|
|
TARGET package_viewer 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}
|
|
--extra_libraries="${MANIFEST_LIBRARIES}"
|
|
--touch=${CMAKE_CURRENT_BINARY_DIR}/${CMAKE_CFG_INTDIR}/.${product}.touched
|
|
DEPENDS
|
|
${VIEWER_BINARY_NAME}
|
|
${CMAKE_CURRENT_SOURCE_DIR}/viewer_manifest.py
|
|
)
|
|
endif (PACKAGE)
|
|
endif (DARWIN)
|
|
|
|
if (INSTALL)
|
|
include(${CMAKE_CURRENT_SOURCE_DIR}/ViewerInstall.cmake)
|
|
endif (INSTALL)
|
|
|
|
|
|
if (PACKAGE)
|
|
set(SYMBOL_NAME ${CMAKE_CURRENT_BINARY_DIR}/${CMAKE_CFG_INTDIR}/${VIEWER_BRANDING_NAME_CAMELCASE}-${${ROOT_PROJECT_NAME}_VERSION}-symbols)
|
|
set(SYMBOL_SEARCH_DIRS "")
|
|
if (WINDOWS)
|
|
list(APPEND SYMBOL_SEARCH_DIRS "${CMAKE_CURRENT_BINARY_DIR}/${CMAKE_CFG_INTDIR}")
|
|
set(VIEWER_SYMBOL_FILE "${SYMBOL_NAME}-${PREBUILT_TYPE}.tar.bz2")
|
|
# slplugin.exe failing symbols dump - need to debug, might have to do with updated version of google breakpad
|
|
# set(VIEWER_EXE_GLOBS "${VIEWER_BINARY_NAME}${CMAKE_EXECUTABLE_SUFFIX} slplugin.exe")
|
|
set(VIEWER_EXE_GLOBS "${VIEWER_BINARY_NAME}${CMAKE_EXECUTABLE_SUFFIX}")
|
|
set(VIEWER_LIB_GLOB "*${CMAKE_SHARED_MODULE_SUFFIX}")
|
|
set(VIEWER_DUMP_SYMS dump_syms.exe)
|
|
endif (WINDOWS)
|
|
if (DARWIN)
|
|
list(APPEND SYMBOL_SEARCH_DIRS "${CMAKE_CURRENT_BINARY_DIR}/${CMAKE_CFG_INTDIR}")
|
|
# *TODO: Generate these search dirs in the cmake files related to each binary.
|
|
list(APPEND SYMBOL_SEARCH_DIRS "${CMAKE_BINARY_DIR}/llplugin/slplugin/${CMAKE_CFG_INTDIR}")
|
|
list(APPEND SYMBOL_SEARCH_DIRS "${CMAKE_BINARY_DIR}/plugins/gstreamer010/${CMAKE_CFG_INTDIR}")
|
|
list(APPEND SYMBOL_SEARCH_DIRS "${CMAKE_BINARY_DIR}/plugins/quicktime/${CMAKE_CFG_INTDIR}")
|
|
list(APPEND SYMBOL_SEARCH_DIRS "${CMAKE_BINARY_DIR}/plugins/webkit/${CMAKE_CFG_INTDIR}")
|
|
set(VIEWER_SYMBOL_FILE "${SYMBOL_NAME}-darwin.tar.bz2")
|
|
set(VIEWER_EXE_GLOBS "'${VIEWER_BRANDING_NAME}' SLPlugin")
|
|
set(VIEWER_LIB_GLOB "*.dylib")
|
|
set(VIEWER_DUMP_SYMS dump_syms)
|
|
endif (DARWIN)
|
|
if (LINUX)
|
|
list(APPEND SYMBOL_SEARCH_DIRS "${CMAKE_CURRENT_BINARY_DIR}/packaged")
|
|
set(VIEWER_SYMBOL_FILE "${SYMBOL_NAME}-linux-${ARCH}.tar.bz2")
|
|
set(VIEWER_EXE_GLOBS "${VIEWER_BRANDING_ID}-do-not-run-directly SLPlugin")
|
|
set(VIEWER_LIB_GLOB "*${CMAKE_SHARED_MODULE_SUFFIX}*")
|
|
set(VIEWER_COPY_MANIFEST copy_l_viewer_manifest)
|
|
set(VIEWER_DUMP_SYMS dump_syms)
|
|
endif (LINUX)
|
|
|
|
if(RELEASE_CRASH_REPORTING OR NON_RELEASE_CRASH_REPORTING)
|
|
if(CMAKE_CFG_INTDIR STREQUAL ".")
|
|
set(LLBUILD_CONFIG ${CMAKE_BUILD_TYPE})
|
|
else(CMAKE_CFG_INTDIR STREQUAL ".")
|
|
# set LLBUILD_CONFIG to be a shell variable evaluated at build time
|
|
# reflecting the configuration we are currently building.
|
|
set(LLBUILD_CONFIG ${CMAKE_CFG_INTDIR})
|
|
endif(CMAKE_CFG_INTDIR STREQUAL ".")
|
|
add_custom_command(OUTPUT "${VIEWER_SYMBOL_FILE}"
|
|
COMMAND "${PYTHON_EXECUTABLE}"
|
|
ARGS
|
|
"${CMAKE_CURRENT_SOURCE_DIR}/generate_breakpad_symbols.py"
|
|
"${LLBUILD_CONFIG}"
|
|
"${SYMBOL_SEARCH_DIRS}"
|
|
"${VIEWER_EXE_GLOBS}"
|
|
"${VIEWER_LIB_GLOB}"
|
|
"${LIBS_PREBUILT_DIR}/bin/${VIEWER_DUMP_SYMS}|${LIBS_PREBUILT_LEGACY_DIR}/bin/${VIEWER_DUMP_SYMS}"
|
|
"${VIEWER_SYMBOL_FILE}"
|
|
DEPENDS generate_breakpad_symbols.py
|
|
VERBATIM)
|
|
|
|
add_custom_target(generate_breakpad_symbols DEPENDS "${VIEWER_SYMBOL_FILE}")
|
|
add_dependencies(generate_breakpad_symbols ${VIEWER_BINARY_NAME})
|
|
if(VIEWER_COPY_MANIFEST)
|
|
add_dependencies(generate_breakpad_symbols ${VIEWER_COPY_MANIFEST})
|
|
endif(VIEWER_COPY_MANIFEST)
|
|
add_dependencies(package_viewer generate_breakpad_symbols)
|
|
endif(RELEASE_CRASH_REPORTING OR NON_RELEASE_CRASH_REPORTING)
|
|
endif (PACKAGE)
|
|
|
|
# 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)
|
|
|
|
IF(CMAKE_INSTALL_SYSTEM_RUNTIME_LIBS)
|
|
FOREACH(RUNTIME_LIB ${CMAKE_INSTALL_SYSTEM_RUNTIME_LIBS})
|
|
add_custom_command(
|
|
TARGET ${VIEWER_BINARY_NAME} POST_BUILD
|
|
COMMAND ${CMAKE_COMMAND}
|
|
ARGS
|
|
-E
|
|
copy_if_different
|
|
${RUNTIME_LIB}
|
|
${CMAKE_CURRENT_BINARY_DIR}
|
|
COMMENT "Copying ${RUNTIME_LIB} to the runtime folder."
|
|
)
|
|
ENDFOREACH(RUNTIME_LIB ${CMAKE_INSTALL_SYSTEM_RUNTIME_LIBS})
|
|
ENDIF(CMAKE_INSTALL_SYSTEM_RUNTIME_LIBS)
|
|
|
|
SET(BUILT_LLCOMMON $<TARGET_FILE:llcommon>)
|
|
|
|
set_target_properties(llcommon
|
|
PROPERTIES
|
|
LINK_FLAGS "/debug /NODEFAULTLIB:LIBCMT"
|
|
LINK_FLAGS_DEBUG "/NODEFAULTLIB:\"LIBCMT;LIBCMTD;MSVCRT\""
|
|
LINK_FLAGS_RELEASE "${release_flags} /LTCG"
|
|
LINK_FLAGS_RELWITHDEBINFO "${release_flags}"
|
|
)
|
|
|
|
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."
|
|
)
|
|
|
|
SET(BUILT_SLPLUGIN $<TARGET_FILE:SLPlugin>)
|
|
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."
|
|
)
|
|
|
|
SET(BUILT_WEBKIT_PLUGIN $<TARGET_FILE:media_plugin_webkit>)
|
|
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."
|
|
)
|
|
|
|
SET(BUILT_QUICKTIME_PLUGIN $<TARGET_FILE:media_plugin_quicktime>)
|
|
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."
|
|
)
|
|
|
|
SET(BUILT_FILEPICKER_PLUGIN $<TARGET_FILE:basic_plugin_filepicker>)
|
|
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."
|
|
)
|
|
|
|
# winmm doesn't build on windows 64
|
|
if(WORD_SIZE EQUAL 32)
|
|
SET(BUILT_WINMM_SHIM_PLUGIN $<TARGET_FILE:winmm_shim>)
|
|
add_custom_command(
|
|
TARGET ${VIEWER_BINARY_NAME} POST_BUILD
|
|
COMMAND ${CMAKE_COMMAND}
|
|
ARGS
|
|
-E
|
|
copy_if_different
|
|
${BUILT_WINMM_SHIM_PLUGIN}
|
|
${CMAKE_CURRENT_BINARY_DIR}/${CMAKE_CFG_INTDIR}
|
|
COMMENT "Copying winmm.dll to the runtime folder."
|
|
)
|
|
endif(WORD_SIZE EQUAL 32)
|
|
|
|
# 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)
|