Added Make support for new osgIntrospecxtion libs

This commit is contained in:
Robert Osfield
2004-12-09 05:29:10 +00:00
parent 28d31c96b6
commit 876e257080
6 changed files with 433 additions and 7 deletions

View File

@@ -109,6 +109,7 @@ INSTLINKDEVCMD = $(LINK)
LIB_PREFIX = lib
LIB_EXT = so
PLUGIN_PREFIX = osgdb_
WRAPPER_PREFIX = osgwrapper_
PLUGIN_EXT = so
MAKEDIST = echo " === Distribution build is not implemented yet for $(OS)"; printf "\n"
INSTLOGFILE = /tmp/.osg_inst_log

View File

@@ -17,6 +17,7 @@ SRC_DIRS = \
osgGL2\
osgFX\
osgProducer\
osgIntrospection\
ifeq ($(GDAL_INSTALLED),yes)
SRC_DIRS += osgTerrain
@@ -24,8 +25,13 @@ endif
SRC_DIRS += \
osgPlugins\
osgWrappers\
../examples
WRAPPER_DIRS = \
osg\
################################################################
# Directories traversed in the TOPDIR/src/osgPlugins directory
@@ -156,6 +162,7 @@ EXAMPLE_DIRS = \
osghangglide\
osghud\
osgimpostor\
osgintrospection\
osgkeyboard\
osgkeyboardmouse\
osglauncher\

View File

