The Wiert Corner – irregular stream of stuff

Jeroen W. Pluimers on .NET, C#, Delphi, databases, and personal interests

  • My badges

  • Twitter Updates

  • My Flickr Stream

  • Pages

  • All categories

  • Enter your email address to subscribe to this blog and receive notifications of new posts by email.

    Join 2,867 other followers

Spring4D now has projects for Appmethod, but it cannot support Appmethod in the automated build engine.

Posted by jpluimers on 2014/04/08

Recently I pushed two sets ofchanges for Spring4D with packages and test projects that support Appmethod. The test projects are configured to use Firemonkey (conditional define FMX) as that is what Appmethod is centered around.

This weekend I filed Appmethod issue AP-64 that prevents Spring4D and other open source projects to automatically build the underlying projects. Since the new Quality site does not (yet?) make reports on public reports visible to the public, the full report is at the end of this post.

The issue comes down to that Embarcadero has intentionally made the command-line compilers dysfunctional. They are there, but – as you see when running this small batch file – they all will display “This version of the product does not support command line compiling.“. It makes it impossible for open source projects to just distribute the sources, and ship a small build tool that builds and installs the compiled binaries into the available products. So this issue doesn’t only affect Spring4D. The large JCL open source project also requires the command-line compilers.

In the past, only some free or trial products came without the command-line compilers, and I personally am anxious why the command-line compilers were crippled. On the other hand – even though the compiler DLLs list themselves as version 19.50, the functionality in Appmethod basically is the same as in RAD Studio XE5.

The Spring4D team regrets the lack of command-line compiler support in Appmethod. We really hope this restriction is removed soon, preferably in this version, but – since the docteam is prepping for XE6, Delphi XE6 is around the corner (the first XE6 webinar is in slightly more than a week from now) and Appmethod is based on the most recent Delphi version – in a future version.

We could go the long path of encapsulating the DLL versions of the compilers, but those do not have a public API. Reverse engineering that would cost a lot of effort, which we’d rather put into enhancing Spring4D.

If Another thing we could do – if we’d get the compilers, or Embarcadero would build the Spring4D sources with them – is provide precompiled packages for every Appmethod version. We’d rather not do that either because of the exact same reason: extra effort that we’d rather spend on other Spring4D things.

So for now, the Spring4D team keeps the Appmethod support as is. If there are people interested, they can manually compile and install the packages and test projects from within the IDE.

–jeroen


for /f "usebackq tokens=2* delims= " %%c in (`reg query HKEY_CURRENT_USER\Software\Embarcadero\BDS\13.0 /v RootDir`) do (
dir "%%d\bin\dcc*.exe"
for %%c in ("%%d\bin\dcc*.exe") do %%c
)

Full bug report:

Type: Bug
Status: Open
Priority: Major
Resolution: Unresolved
Affects Version/s: 1.13
Fix Version/s: None
Component/s: None
Labels:None
Build No: 19.5.15286.8921
Platform: All
Language Version: English
Edition: Business

Steps:
1. Run this batch file:
for /f “usebackq tokens=2* delims= ” %%c in (`reg query HKEY_CURRENT_USER\Software\Embarcadero\BDS\13.0 /v RootDir`) do (
dir “%%d\bin\dcc*.exe”
for %%c in (“%%d\bin\dcc*.exe”) do %%c
)
2. Observe the results:
C:\Users\Developer\Versioned>(
dir “C:\Program Files (x86)\Embarcadero\Appmethod\13.0\\bin\dcc*.exe”
for %c in (“C:\Program Files (x86)\Embarcadero\Appmethod\13.0\\bin\dcc*.exe”) do REG_SZ
)
Volume in drive C has no label.
Volume Serial Number is B8C8-1B6A
Directory of C:\Program Files (x86)\Embarcadero\Appmethod\13.0\bin
10/25/2013 07:16 PM 23,040 dcc32.exe
10/25/2013 07:18 PM 23,040 dcc64.exe
10/25/2013 07:16 PM 23,040 dccaarm.exe
10/25/2013 07:16 PM 23,040 dccios32.exe
10/25/2013 07:16 PM 23,040 dcciosarm.exe
10/25/2013 07:16 PM 23,040 dccosx.exe
6 File(s) 138,240 bytes
0 Dir(s) 14,182,273,024 bytes free
C:\Users\Developer\Versioned>C:\Program Files (x86)\Embarcadero\Appmethod\13.0\\bin\dcc32.exe
This version of the product does not support command line compiling.
C:\Users\Developer\Versioned>C:\Program Files (x86)\Embarcadero\Appmethod\13.0\\bin\dcc64.exe
This version of the product does not support command line compiling.
C:\Users\Developer\Versioned>C:\Program Files (x86)\Embarcadero\Appmethod\13.0\\bin\dccaarm.exe
This version of the product does not support command line compiling.
C:\Users\Developer\Versioned>C:\Program Files (x86)\Embarcadero\Appmethod\13.0\\bin\dccios32.exe
This version of the product does not support command line compiling.
C:\Users\Developer\Versioned>C:\Program Files (x86)\Embarcadero\Appmethod\13.0\\bin\dcciosarm.exe
This version of the product does not support command line compiling.
C:\Users\Developer\Versioned>C:\Program Files (x86)\Embarcadero\Appmethod\13.0\\bin\dccosx.exe
This version of the product does not support command line compiling.

InternalID: RS-49654

Description
Appmethod broke the DCC*.exe command-line compilers on purpose (they are 22k stubs .
Many open source libraries (including JCL and Spring4D) depend on the command-line compilers for their installation.
dcc32.exe
dcc64.exe
dccaarm.exe
dccios32.exe
dcciosarm.exe
dccosx.exe
dcc*.exe are all 23,040 bytes long.
they all display this when running:
This version of the product does not support command line compiling.

4 Responses to “Spring4D now has projects for Appmethod, but it cannot support Appmethod in the automated build engine.”

  1. Response from AppMethod’s “JT” about this…
    http://community.embarcadero.com/index.php/forum/tools/172-does-not-support-command-line-compiling#326

  2. […] It is not clear if there will be a GExperts for Appmethod, as Appmethod does not provide functioning command-line compilers like I already blogged about in Spring4D now has projects for Appmethod, but it cannot support Appmethod in the automated build engi…. […]

  3. IL said

    Nice batch script! Delphi Cloud Compiler would be the solution to this (:

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

This site uses Akismet to reduce spam. Learn how your comment data is processed.

 
%d bloggers like this: