* implemented TApplication.GetExename() using CoreFoundation api's

for 32 bit Darwin platforms (we don't have a 64 bit clean interface
    for CoreFoundation yet) instead of using the (unreliable) paramstr(0)
    (mantis #13327)

git-svn-id: trunk@12921 -
This commit is contained in:
Jonas Maebe 2009-03-19 17:32:06 +00:00
parent c548ce30ba
commit 477b4d1f8b
7 changed files with 210 additions and 2 deletions

View File

@ -8323,6 +8323,13 @@ fcl-base_smart: paszlib_smart
fcl-base_release: paszlib_release
fcl-base_shared: paszlib_shared
endif
ifneq ($(findstring $(FULL_TARGET),powerpc-darwin i386-darwin),)
fcl-base_all: univint_all
fcl-base_debug: univint_debug
fcl-base_smart: univint_smart
fcl-base_release: univint_release
fcl-base_shared: univint_shared
endif
fcl-xml_all: fcl-base_all
fcl-xml_debug: fcl-base_debug
fcl-xml_smart: fcl-base_smart

View File

@ -88,6 +88,14 @@ fcl-base_release: paszlib_release
fcl-base_shared: paszlib_shared
endif
ifneq ($(findstring $(FULL_TARGET),powerpc-darwin i386-darwin),)
fcl-base_all: univint_all
fcl-base_debug: univint_debug
fcl-base_smart: univint_smart
fcl-base_release: univint_release
fcl-base_shared: univint_shared
endif
fcl-xml_all: fcl-base_all
fcl-xml_debug: fcl-base_debug
fcl-xml_smart: fcl-base_smart

View File

@ -1,5 +1,5 @@
#
# Don't edit, this file is generated by FPCMake Version 2.0.0 [2008/12/16]
# Don't edit, this file is generated by FPCMake Version 2.0.0 [2009/03/15]
#
default: all
MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-darwin x86_64-win64 x86_64-embedded arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian powerpc64-linux powerpc64-darwin powerpc64-embedded avr-embedded armeb-linux armeb-embedded
@ -1365,6 +1365,7 @@ endif
ifeq ($(OS_TARGET),go32v2)
STATICLIBPREFIX=
SHORTSUFFIX=dos
IMPORTLIBPREFIX=
endif
ifeq ($(OS_TARGET),watcom)
STATICLIBPREFIX=
@ -1372,6 +1373,7 @@ OEXT=.obj
ASMEXT=.asm
SHAREDLIBEXT=.dll
SHORTSUFFIX=wat
IMPORTLIBPREFIX=
endif
ifeq ($(OS_TARGET),linux)
BATCHEXT=.sh
@ -1408,6 +1410,7 @@ STATICLIBPREFIX=
SHAREDLIBEXT=.dll
SHORTSUFFIX=os2
ECHO=echo
IMPORTLIBPREFIX=
endif
ifeq ($(OS_TARGET),emx)
BATCHEXT=.cmd
@ -1416,6 +1419,7 @@ STATICLIBPREFIX=
SHAREDLIBEXT=.dll
SHORTSUFFIX=emx
ECHO=echo
IMPORTLIBPREFIX=
endif
ifeq ($(OS_TARGET),amiga)
EXEEXT=
@ -1455,17 +1459,20 @@ ifeq ($(OS_TARGET),netware)
EXEEXT=.nlm
STATICLIBPREFIX=
SHORTSUFFIX=nw
IMPORTLIBPREFIX=imp
endif
ifeq ($(OS_TARGET),netwlibc)
EXEEXT=.nlm
STATICLIBPREFIX=
SHORTSUFFIX=nwl
IMPORTLIBPREFIX=imp
endif
ifeq ($(OS_TARGET),macos)
BATCHEXT=
EXEEXT=
DEBUGSYMEXT=.xcoff
SHORTSUFFIX=mac
IMPORTLIBPREFIX=imp
endif
ifeq ($(OS_TARGET),darwin)
BATCHEXT=.sh
@ -1492,14 +1499,17 @@ STATICLIBEXT=.a1
SHAREDLIBEXT=.so1
STATICLIBPREFIX=
SHORTSUFFIX=v1
IMPORTLIBPREFIX=
endif
ifeq ($(OS_TARGET),go32v2)
STATICLIBPREFIX=
SHORTSUFFIX=dos
IMPORTLIBPREFIX=
endif
ifeq ($(OS_TARGET),watcom)
STATICLIBPREFIX=
SHORTSUFFIX=wat
IMPORTLIBPREFIX=
endif
ifeq ($(OS_TARGET),linux)
BATCHEXT=.sh
@ -1546,6 +1556,7 @@ STATICLIBEXT=.ao2
SHAREDLIBEXT=.dll
SHORTSUFFIX=os2
ECHO=echo
IMPORTLIBPREFIX=
endif
ifeq ($(OS_TARGET),amiga)
EXEEXT=
@ -1606,6 +1617,7 @@ STATICLIBEXT=.a
SHAREDLIBEXT=.nlm
EXEEXT=.nlm
SHORTSUFFIX=nw
IMPORTLIBPREFIX=imp
endif
ifeq ($(OS_TARGET),netwlibc)
STATICLIBPREFIX=
@ -1617,6 +1629,7 @@ STATICLIBEXT=.a
SHAREDLIBEXT=.nlm
EXEEXT=.nlm
SHORTSUFFIX=nwl
IMPORTLIBPREFIX=imp
endif
ifeq ($(OS_TARGET),macos)
BATCHEXT=
@ -1628,6 +1641,7 @@ STATICLIBEXT=.a
EXEEXT=
DEBUGSYMEXT=.xcoff
SHORTSUFFIX=mac
IMPORTLIBPREFIX=imp
endif
endif
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
@ -1943,6 +1957,7 @@ REQUIRE_PACKAGES_RTL=1
endif
ifeq ($(FULL_TARGET),i386-darwin)
REQUIRE_PACKAGES_RTL=1
REQUIRE_PACKAGES_UNIVINT=1
endif
ifeq ($(FULL_TARGET),i386-emx)
REQUIRE_PACKAGES_RTL=1
@ -2000,6 +2015,7 @@ REQUIRE_PACKAGES_RTL=1
endif
ifeq ($(FULL_TARGET),powerpc-darwin)
REQUIRE_PACKAGES_RTL=1
REQUIRE_PACKAGES_UNIVINT=1
endif
ifeq ($(FULL_TARGET),powerpc-morphos)
REQUIRE_PACKAGES_RTL=1
@ -2027,6 +2043,7 @@ REQUIRE_PACKAGES_RTL=1
endif
ifeq ($(FULL_TARGET),x86_64-darwin)
REQUIRE_PACKAGES_RTL=1
REQUIRE_PACKAGES_UNIVINT=1
endif
ifeq ($(FULL_TARGET),x86_64-win64)
REQUIRE_PACKAGES_RTL=1
@ -2044,6 +2061,7 @@ REQUIRE_PACKAGES_RTL=1
endif
ifeq ($(FULL_TARGET),arm-darwin)
REQUIRE_PACKAGES_RTL=1
REQUIRE_PACKAGES_UNIVINT=1
endif
ifeq ($(FULL_TARGET),arm-wince)
REQUIRE_PACKAGES_RTL=1
@ -2065,6 +2083,7 @@ REQUIRE_PACKAGES_RTL=1
endif
ifeq ($(FULL_TARGET),powerpc64-darwin)
REQUIRE_PACKAGES_RTL=1
REQUIRE_PACKAGES_UNIVINT=1
endif
ifeq ($(FULL_TARGET),powerpc64-embedded)
REQUIRE_PACKAGES_RTL=1
@ -2156,6 +2175,32 @@ ifdef UNITDIR_WINUNITS-JEDI
override COMPILER_UNITDIR+=$(UNITDIR_WINUNITS-JEDI)
endif
endif
ifdef REQUIRE_PACKAGES_UNIVINT
PACKAGEDIR_UNIVINT:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /univint/Makefile.fpc,$(PACKAGESDIR))))))
ifneq ($(PACKAGEDIR_UNIVINT),)
ifneq ($(wildcard $(PACKAGEDIR_UNIVINT)/units/$(TARGETSUFFIX)),)
UNITDIR_UNIVINT=$(PACKAGEDIR_UNIVINT)/units/$(TARGETSUFFIX)
else
UNITDIR_UNIVINT=$(PACKAGEDIR_UNIVINT)
endif
ifdef CHECKDEPEND
$(PACKAGEDIR_UNIVINT)/$(FPCMADE):
$(MAKE) -C $(PACKAGEDIR_UNIVINT) $(FPCMADE)
override ALLDEPENDENCIES+=$(PACKAGEDIR_UNIVINT)/$(FPCMADE)
endif
else
PACKAGEDIR_UNIVINT=
UNITDIR_UNIVINT:=$(subst /Package.fpc,,$(strip $(wildcard $(addsuffix /univint/Package.fpc,$(UNITSDIR)))))
ifneq ($(UNITDIR_UNIVINT),)
UNITDIR_UNIVINT:=$(firstword $(UNITDIR_UNIVINT))
else
UNITDIR_UNIVINT=
endif
endif
ifdef UNITDIR_UNIVINT
override COMPILER_UNITDIR+=$(UNITDIR_UNIVINT)
endif
endif
ifndef NOCPUDEF
override FPCOPTDEF=$(ARCH)
endif

View File

@ -9,6 +9,7 @@ version=2.2.2
[require]
packages_win32=winunits-base winunits-jedi
packages_win64=winunits-base winunits-jedi
packages_darwin=univint
[target]
units=contnrs inifiles rtfpars idea base64 gettext \

View File

@ -82,13 +82,68 @@ Type
Implementation
{$if defined(darwin) and (defined(cpu386) or defined(cpupowerpc32))}
uses
MacOSAll;
{$endif}
{ TCustomApplication }
function TCustomApplication.GetExeName: string;
{ we don't have 64 bit clean interfaces to CoreFoundation yet }
{$if defined(darwin) and (defined(cpu386) or defined(cpupowerpc32))}
var
mainBundle: CFBundleRef;
executableUrl: CFURLRef;
executableFSPath: CFStringRef;
utf16len: ptrint;
error: boolean;
begin
error:=false;
{ Get main bundle. This even works most of the time for command line
applications
}
mainbundle:=CFBundleGetMainBundle;
if assigned(mainbundle) then
begin
{ get the URL pointing to the executable of the bundle }
executableUrl:=CFBundleCopyExecutableURL(mainBundle);
if assigned(executableUrl) then
begin
{ convert the url to a POSIX path }
executableFSPath:=CFURLCopyFileSystemPath(executableUrl,kCFURLPOSIXPathStyle);
CFRelease(executableUrl);
{ convert to UTF-8 -- this is not really clean since in theory the
ansi-encoding could be different, but
a) all file i/o routines on Darwin expect utf-8-encoded strings
b) there is no easy way to convert the Unix LANG encoding
setting to an equivalent CoreFoundation encoding
}
utf16len:=CFStringGetLength(executableFSPath);
// +1 for extra terminating #0 in the worst case, so the pos below
// will always find the #0
setlength(result,utf16len*3+1);
if CFStringGetCString(executableFSPath,@result[1],length(result),kCFStringEncodingUTF8) then
{ truncate to actual length, #0 cannot appear in a file path }
setlength(result,pos(#0,result)-1)
else
error:=true;
CFRelease(executableFSPath);
end
else
error:=true;
end
else
error:=true;
if error then
{ can't do better than this }
Result:=Paramstr(0);
end;
{$else darwin}
begin
Result:=Paramstr(0);
end;
{$endif darwin}
Procedure SysGetEnvironmentList(List : TStrings;NamesOnly : Boolean);

View File

@ -1,5 +1,5 @@
#
# Don't edit, this file is generated by FPCMake Version 2.0.0 [2008/10/22]
# Don't edit, this file is generated by FPCMake Version 2.0.0 [2009/03/15]
#
default: all
MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-darwin x86_64-win64 x86_64-embedded arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian powerpc64-linux powerpc64-darwin powerpc64-embedded avr-embedded armeb-linux armeb-embedded
@ -1210,6 +1210,7 @@ endif
ifeq ($(OS_TARGET),go32v2)
STATICLIBPREFIX=
SHORTSUFFIX=dos
IMPORTLIBPREFIX=
endif
ifeq ($(OS_TARGET),watcom)
STATICLIBPREFIX=
@ -1217,6 +1218,7 @@ OEXT=.obj
ASMEXT=.asm
SHAREDLIBEXT=.dll
SHORTSUFFIX=wat
IMPORTLIBPREFIX=
endif
ifeq ($(OS_TARGET),linux)
BATCHEXT=.sh
@ -1253,6 +1255,7 @@ STATICLIBPREFIX=
SHAREDLIBEXT=.dll
SHORTSUFFIX=os2
ECHO=echo
IMPORTLIBPREFIX=
endif
ifeq ($(OS_TARGET),emx)
BATCHEXT=.cmd
@ -1261,6 +1264,7 @@ STATICLIBPREFIX=
SHAREDLIBEXT=.dll
SHORTSUFFIX=emx
ECHO=echo
IMPORTLIBPREFIX=
endif
ifeq ($(OS_TARGET),amiga)
EXEEXT=
@ -1300,17 +1304,20 @@ ifeq ($(OS_TARGET),netware)
EXEEXT=.nlm
STATICLIBPREFIX=
SHORTSUFFIX=nw
IMPORTLIBPREFIX=imp
endif
ifeq ($(OS_TARGET),netwlibc)
EXEEXT=.nlm
STATICLIBPREFIX=
SHORTSUFFIX=nwl
IMPORTLIBPREFIX=imp
endif
ifeq ($(OS_TARGET),macos)
BATCHEXT=
EXEEXT=
DEBUGSYMEXT=.xcoff
SHORTSUFFIX=mac
IMPORTLIBPREFIX=imp
endif
ifeq ($(OS_TARGET),darwin)
BATCHEXT=.sh
@ -1337,14 +1344,17 @@ STATICLIBEXT=.a1
SHAREDLIBEXT=.so1
STATICLIBPREFIX=
SHORTSUFFIX=v1
IMPORTLIBPREFIX=
endif
ifeq ($(OS_TARGET),go32v2)
STATICLIBPREFIX=
SHORTSUFFIX=dos
IMPORTLIBPREFIX=
endif
ifeq ($(OS_TARGET),watcom)
STATICLIBPREFIX=
SHORTSUFFIX=wat
IMPORTLIBPREFIX=
endif
ifeq ($(OS_TARGET),linux)
BATCHEXT=.sh
@ -1391,6 +1401,7 @@ STATICLIBEXT=.ao2
SHAREDLIBEXT=.dll
SHORTSUFFIX=os2
ECHO=echo
IMPORTLIBPREFIX=
endif
ifeq ($(OS_TARGET),amiga)
EXEEXT=
@ -1451,6 +1462,7 @@ STATICLIBEXT=.a
SHAREDLIBEXT=.nlm
EXEEXT=.nlm
SHORTSUFFIX=nw
IMPORTLIBPREFIX=imp
endif
ifeq ($(OS_TARGET),netwlibc)
STATICLIBPREFIX=
@ -1462,6 +1474,7 @@ STATICLIBEXT=.a
SHAREDLIBEXT=.nlm
EXEEXT=.nlm
SHORTSUFFIX=nwl
IMPORTLIBPREFIX=imp
endif
ifeq ($(OS_TARGET),macos)
BATCHEXT=
@ -1473,6 +1486,7 @@ STATICLIBEXT=.a
EXEEXT=
DEBUGSYMEXT=.xcoff
SHORTSUFFIX=mac
IMPORTLIBPREFIX=imp
endif
endif
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
@ -1748,6 +1762,7 @@ override REQUIRE_PACKAGES=rtl fcl-base fcl-xml fcl-db fcl-process httpd22
ifeq ($(FULL_TARGET),i386-linux)
REQUIRE_PACKAGES_RTL=1
REQUIRE_PACKAGES_FCL-BASE=1
REQUIRE_PACKAGES_ICONVENC=1
REQUIRE_PACKAGES_FCL-XML=1
REQUIRE_PACKAGES_FCL-DB=1
REQUIRE_PACKAGES_FCL-PROCESS=1
@ -1796,6 +1811,7 @@ endif
ifeq ($(FULL_TARGET),i386-freebsd)
REQUIRE_PACKAGES_RTL=1
REQUIRE_PACKAGES_FCL-BASE=1
REQUIRE_PACKAGES_ICONVENC=1
REQUIRE_PACKAGES_FCL-XML=1
REQUIRE_PACKAGES_FCL-DB=1
REQUIRE_PACKAGES_FCL-PROCESS=1
@ -1811,6 +1827,7 @@ endif
ifeq ($(FULL_TARGET),i386-beos)
REQUIRE_PACKAGES_RTL=1
REQUIRE_PACKAGES_FCL-BASE=1
REQUIRE_PACKAGES_ICONVENC=1
REQUIRE_PACKAGES_FCL-XML=1
REQUIRE_PACKAGES_FCL-DB=1
REQUIRE_PACKAGES_FCL-PROCESS=1
@ -1826,10 +1843,13 @@ endif
ifeq ($(FULL_TARGET),i386-haiku)
REQUIRE_PACKAGES_RTL=1
REQUIRE_PACKAGES_FCL-BASE=1
REQUIRE_PACKAGES_ICONVENC=1
REQUIRE_PACKAGES_FCL-XML=1
REQUIRE_PACKAGES_FCL-DB=1
REQUIRE_PACKAGES_FCL-PROCESS=1
REQUIRE_PACKAGES_HTTPD22=1
REQUIRE_PACKAGES_SQLITE=1
REQUIRE_PACKAGES_PXLIB=1
endif
ifeq ($(FULL_TARGET),i386-netbsd)
REQUIRE_PACKAGES_RTL=1
@ -1896,7 +1916,9 @@ REQUIRE_PACKAGES_HTTPD22=1
endif
ifeq ($(FULL_TARGET),i386-darwin)
REQUIRE_PACKAGES_RTL=1
REQUIRE_PACKAGES_UNIVINT=1
REQUIRE_PACKAGES_FCL-BASE=1
REQUIRE_PACKAGES_ICONVENC=1
REQUIRE_PACKAGES_FCL-XML=1
REQUIRE_PACKAGES_FCL-DB=1
REQUIRE_PACKAGES_FCL-PROCESS=1
@ -1965,6 +1987,7 @@ endif
ifeq ($(FULL_TARGET),m68k-linux)
REQUIRE_PACKAGES_RTL=1
REQUIRE_PACKAGES_FCL-BASE=1
REQUIRE_PACKAGES_ICONVENC=1
REQUIRE_PACKAGES_FCL-XML=1
REQUIRE_PACKAGES_FCL-DB=1
REQUIRE_PACKAGES_FCL-PROCESS=1
@ -1980,6 +2003,7 @@ endif
ifeq ($(FULL_TARGET),m68k-freebsd)
REQUIRE_PACKAGES_RTL=1
REQUIRE_PACKAGES_FCL-BASE=1
REQUIRE_PACKAGES_ICONVENC=1
REQUIRE_PACKAGES_FCL-XML=1
REQUIRE_PACKAGES_FCL-DB=1
REQUIRE_PACKAGES_FCL-PROCESS=1
@ -2057,6 +2081,7 @@ endif
ifeq ($(FULL_TARGET),powerpc-linux)
REQUIRE_PACKAGES_RTL=1
REQUIRE_PACKAGES_FCL-BASE=1
REQUIRE_PACKAGES_ICONVENC=1
REQUIRE_PACKAGES_FCL-XML=1
REQUIRE_PACKAGES_FCL-DB=1
REQUIRE_PACKAGES_FCL-PROCESS=1
@ -2102,7 +2127,9 @@ REQUIRE_PACKAGES_HTTPD22=1
endif
ifeq ($(FULL_TARGET),powerpc-darwin)
REQUIRE_PACKAGES_RTL=1
REQUIRE_PACKAGES_UNIVINT=1
REQUIRE_PACKAGES_FCL-BASE=1
REQUIRE_PACKAGES_ICONVENC=1
REQUIRE_PACKAGES_FCL-XML=1
REQUIRE_PACKAGES_FCL-DB=1
REQUIRE_PACKAGES_FCL-PROCESS=1
@ -2133,6 +2160,7 @@ endif
ifeq ($(FULL_TARGET),sparc-linux)
REQUIRE_PACKAGES_RTL=1
REQUIRE_PACKAGES_FCL-BASE=1
REQUIRE_PACKAGES_ICONVENC=1
REQUIRE_PACKAGES_FCL-XML=1
REQUIRE_PACKAGES_FCL-DB=1
REQUIRE_PACKAGES_FCL-PROCESS=1
@ -2180,6 +2208,7 @@ endif
ifeq ($(FULL_TARGET),x86_64-linux)
REQUIRE_PACKAGES_RTL=1
REQUIRE_PACKAGES_FCL-BASE=1
REQUIRE_PACKAGES_ICONVENC=1
REQUIRE_PACKAGES_FCL-XML=1
REQUIRE_PACKAGES_FCL-DB=1
REQUIRE_PACKAGES_FCL-PROCESS=1
@ -2195,6 +2224,7 @@ endif
ifeq ($(FULL_TARGET),x86_64-freebsd)
REQUIRE_PACKAGES_RTL=1
REQUIRE_PACKAGES_FCL-BASE=1
REQUIRE_PACKAGES_ICONVENC=1
REQUIRE_PACKAGES_FCL-XML=1
REQUIRE_PACKAGES_FCL-DB=1
REQUIRE_PACKAGES_FCL-PROCESS=1
@ -2209,7 +2239,9 @@ REQUIRE_PACKAGES_PXLIB=1
endif
ifeq ($(FULL_TARGET),x86_64-darwin)
REQUIRE_PACKAGES_RTL=1
REQUIRE_PACKAGES_UNIVINT=1
REQUIRE_PACKAGES_FCL-BASE=1
REQUIRE_PACKAGES_ICONVENC=1
REQUIRE_PACKAGES_FCL-XML=1
REQUIRE_PACKAGES_FCL-DB=1
REQUIRE_PACKAGES_FCL-PROCESS=1
@ -2246,6 +2278,7 @@ endif
ifeq ($(FULL_TARGET),arm-linux)
REQUIRE_PACKAGES_RTL=1
REQUIRE_PACKAGES_FCL-BASE=1
REQUIRE_PACKAGES_ICONVENC=1
REQUIRE_PACKAGES_FCL-XML=1
REQUIRE_PACKAGES_FCL-DB=1
REQUIRE_PACKAGES_FCL-PROCESS=1
@ -2268,7 +2301,9 @@ REQUIRE_PACKAGES_HTTPD22=1
endif
ifeq ($(FULL_TARGET),arm-darwin)
REQUIRE_PACKAGES_RTL=1
REQUIRE_PACKAGES_UNIVINT=1
REQUIRE_PACKAGES_FCL-BASE=1
REQUIRE_PACKAGES_ICONVENC=1
REQUIRE_PACKAGES_FCL-XML=1
REQUIRE_PACKAGES_FCL-DB=1
REQUIRE_PACKAGES_FCL-PROCESS=1
@ -2329,6 +2364,7 @@ endif
ifeq ($(FULL_TARGET),powerpc64-linux)
REQUIRE_PACKAGES_RTL=1
REQUIRE_PACKAGES_FCL-BASE=1
REQUIRE_PACKAGES_ICONVENC=1
REQUIRE_PACKAGES_FCL-XML=1
REQUIRE_PACKAGES_FCL-DB=1
REQUIRE_PACKAGES_FCL-PROCESS=1
@ -2343,7 +2379,9 @@ REQUIRE_PACKAGES_PXLIB=1
endif
ifeq ($(FULL_TARGET),powerpc64-darwin)
REQUIRE_PACKAGES_RTL=1
REQUIRE_PACKAGES_UNIVINT=1
REQUIRE_PACKAGES_FCL-BASE=1
REQUIRE_PACKAGES_ICONVENC=1
REQUIRE_PACKAGES_FCL-XML=1
REQUIRE_PACKAGES_FCL-DB=1
REQUIRE_PACKAGES_FCL-PROCESS=1
@ -2374,6 +2412,7 @@ endif
ifeq ($(FULL_TARGET),armeb-linux)
REQUIRE_PACKAGES_RTL=1
REQUIRE_PACKAGES_FCL-BASE=1
REQUIRE_PACKAGES_ICONVENC=1
REQUIRE_PACKAGES_FCL-XML=1
REQUIRE_PACKAGES_FCL-DB=1
REQUIRE_PACKAGES_FCL-PROCESS=1
@ -2446,6 +2485,32 @@ ifdef UNITDIR_FCL-BASE
override COMPILER_UNITDIR+=$(UNITDIR_FCL-BASE)
endif
endif
ifdef REQUIRE_PACKAGES_ICONVENC
PACKAGEDIR_ICONVENC:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /iconvenc/Makefile.fpc,$(PACKAGESDIR))))))
ifneq ($(PACKAGEDIR_ICONVENC),)
ifneq ($(wildcard $(PACKAGEDIR_ICONVENC)/units/$(TARGETSUFFIX)),)
UNITDIR_ICONVENC=$(PACKAGEDIR_ICONVENC)/units/$(TARGETSUFFIX)
else
UNITDIR_ICONVENC=$(PACKAGEDIR_ICONVENC)
endif
ifdef CHECKDEPEND
$(PACKAGEDIR_ICONVENC)/$(FPCMADE):
$(MAKE) -C $(PACKAGEDIR_ICONVENC) $(FPCMADE)
override ALLDEPENDENCIES+=$(PACKAGEDIR_ICONVENC)/$(FPCMADE)
endif
else
PACKAGEDIR_ICONVENC=
UNITDIR_ICONVENC:=$(subst /Package.fpc,,$(strip $(wildcard $(addsuffix /iconvenc/Package.fpc,$(UNITSDIR)))))
ifneq ($(UNITDIR_ICONVENC),)
UNITDIR_ICONVENC:=$(firstword $(UNITDIR_ICONVENC))
else
UNITDIR_ICONVENC=
endif
endif
ifdef UNITDIR_ICONVENC
override COMPILER_UNITDIR+=$(UNITDIR_ICONVENC)
endif
endif
ifdef REQUIRE_PACKAGES_FCL-XML
PACKAGEDIR_FCL-XML:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /fcl-xml/Makefile.fpc,$(PACKAGESDIR))))))
ifneq ($(PACKAGEDIR_FCL-XML),)
@ -2784,6 +2849,32 @@ ifdef UNITDIR_WINUNITS-JEDI
override COMPILER_UNITDIR+=$(UNITDIR_WINUNITS-JEDI)
endif
endif
ifdef REQUIRE_PACKAGES_UNIVINT
PACKAGEDIR_UNIVINT:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /univint/Makefile.fpc,$(PACKAGESDIR))))))
ifneq ($(PACKAGEDIR_UNIVINT),)
ifneq ($(wildcard $(PACKAGEDIR_UNIVINT)/units/$(TARGETSUFFIX)),)
UNITDIR_UNIVINT=$(PACKAGEDIR_UNIVINT)/units/$(TARGETSUFFIX)
else
UNITDIR_UNIVINT=$(PACKAGEDIR_UNIVINT)
endif
ifdef CHECKDEPEND
$(PACKAGEDIR_UNIVINT)/$(FPCMADE):
$(MAKE) -C $(PACKAGEDIR_UNIVINT) $(FPCMADE)
override ALLDEPENDENCIES+=$(PACKAGEDIR_UNIVINT)/$(FPCMADE)
endif
else
PACKAGEDIR_UNIVINT=
UNITDIR_UNIVINT:=$(subst /Package.fpc,,$(strip $(wildcard $(addsuffix /univint/Package.fpc,$(UNITSDIR)))))
ifneq ($(UNITDIR_UNIVINT),)
UNITDIR_UNIVINT:=$(firstword $(UNITDIR_UNIVINT))
else
UNITDIR_UNIVINT=
endif
endif
ifdef UNITDIR_UNIVINT
override COMPILER_UNITDIR+=$(UNITDIR_UNIVINT)
endif
endif
ifndef NOCPUDEF
override FPCOPTDEF=$(ARCH)
endif

View File

@ -13,6 +13,7 @@ rsts=fpcgi fphtml fpweb websession cgiapp
[require]
packages=fcl-base fcl-xml fcl-db fcl-process httpd22
packages_darwin=univint
[compiler]
options=-S2h