@@ -3,10 +3,12 @@ default: opt
opt: $(EXEC:=.opt)\
$(LIB:=.opt)\
$(WRAPPER:=.opt)\
$(PLUGIN:=.opt)\
debug: $(EXEC:=.dbg)\
$(LIB:=.dbg)\
$(WRAPPER:=.dbg)\
$(PLUGIN:=.dbg)\
cleandepend: cleandependopt cleandependdbg
@@ -20,10 +22,10 @@ cleandependdbg:
cleantarget: cleantargetopt cleantargetdbg
cleantargetopt:
@[ -d $(OPTDIR) ] && cd $(OPTDIR); rm -f $(EXEC) $(LIB) $(PLUGIN)
@[ -d $(OPTDIR) ] && cd $(OPTDIR); rm -f $(EXEC) $(LIB) ${WRAPPER} $(PLUGIN)
cleantargetdbg:
@[ -d $(DEBUGDIR) ] && cd $(DEBUGDIR); rm -f $(EXEC) $(LIB) $(PLUGIN)
@[ -d $(DEBUGDIR) ] && cd $(DEBUGDIR); rm -f $(EXEC) $(LIB) ${WRAPPER} $(PLUGIN)
clean: cleanopt cleandbg
@@ -68,16 +70,18 @@ ifeq ($(OS),Darwin)
$(LIB): $(OBJS)
$(C++) $(LDFLAGS) $(LIBVERSION) -dynamiclib $(OBJS) $(LIBS) -o $@
$(PLUGIN): $(OBJS)
$(WRAPPER) $(PLUGIN): $(OBJS)
$(C++) $(LDFLAGS) -bundle $(OBJS) $(LIBS) -o $@
else
ifeq ($(OS),HP-UX)
# we need to explicitly tell the linker the library name - else it will
# include paths like ../../../libosg.sl into executables
$(LIB) $(PLUGIN) : $(OBJS)
$(LIB) $(PLUGIN) ${WRAPPER} : $(OBJS)
$(C++) $(LDFLAGS) $(SHARED) $(OBJS) $(LIBS) -Wl,+h -Wl,$@ -o $@
else
$(LIB) $(PLUGIN) : $(OBJS)
$(LIB) $(PLUGIN) ${WRAPPER} : $(OBJS)
$(C++) $(LDFLAGS) $(SHARED) $(OBJS) $(LIBS) -o $@
endif # not HP-UX
@@ -91,7 +95,7 @@ $(EXEC:=.dbg) :
MAKEDEPEND=Makedepend $(EXEC)
@$(MAKE) LNSRC=$(DEBUGDIR)/$(EXEC)$(EXE_EXT) LNDEST=$(BININST)/$(EXEC)$(EXE_EXT) __link
$(LIB:=.dbg) : $(PLUGIN:=.dbg)
$(LIB:=.dbg) :
@[ -d $(DEBUGDIR) ] || mkdir $(DEBUGDIR)
@cd $(DEBUGDIR);\
$(MAKE) -f ../GNUmakefile "DOF=$(DBGF)" TOPDIR=../${TOPDIR} \
@@ -99,6 +103,14 @@ $(LIB:=.dbg) : $(PLUGIN:=.dbg)
MAKEDEPEND=Makedepend $(LIB)
@$(MAKE) LNSRC=$(DEBUGDIR)/$(LIB) LNDEST=$(LIBINST)/$(LIB) __link
$(WRAPPER:=.dbg) :
@[ -d $(DEBUGDIR) ] || mkdir $(DEBUGDIR)
@cd $(DEBUGDIR); \
$(MAKE) -f ../GNUmakefile "DOF=$(DBGF)" TOPDIR=../${TOPDIR} \
THISDIR=../$(THISDIR)\
MAKEDEPEND=Makedepend $(WRAPPER)
@$(MAKE) LNSRC=$(DEBUGDIR)/$(WRAPPER) LNDEST=$(PLUGININST)/$(WRAPPER) __link
$(PLUGIN:=.dbg) :
@[ -d $(DEBUGDIR) ] || mkdir $(DEBUGDIR)
@cd $(DEBUGDIR); \
@@ -124,6 +136,14 @@ $(LIB:=.opt) :
MAKEDEPEND=Makedepend $(LIB)
@$(MAKE) LNSRC=$(OPTDIR)/$(LIB) LNDEST=$(LIBINST)/$(LIB) __link
$(WRAPPER:=.opt) :
@[ -d $(OPTDIR) ] || mkdir -p $(OPTDIR)
@cd $(OPTDIR); \
$(MAKE) -f ../GNUmakefile DOF=$(OPTF) TOPDIR=../${TOPDIR} \
THISDIR=../$(THISDIR)\
MAKEDEPEND=Makedepend $(WRAPPER)
@$(MAKE) LNSRC=$(OPTDIR)/$(WRAPPER) LNDEST=$(PLUGININST)/$(WRAPPER) __link
$(PLUGIN:=.opt) :
@[ -d $(OPTDIR) ] || mkdir -p $(OPTDIR)
@cd $(OPTDIR); \
@@ -132,7 +152,6 @@ $(PLUGIN:=.opt) :
MAKEDEPEND=Makedepend $(PLUGIN)
@$(MAKE) LNSRC=$(OPTDIR)/$(PLUGIN) LNDEST=$(PLUGININST)/$(PLUGIN) __link
## Revamped method for making Makedepend files
## Under this method, Makedepend simply includes
## all dependency files which are built for each

View File

@@ -66,6 +66,18 @@ Package=<4>
###############################################################################
Project: "Core osgIntrospection"=.\osgIntrospection\osgIntrospection.dsp - Package Owner=<4>
Package=<5>
{{{
}}}
Package=<4>
{{{
}}}
###############################################################################
Project: "Core osgGL2"=.\osgGL2\osgGL2.dsp - Package Owner=<4>
Package=<5>
@@ -822,6 +834,30 @@ Package=<4>
###############################################################################
Project: "Example osgintrospection"=.\examples\osgintrospection\osgintrospection.dsp - Package Owner=<4>
Package=<5>
{{{
}}}
Package=<4>
{{{
Begin Project Dependency
Project_Dep_Name Core osg
End Project Dependency
Begin Project Dependency
Project_Dep_Name Core osgDB
End Project Dependency
Begin Project Dependency
Project_Dep_Name Core osgIntrospection
End Project Dependency
Begin Project Dependency
Project_Dep_Name Core osgUtil
End Project Dependency
}}}
###############################################################################
Project: "Example osgkeyboard"=.\examples\osgkeyboard\osgkeyboard.dsp - Package Owner=<4>
Package=<5>
@@ -2856,6 +2892,24 @@ Package=<4>
###############################################################################
Project: "osgWrapper osg"=.\osgWrappers\osg\wrapper_osg.dsp - Package Owner=<4>
Package=<5>
{{{
}}}
Package=<4>
{{{
Begin Project Dependency
Project_Dep_Name Core osg
End Project Dependency
Begin Project Dependency
Project_Dep_Name Core osgIntrospection
End Project Dependency
}}}
###############################################################################
Global:
Package=<5>

View File

@@ -0,0 +1,194 @@
# Microsoft Developer Studio Project File - Name="Core osgIntrospection" - Package Owner=<4>
# Microsoft Developer Studio Generated Build File, Format Version 6.00
# ** DO NOT EDIT **
# TARGTYPE "Win32 (x86) Dynamic-Link Library" 0x0102
CFG=Core osgIntrospection - Win32 Release
!MESSAGE This is not a valid makefile. To build this project using NMAKE,
!MESSAGE use the Export Makefile command and run
!MESSAGE
!MESSAGE NMAKE /f "osgIntrospection.mak".
!MESSAGE
!MESSAGE You can specify a configuration when running NMAKE
!MESSAGE by defining the macro CFG on the command line. For example:
!MESSAGE
!MESSAGE NMAKE /f "osgIntrospection.mak" CFG="Core osgIntrospection - Win32 Release"
!MESSAGE
!MESSAGE Possible choices for configuration are:
!MESSAGE
!MESSAGE "Core osgIntrospection - Win32 Release" (based on "Win32 (x86) Dynamic-Link Library")
!MESSAGE "Core osgIntrospection - Win32 Debug" (based on "Win32 (x86) Dynamic-Link Library")
!MESSAGE
# Begin Project
# PROP AllowPerConfigDependencies 0
# PROP Scc_ProjName ""
# PROP Scc_LocalPath ""
CPP=cl.exe
MTL=midl.exe
RSC=rc.exe
!IF "$(CFG)" == "Core osgIntrospection - Win32 Release"
# PROP BASE Use_MFC 0
# PROP BASE Use_Debug_Libraries 0
# PROP BASE Output_Dir "../../lib"
# PROP BASE Intermediate_Dir "Release"
# PROP BASE Target_Dir ""
# PROP Use_MFC 0
# PROP Use_Debug_Libraries 0
# PROP Output_Dir "../../lib"
# PROP Intermediate_Dir "Release"
# PROP Ignore_Export_Lib 0
# PROP Target_Dir ""
F90=df.exe
# ADD BASE CPP /nologo /MT /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /YX /FD /c
# ADD CPP /nologo /MD /W3 /GR /GX /O2 /I "../../include" /I "../../../OpenThreads/include" /I "../../../Producer/include" /I "../../../3rdParty/include" /D "NDEBUG" /D "_MBCS" /D "_USRDLL" /D "OSGINTROSPECTION_LIBRARY" /D "WIN32" /D "_WINDOWS" /YX /FD /Zm200 /c
# ADD BASE MTL /nologo /D "NDEBUG" /mktyplib203 /win32
# ADD MTL /nologo /D "NDEBUG" /mktyplib203 /win32
# ADD BASE RSC /l 0x809 /d "NDEBUG"
# ADD RSC /l 0x809 /d "NDEBUG"
BSC32=bscmake.exe
# ADD BASE BSC32 /nologo
# ADD BSC32 /nologo
LINK32=link.exe
# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /dll /machine:I386
# ADD LINK32 OpenThreadsWin32.lib opengl32.lib glu32.lib /nologo /dll /pdb:none /machine:I386 /out:"../../bin/osgIntrospection.dll" /libpath:"../../lib" /libpath:"../../../OpenThreads/lib/win32" /libpath:"../../../Producer/lib" /libpath:"../../../3rdParty/lib"
!ELSEIF "$(CFG)" == "Core osgIntrospection - Win32 Debug"
# PROP BASE Use_MFC 0
# PROP BASE Use_Debug_Libraries 1
# PROP BASE Output_Dir "Debug"
# PROP BASE Intermediate_Dir "Debug"
# PROP BASE Target_Dir ""
# PROP Use_MFC 0
# PROP Use_Debug_Libraries 1
# PROP Output_Dir "../../lib"
# PROP Intermediate_Dir "Debug"
# PROP Ignore_Export_Lib 0
# PROP Target_Dir ""
F90=df.exe
# ADD BASE CPP /nologo /MTd /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /YX /FD /GZ /c
# ADD CPP /nologo /MDd /W3 /Gm /vmg /vd0 /GR /GX /Zi /Od /I "../../include" /I "../../../OpenThreads/include" /I "../../../Producer/include" /I "../../../3rdParty/include" /D "OSGINTROSPECTION_LIBRARY" /D "_WINDOWS" /D "WIN32" /D "_DEBUG" /YX /FD /GZ /Zm200 /c
# ADD BASE MTL /nologo /D "_DEBUG" /mktyplib203 /win32
# ADD MTL /nologo /D "_DEBUG" /mktyplib203 /win32
# ADD BASE RSC /l 0x809 /d "_DEBUG"
# ADD RSC /l 0x809 /d "_DEBUG"
BSC32=bscmake.exe
# ADD BASE BSC32 /nologo
# ADD BSC32 /nologo
LINK32=link.exe
# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /dll /debug /machine:I386 /pdbtype:sept
# ADD LINK32 OpenThreadsWin32d.lib opengl32.lib glu32.lib /nologo /dll /debug /machine:I386 /out:"../../bin/osgIntrospectiond.dll" /pdbtype:sept /libpath:"../../lib" /libpath:"../../../OpenThreads/lib/win32" /libpath:"../../../Producer/lib" /libpath:"../../../3rdParty/lib"
# SUBTRACT LINK32 /pdb:none
!ENDIF
# Begin Target
# Name "Core osgIntrospection - Win32 Release"
# Name "Core osgIntrospection - Win32 Debug"
# Begin Group "Source Files"
# PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;idl;hpj;bat"
# Begin Source File
SOURCE=..\..\src\osgIntrospection\CustomAttributeProvider.cpp
# End Source File
# Begin Source File
SOURCE=..\..\src\osgIntrospection\DefaultReflectors.cpp
# End Source File
# Begin Source File
SOURCE=..\..\src\osgIntrospection\MethodInfo.cpp
# End Source File
# Begin Source File
SOURCE=..\..\src\osgIntrospection\PropertyInfo.cpp
# End Source File
# Begin Source File
SOURCE=..\..\src\osgIntrospection\Reflection.cpp
# End Source File
# Begin Source File
SOURCE=..\..\src\osgIntrospection\Type.cpp
# End Source File
# Begin Source File
SOURCE=..\..\src\osgIntrospection\Value.cpp
# End Source File
# End Group
# Begin Group "Header Files"
# PROP Default_Filter ";h;hpp;hxx;hm;inl"
# Begin Source File
SOURCE=..\..\include\osgIntrospection\Attributes
# End Source File
# Begin Source File
SOURCE=..\..\include\osgIntrospection\CustomAttribute
# End Source File
# Begin Source File
SOURCE=..\..\include\osgIntrospection\CustomAttributeProvider
# End Source File
# Begin Source File
SOURCE=..\..\include\osgIntrospection\Exceptions
# End Source File
# Begin Source File
SOURCE=..\..\include\osgIntrospection\MethodInfo
# End Source File
# Begin Source File
SOURCE=..\..\include\osgIntrospection\ParameterInfo
# End Source File
# Begin Source File
SOURCE=..\..\include\osgIntrospection\PropertyInfo
# End Source File
# Begin Source File
SOURCE=..\..\include\osgIntrospection\ReaderWriter
# End Source File
# Begin Source File
SOURCE=..\..\include\osgIntrospection\Reflection
# End Source File
# Begin Source File
SOURCE=..\..\include\osgIntrospection\ReflectionMacros
# End Source File
# Begin Source File
SOURCE=..\..\include\osgIntrospection\Reflector
# End Source File
# Begin Source File
SOURCE=..\..\include\osgIntrospection\Type
# End Source File
# Begin Source File
SOURCE=..\..\include\osgIntrospection\TypedMethodInfo
# End Source File
# Begin Source File
SOURCE=..\..\include\osgIntrospection\Value
# End Source File
# Begin Source File
SOURCE=..\..\include\osgIntrospection\variant_cast
# End Source File
# End Group
# Begin Group "Resource Files"
# PROP Default_Filter "ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe"
# End Group
# End Target
# End Project

View File

@@ -0,0 +1,151 @@
# Microsoft Developer Studio Project File - Name="osgWrapper osg" - Package Owner=<4>
# Microsoft Developer Studio Generated Build File, Format Version 6.00
# ** DO NOT EDIT **
# TARGTYPE "Win32 (x86) Dynamic-Link Library" 0x0102
CFG=osgWrapper osg - Win32 Release
!MESSAGE This is not a valid makefile. To build this project using NMAKE,
!MESSAGE use the Export Makefile command and run
!MESSAGE
!MESSAGE NMAKE /f "wrapper_osg.mak".
!MESSAGE
!MESSAGE You can specify a configuration when running NMAKE
!MESSAGE by defining the macro CFG on the command line. For example:
!MESSAGE
!MESSAGE NMAKE /f "wrapper_osg.mak" CFG="osgWrapper osg - Win32 Release"
!MESSAGE
!MESSAGE Possible choices for configuration are:
!MESSAGE
!MESSAGE "osgWrapper osg - Win32 Release" (based on "Win32 (x86) Dynamic-Link Library")
!MESSAGE "osgWrapper osg - Win32 Debug" (based on "Win32 (x86) Dynamic-Link Library")
!MESSAGE
# Begin Project
# PROP AllowPerConfigDependencies 0
# PROP Scc_ProjName ""
# PROP Scc_LocalPath ""
CPP=cl.exe
MTL=midl.exe
RSC=rc.exe
!IF "$(CFG)" == "osgWrapper osg - Win32 Release"
# PROP BASE Use_MFC 0
# PROP BASE Use_Debug_Libraries 0
# PROP BASE Output_Dir "Release"
# PROP BASE Intermediate_Dir "Release"
# PROP BASE Target_Dir ""
# PROP Use_MFC 0
# PROP Use_Debug_Libraries 0
# PROP Output_Dir "../../../lib"
# PROP Intermediate_Dir "Release"
# PROP Ignore_Export_Lib 0
# PROP Target_Dir ""
F90=df.exe
# ADD BASE CPP /nologo /MT /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /YX /FD /c
# ADD CPP /nologo /MD /W3 /GR /GX /O2 /I "../../../include" /I "../../../../OpenThreads/include" /I "../../../../Producer/include" /I "../../../../3rdParty/include" /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /YX /FD /c
# ADD BASE MTL /nologo /D "NDEBUG" /mktyplib203 /win32
# ADD MTL /nologo /D "NDEBUG" /mktyplib203 /win32
# ADD BASE RSC /l 0x809 /d "NDEBUG"
# ADD RSC /l 0x809 /d "NDEBUG"
BSC32=bscmake.exe
# ADD BASE BSC32 /nologo
# ADD BSC32 /nologo
LINK32=link.exe
# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /dll /machine:I386
# ADD LINK32 OpenThreadsWin32.lib /nologo /dll /pdb:none /machine:I386 /nodefaultlib:"LIBC" /out:"../../../bin/osgreflection_osg.dll" /libpath:"../../../lib" /libpath:"../../../../OpenThreads/lib/win32" /libpath:"../../../../Producer/lib" /libpath:"../../../../3rdParty/lib"
# SUBTRACT LINK32 /nodefaultlib
!ELSEIF "$(CFG)" == "osgWrapper osg - Win32 Debug"
# PROP BASE Use_MFC 0
# PROP BASE Use_Debug_Libraries 1
# PROP BASE Output_Dir "Debug"
# PROP BASE Intermediate_Dir "Debug"
# PROP BASE Target_Dir ""
# PROP Use_MFC 0
# PROP Use_Debug_Libraries 1
# PROP Output_Dir "../../../lib"
# PROP Intermediate_Dir "Debug"
# PROP Ignore_Export_Lib 0
# PROP Target_Dir ""
F90=df.exe
# ADD BASE CPP /nologo /MTd /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /YX /FD /GZ /c
# ADD CPP /nologo /MDd /W3 /Gm /vmg /vd0 /GR /GX /Zi /Od /I "../../../include" /I "../../../../OpenThreads/include" /I "../../../../Producer/include" /I "../../../../3rdParty/include" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "WIN32" /D "_DEBUG" /YX /FD /GZ /c
# ADD BASE MTL /nologo /D "_DEBUG" /mktyplib203 /win32
# ADD MTL /nologo /D "_DEBUG" /mktyplib203 /win32
# ADD BASE RSC /l 0x809 /d "_DEBUG"
# ADD RSC /l 0x809 /d "_DEBUG"
BSC32=bscmake.exe
# ADD BASE BSC32 /nologo
# ADD BSC32 /nologo
LINK32=link.exe
# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /dll /debug /machine:I386 /pdbtype:sept
# ADD LINK32 OpenThreadsWin32d.lib /nologo /dll /debug /machine:I386 /nodefaultlib:"LIBC" /out:"../../../bin/osgreflection_osgd.dll" /pdbtype:sept /libpath:"../../../lib" /libpath:"../../../../OpenThreads/lib/win32" /libpath:"../../../../Producer/lib" /libpath:"../../../../3rdParty/lib"
# SUBTRACT LINK32 /pdb:none /nodefaultlib
!ENDIF
# Begin Target
# Name "osgWrapper osg - Win32 Release"
# Name "osgWrapper osg - Win32 Debug"
# Begin Group "Source Files"
# PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;idl;hpj;bat"
# Begin Source File
SOURCE=..\..\..\src\osgWrappers\osg\BlendFunc.cpp
# End Source File
# Begin Source File
SOURCE=..\..\..\src\osgWrappers\osg\Drawable.cpp
# End Source File
# Begin Source File
SOURCE=..\..\..\src\osgWrappers\osg\Geode.cpp
# End Source File
# Begin Source File
SOURCE=..\..\..\src\osgWrappers\osg\Geometry.cpp
# End Source File
# Begin Source File
SOURCE=..\..\..\src\osgWrappers\osg\Group.cpp
# End Source File
# Begin Source File
SOURCE=..\..\..\src\osgWrappers\osg\Material.cpp
# End Source File
# Begin Source File
SOURCE=..\..\..\src\osgWrappers\osg\Node.cpp
# End Source File
# Begin Source File
SOURCE=..\..\..\src\osgWrappers\osg\Object.cpp
# End Source File
# Begin Source File
SOURCE=..\..\..\src\osgWrappers\osg\StateAttribute.cpp
# End Source File
# Begin Source File
SOURCE=..\..\..\src\osgWrappers\osg\StateSet.cpp
# End Source File
# Begin Source File
SOURCE=..\..\..\src\osgWrappers\osg\Vec2.cpp
# End Source File
# End Group
# Begin Group "Header Files"
# PROP Default_Filter "h;hpp;hxx;hm;inl"
# End Group
# Begin Group "Resource Files"
# PROP Default_Filter "ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe"
# End Group
# End Target
# End Project