#**************************************************************
#  
#  Licensed to the Apache Software Foundation (ASF) under one
#  or more contributor license agreements.  See the NOTICE file
#  distributed with this work for additional information
#  regarding copyright ownership.  The ASF licenses this file
#  to you under the Apache License, Version 2.0 (the
#  "License"); you may not use this file except in compliance
#  with the License.  You may obtain a copy of the License at
#  
#    http://www.apache.org/licenses/LICENSE-2.0
#  
#  Unless required by applicable law or agreed to in writing,
#  software distributed under the License is distributed on an
#  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
#  KIND, either express or implied.  See the License for the
#  specific language governing permissions and limitations
#  under the License.
#  
#**************************************************************



$(eval $(call gb_Library_Library,vcl))

ifeq ($(OS),MACOSX)
$(eval $(call gb_Library_set_componentfile,vcl,vcl/vcl.macosx))
else ifeq ($(OS),WNT)
$(eval $(call gb_Library_set_componentfile,vcl,vcl/vcl.windows))
else ifeq ($(OS),OS2)
$(eval $(call gb_Library_set_componentfile,vcl,vcl/vcl.windows))
else
$(eval $(call gb_Library_set_componentfile,vcl,vcl/vcl.unx))
endif

$(eval $(call gb_Library_add_package_headers,vcl,vcl_inc))

$(eval $(call gb_Library_add_api,vcl,\
	udkapi \
	offapi \
))

$(eval $(call gb_Library_set_include,vcl,\
	$$(INCLUDE) \
	-I$(SRCDIR)/vcl/inc \
	-I$(SRCDIR)/vcl/inc/pch \
	-I$(SRCDIR)/solenv/inc \
	-I$(OUTDIR)/inc/stl \
	-I$(OUTDIR)/inc \
))
ifeq ($(GUIBASE),os2)
$(eval $(call gb_Library_set_include,vcl,\
	$$(INCLUDE) \
	-idirafter /@unixroot/usr/include/os2tk45 \
))
endif
ifeq ($(GUIBASE),unx)
$(eval $(call gb_Library_set_include,vcl,\
	$$(INCLUDE) \
	$$(FREETYPE_CFLAGS) \
))
endif

