Search code examples
delphijenkinsmsbuildjenkins-pluginsdelphi-2010

Unit not found: 'System.pas' or binary equivalents (.dcu) : Compiling on jenkins


I'm using Jenkins to generate automatic build every 15 minutes for a test project.

When compiling for Delphi itself does not give a problem, now when I run by jenkins it gives the following problem ...

C:\Program Files (x86)\Embarcadero\RAD Studio\7.0\Bin\CodeGear.Delphi.Targets(136,3): error : Project1.dpr(1) Fatal: F1027 Unit not found: 'System.pas' or binary equivalents (.dcu)

I have already tried to run by windows command this way.

cd "C:\Users\carlos.santos\Desktop\teste"
call build.bat

And Build.bat in this way.

call "C:\Program Files (x86)\Embarcadero\RAD Studio\7.0\bin\rsvars.bat"
msbuild "Project1.dproj" /p:config=Release /p:Warn=0

I have already tried to run by the Rad Studio plugin itself for Jenkins this way and it also did not work.

Rad Studio for Jenkins

I have already seen in some forums that if I have many paths or do not have the default paths of Delphi in Library path can be a problem, but I have tested this too and nothing ..

Here are the paths I have.

$ (BDS) \ lib; $ (BDS) \ Imports; $ (BDS) \ Lib \ Indy10; $ (BDSCOMMONDIR) \ Dcp; $ (BDS) \ include; $ (BDS) \ RaveReports \ Lib; $ (BDSCOMMONDIR) \ Bpl; $(BDS)\lib\debug; $(BDS)\bin; $(DELPHI)\Bin;

The Content of rsvars.bat are there:

@SET BDS=C:\Program Files (x86)\Embarcadero\RAD Studio\7.0
@SET BDSCOMMONDIR=C:\Users\Public\Documents\RAD Studio\7.0
@SET FrameworkDir=C:\Windows\Microsoft.NET\Framework\v2.0.50727
@SET FrameworkVersion=v2.0.50727
@SET FrameworkSDKDir=
@SET PATH=%FrameworkDir%;%FrameworkSDKDir%;%PATH%
@SET LANGDIR=EN

I have third party component installed in my Delphi, but I do not know if it influences anything. Anyone who can help me will be grateful.

the difference between the properties executed by jenkins and cmd are these:

pic1

pic2

pic3


Solution

  • it was resolved putting the paramether _EnvLibraryPath with my Delphi LibraryPath parameter on msbuild call, example:

    call "C:\Program Files (x86)\Embarcadero\RAD Studio\7.0\bin\rsvars.bat"
    msbuild "C:\Users\carlos.santos\Desktop\teste\Project1.dproj" /p:_EnvLibraryPath="C:\Program Files (x86)\Embarcadero\RAD Studio\7.0\lib\EN;C:\Program Files (x86)\Embarcadero\RAD Studio\7.0\lib"