$(eval $(call gb_Library_add_defs,vcl,\
	-DVCL_DLLIMPLEMENTATION \
	-DCUI_DLL_NAME=\"$(call gb_Library_get_runtime_filename,cui)\" \
	-DDLLPOSTFIX=$(subst $(or $(gb_Library_DLLEXT),$(gb_Library_PLAINEXT)),,$(gb_Library_OOOEXT)) \
))

$(eval $(call gb_Library_add_linked_libs,vcl,\
	tl \
	utl \
	sot \
	ucbhelper \
	basegfx \
	comphelper \
	cppuhelper \
	i18nisolang1 \
	i18npaper \
	i18nutil \
	jvmaccess \
	stl \
	cppu \
	sal \
	vos3 \
	$(gb_STDLIBS) \
))

$(call gb_Library_use_externals,vcl,\
	icule \
	icuuc \
)

ifeq ($(GUIBASE),unx)
$(eval $(call gb_Library_add_linked_libs,vcl,\
	freetype \
))
endif

ifeq ($(GUIBASE),os2)
# YD FIXME this is not working... needs ldflags hack...
$(eval $(call gb_Library_add_libs,vcl,\
	-lft2lib \
))

endif

ifeq ($(OS),MACOSX)
$(eval $(call gb_Library_add_ldflags,vcl,\
	$$(LDFLAGS) \
))
endif

ifeq ($(GUIBASE),aqua)
$(eval $(call gb_Library_add_cxxflags,vcl,\
	$$(CXXFLAGS) \
	$$(OBJCXXFLAGS) \
	$(gb_OBJCXXFLAGS) \
))
ifeq ($(ENABLE_CAIRO),TRUE)
$(eval $(call gb_Library_add_defs,vcl,\
	-DCAIRO \
))
endif
$(eval $(call gb_Library_add_objcxxobjects,vcl,\
	vcl/aqua/source/a11y/aqua11yactionwrapper \
	vcl/aqua/source/a11y/aqua11ycomponentwrapper \
	vcl/aqua/source/a11y/aqua11yfactory \
	vcl/aqua/source/a11y/aqua11yrolehelper \
	vcl/aqua/source/a11y/aqua11yselectionwrapper \
	vcl/aqua/source/a11y/aqua11ytablewrapper \
	vcl/aqua/source/a11y/aqua11ytextattributeswrapper \
	vcl/aqua/source/a11y/aqua11ytextwrapper \
	vcl/aqua/source/a11y/aqua11yutil \
	vcl/aqua/source/a11y/aqua11yvaluewrapper \
	vcl/aqua/source/a11y/aqua11ywrapper \
	vcl/aqua/source/a11y/aqua11ywrapperbutton \
	vcl/aqua/source/a11y/aqua11ywrappercheckbox \
	vcl/aqua/source/a11y/aqua11ywrappercombobox \
	vcl/aqua/source/a11y/aqua11ywrappergroup \
	vcl/aqua/source/a11y/aqua11ywrapperlist \
	vcl/aqua/source/a11y/aqua11ywrapperradiobutton \
	vcl/aqua/source/a11y/aqua11ywrapperradiogroup \
	vcl/aqua/source/a11y/aqua11ywrapperrow \
	vcl/aqua/source/a11y/aqua11ywrapperscrollarea \
	vcl/aqua/source/a11y/aqua11ywrapperscrollbar \
	vcl/aqua/source/a11y/aqua11ywrappersplitter \
	vcl/aqua/source/a11y/aqua11ywrapperstatictext \
	vcl/aqua/source/a11y/aqua11ywrappertabgroup \
	vcl/aqua/source/a11y/aqua11ywrappertextarea \
	vcl/aqua/source/a11y/aqua11ywrappertoolbar \
	vcl/aqua/source/app/salnstimer \
	vcl/aqua/source/app/vclnsapp \
	vcl/aqua/source/gdi/aquaprintaccessoryview \
	vcl/aqua/source/gdi/aquaprintview \
	vcl/aqua/source/window/salframeview \
	vcl/aqua/source/window/salnsmenu \
))
$(eval $(call gb_Library_add_exception_objects,vcl,\
	vcl/aqua/source/a11y/aqua11yfocuslistener \
	vcl/aqua/source/a11y/aqua11yfocustracker \
	vcl/aqua/source/a11y/aqua11ylistener \
	vcl/aqua/source/a11y/documentfocuslistener \
	vcl/aqua/source/app/saldata \
	vcl/aqua/source/app/salinst \
	vcl/aqua/source/app/salsys \
	vcl/aqua/source/app/saltimer \
	vcl/aqua/source/dtrans/DataFlavorMapping \
	vcl/aqua/source/dtrans/DragActionConversion \
	vcl/aqua/source/dtrans/DragSource \
	vcl/aqua/source/dtrans/DragSourceContext \
	vcl/aqua/source/dtrans/DropTarget \
	vcl/aqua/source/dtrans/HtmlFmtFlt \
	vcl/aqua/source/dtrans/OSXTransferable \
	vcl/aqua/source/dtrans/PictToBmpFlt \
	vcl/aqua/source/dtrans/aqua_clipboard \
	vcl/aqua/source/dtrans/service_entry \
	vcl/aqua/source/gdi/ctfonts \
	vcl/aqua/source/gdi/ctlayout \
	vcl/aqua/source/gdi/salbmp \
	vcl/aqua/source/gdi/salcolorutils \
	vcl/aqua/source/gdi/salgdi \
	vcl/aqua/source/gdi/salgdiutils \
	vcl/aqua/source/gdi/salmathutils \
	vcl/aqua/source/gdi/salnativewidgets \
	vcl/aqua/source/gdi/salprn \
	vcl/aqua/source/gdi/salvd \
	vcl/aqua/source/window/salframe \
	vcl/aqua/source/window/salmenu \
	vcl/aqua/source/window/salobj \
))
endif

ifeq ($(GUIBASE),unx)
$(eval $(call gb_Library_add_defs,vcl,\
	-DSAL_DLLPREFIX=\"$(gb_Library_SYSPRE)\" \
	-DSAL_DLLPOSTFIX=\"\" \
	-D_XSALSET_LIBNAME=\"$(call gb_Library_get_runtime_filename,spa)\" \
))
## handle fontconfig
ifeq ($(ENABLE_FONTCONFIG),TRUE)
$(eval $(call gb_Library_add_defs,vcl,\
	-DENABLE_FONTCONFIG \
))
## handle CUPS
ifeq ($(ENABLE_CUPS),TRUE)
$(eval $(call gb_Library_add_defs,vcl,\
	-DENABLE_CUPS \
))
endif
endif
$(eval $(call gb_Library_add_exception_objects,vcl,\
	vcl/source/glyphs/gcach_ftyp \
	vcl/source/glyphs/gcach_layout \
	vcl/source/glyphs/gcach_rbmp \
	vcl/source/glyphs/glyphcache \
	vcl/unx/generic/fontmanager/fontcache \
	vcl/unx/generic/fontmanager/fontconfig \
	vcl/unx/generic/fontmanager/fontmanager \
	vcl/unx/generic/fontmanager/helper \
	vcl/unx/generic/fontmanager/parseAFM \
	vcl/unx/generic/plugadapt/salplug \
	vcl/unx/generic/printer/cupsmgr \
	vcl/unx/generic/printer/jobdata \
	vcl/unx/generic/printer/ppdparser \
	vcl/unx/generic/printer/printerinfomanager \
))
endif

ifeq ($(OS),WNT)
$(eval $(call gb_Library_add_exception_objects,vcl,\
	vcl/win/source/app/saldata \
	vcl/win/source/app/salinfo \
	vcl/win/source/app/salinst \
	vcl/win/source/app/salshl \
	vcl/win/source/app/saltimer \
	vcl/win/source/gdi/salbmp \
	vcl/win/source/gdi/salgdi \
	vcl/win/source/gdi/salgdi2 \
	vcl/win/source/gdi/salgdi3 \
	vcl/win/source/gdi/salgdi_gdiplus \
	vcl/win/source/gdi/salnativewidgets-luna \
	vcl/win/source/gdi/salprn \
	vcl/win/source/gdi/salvd \
	vcl/win/source/gdi/winlayout \
	vcl/win/source/gdi/wntgdi \
	vcl/win/source/window/salframe \
	vcl/win/source/window/salmenu \
	vcl/win/source/window/salobj \
))

$(eval $(call gb_Library_add_nativeres,vcl,src))

endif

ifeq ($(OS),OS2)
$(eval $(call gb_Library_add_exception_objects,vcl,\
	vcl/os2/source/app/salinfo \
	vcl/os2/source/app/salinst \
	vcl/os2/source/app/sallang \
	vcl/os2/source/app/salshl \
	vcl/os2/source/app/saltimer \
	vcl/os2/source/gdi/salbmp \
	vcl/os2/source/gdi/salgdi \
	vcl/os2/source/gdi/salgdi2 \
	vcl/os2/source/gdi/salgdi3 \
	vcl/os2/source/gdi/salprn \
	vcl/os2/source/gdi/salvd \
	vcl/os2/source/gdi/os2layout \
	vcl/os2/source/window/salframe \
	vcl/os2/source/window/salmenu \
	vcl/os2/source/window/salobj \
))

$(eval $(call gb_Library_add_nativeres,vcl,src))

endif

$(eval $(call gb_Library_add_exception_objects,vcl,\
	vcl/source/app/dbggui \
	vcl/source/app/dndhelp \
	vcl/source/app/help \
	vcl/source/app/i18nhelp \
	vcl/source/app/idlemgr \
	vcl/source/app/salvtables \
	vcl/source/app/session \
	vcl/source/app/settings \
	vcl/source/app/sound \
	vcl/source/app/stdtext \
	vcl/source/app/svapp \
	vcl/source/app/svdata \
	vcl/source/app/svmain \
	vcl/source/app/svmainhook \
	vcl/source/app/timer \
	vcl/source/app/unohelp2 \
	vcl/source/app/unohelp \
	vcl/source/app/vclevent \
	vcl/source/components/display \
	vcl/source/components/dtranscomp \
	vcl/source/components/factory \
	vcl/source/components/fontident \
	vcl/source/components/stringmirror \
	vcl/source/control/button \
	vcl/source/control/combobox \
	vcl/source/control/ctrl \
	vcl/source/control/edit \
	vcl/source/control/field2 \
	vcl/source/control/field \
	vcl/source/control/fixbrd \
	vcl/source/control/fixed \
	vcl/source/control/group \
	vcl/source/control/ilstbox \
	vcl/source/control/imgctrl \
	vcl/source/control/longcurr \
	vcl/source/control/lstbox \
	vcl/source/control/menubtn \
	vcl/source/control/morebtn \
	vcl/source/control/quickselectionengine \
	vcl/source/control/scrbar \
	vcl/source/control/slider \
	vcl/source/control/spinbtn \
	vcl/source/control/spinfld \
	vcl/source/control/tabctrl \
	vcl/source/control/throbber \
	vcl/source/fontsubset/cff \
	vcl/source/fontsubset/fontsubset \
	vcl/source/fontsubset/gsub \
	vcl/source/fontsubset/list \
	vcl/source/fontsubset/sft \
	vcl/source/fontsubset/ttcr \
	vcl/source/fontsubset/xlat \
	vcl/source/gdi/alpha \
	vcl/source/gdi/animate \
	vcl/source/gdi/base14 \
	vcl/source/gdi/bitmap3 \
	vcl/source/gdi/bitmap4 \
	vcl/source/gdi/bitmap \
	vcl/source/gdi/bitmapex \
	vcl/source/gdi/bmpacc2 \
	vcl/source/gdi/bmpacc3 \
	vcl/source/gdi/bmpacc \
	vcl/source/gdi/bmpconv \
	vcl/source/gdi/bmpfast \
	vcl/source/gdi/configsettings \
	vcl/source/gdi/cvtgrf \
	vcl/source/gdi/cvtsvm \
	vcl/source/gdi/dibtools \
	vcl/source/gdi/extoutdevdata \
	vcl/source/gdi/font \
	vcl/source/gdi/gdimtf \
	vcl/source/gdi/gdimetafiletools \
	vcl/source/gdi/gfxlink \
	vcl/source/gdi/gradient \
	vcl/source/gdi/graph \
	vcl/source/gdi/graphictools \
	vcl/source/gdi/hatch \
	vcl/source/gdi/image \
	vcl/source/gdi/imagerepository \
	vcl/source/gdi/impanmvw \
	vcl/source/gdi/impbmp \
	vcl/source/gdi/impfont \
	vcl/source/gdi/impgraph \
	vcl/source/gdi/impimage \
	vcl/source/gdi/impimagetree \
	vcl/source/gdi/impvect \
	vcl/source/gdi/jobset \
	vcl/source/gdi/lineinfo \
	vcl/source/gdi/mapmod \
	vcl/source/gdi/metaact \
	vcl/source/gdi/metric \
	vcl/source/gdi/octree \
	vcl/source/gdi/oldprintadaptor \
	vcl/source/gdi/outdev2 \
	vcl/source/gdi/outdev3 \
	vcl/source/gdi/outdev4 \
	vcl/source/gdi/outdev5 \
	vcl/source/gdi/outdev6 \
	vcl/source/gdi/outdev \
	vcl/source/gdi/outdevnative \
	vcl/source/gdi/outmap \
	vcl/source/gdi/pdfextoutdevdata \
	vcl/source/gdi/pdffontcache \
	vcl/source/gdi/pdfwriter \
	vcl/source/gdi/pdfwriter_impl2 \
	vcl/source/gdi/pdfwriter_impl \
	vcl/source/gdi/pngread \
	vcl/source/gdi/pngwrite \
	vcl/source/gdi/print2 \
	vcl/source/gdi/print3 \
	vcl/source/gdi/print \
	vcl/source/gdi/regband \
	vcl/source/gdi/region \
	vcl/source/gdi/regionband \
	vcl/source/gdi/salgdilayout \
	vcl/source/gdi/sallayout \
	vcl/source/gdi/salmisc \
	vcl/source/gdi/salnativewidgets-none \
	vcl/source/gdi/svgdata \
	vcl/source/gdi/textlayout \
	vcl/source/gdi/virdev \
	vcl/source/gdi/wall \
	vcl/source/helper/canvasbitmap \
	vcl/source/helper/canvastools \
	vcl/source/helper/evntpost \
	vcl/source/helper/lazydelete \
	vcl/source/helper/strhelper \
	vcl/source/helper/threadex \
	vcl/source/helper/xconnection \
	vcl/source/salmain/salmain \
	vcl/source/window/abstdlg \
	vcl/source/window/accel \
	vcl/source/window/accmgr \
	vcl/source/window/arrange \
	vcl/source/window/brdwin \
	vcl/source/window/btndlg \
	vcl/source/window/cmdevt \
	vcl/source/window/cursor \
	vcl/source/window/decoview \
	vcl/source/window/dialog \
	vcl/source/window/dlgctrl \
	vcl/source/window/dndevdis \
	vcl/source/window/dndlcon \
	vcl/source/window/dockingarea \
	vcl/source/window/dockmgr \
	vcl/source/window/dockwin \
	vcl/source/window/floatwin \
	vcl/source/window/introwin \
	vcl/source/window/javachild \
	vcl/source/window/keycod \
	vcl/source/window/keyevent \
	vcl/source/window/menu \
	vcl/source/window/mnemonic \
	vcl/source/window/mnemonicengine \
	vcl/source/window/mouseevent \
	vcl/source/window/msgbox \
	vcl/source/window/popupmenuwindow \
	vcl/source/window/printdlg \
	vcl/source/window/scrwnd \
	vcl/source/window/seleng \
	vcl/source/window/split \
	vcl/source/window/splitwin \
	vcl/source/window/status \
	vcl/source/window/syschild \
	vcl/source/window/syswin \
	vcl/source/window/tabdlg \
	vcl/source/window/tabpage \
	vcl/source/window/taskpanelist \
	vcl/source/window/toolbox2 \
	vcl/source/window/toolbox \
	vcl/source/window/window2 \
	vcl/source/window/window3 \
	vcl/source/window/window4 \
	vcl/source/window/window \
	vcl/source/window/winproc \
	vcl/source/window/wpropset \
	vcl/source/window/wrkwin \
))

## handle Graphite
ifeq ($(ENABLE_GRAPHITE),TRUE)
# add defines, graphite sources for all platforms
$(eval $(call gb_Library_add_defs,vcl,\
	-DENABLE_GRAPHITE \
))
$(eval $(call gb_Library_add_exception_objects,vcl,\
	vcl/source/glyphs/graphite_cache \
	vcl/source/glyphs/graphite_features \
	vcl/source/glyphs/graphite_layout \
	vcl/source/glyphs/graphite_textsrc \
))

# handle X11 platforms, which have additional files and possibly system graphite
ifeq ($(GUIBASE),unx)
$(eval $(call gb_Library_add_exception_objects,vcl,\
	vcl/source/glyphs/graphite_adaptors \
	vcl/source/glyphs/graphite_serverfont \
))
endif

$(call gb_Library_use_external,vcl,graphite)
endif

ifeq ($(OS),LINUX)
$(eval $(call gb_Library_add_linked_libs,vcl,\
	dl \
	m \
	pthread \
))
endif

ifeq ($(OS),SOLARIS)
ifeq ($(CPUNAME)$(CPU),SPARCU)
$(eval $(call gb_Library_add_ldflags,vcl,\
	-R/usr/sfw/lib/64 \
))
else
$(eval $(call gb_Library_add_ldflags,vcl,\
	-R/usr/sfw/lib \
))
endif
endif

ifeq ($(GUIBASE),aqua)
$(eval $(call gb_Library_add_linked_libs,vcl,\
	AppleRemote \
))
$(eval $(call gb_Library_add_libs,vcl,\
	$$(LDFLAGS) \
	-framework Cocoa \
	-framework Carbon \
	-framework CoreFoundation \
))
endif

ifeq ($(OS),WNT)
ifeq ($(USE_MINGW),)
$(eval $(call gb_Library_add_ldflags,vcl,\
	/ENTRY:LibMain@12 \
))
endif
$(eval $(call gb_Library_add_linked_libs,vcl,\
	advapi32 \
	gdi32 \
	gdiplus \
	imm32 \
	mpr \
	msimg32 \
	ole32 \
	shell32 \
	user32 \
	uuid \
	winspool \
	$(gb_STDLIBS) \
))
endif

# vim: set noet sw=4 ts=4:
