At 11:19 AM +0100 2/7/09, Jonas Maebe apparently wrote:
>On 07 Feb 2009, at 09:20, Ken G. Brown wrote:
>
>>MacOS X 10.5.6, fpc 2.2.2, Xcode 3.1.2
>>
>>I have a working project started from the fpc supplied template.
>>
>>I've tried to add a second target for testing which is more or less a copy of 
>>the first, although the source code has been duplicated and renamed and 
>>located in a subfolder of the project folder.
>>
>>I added a carbon application  target since there was no Pascal option in the 
>>Add Target function.
>
>That's correct. The only way to compile Pascal code in Xcode is by setting up 
>everything manually. I don't know what you want to build in this extra target, 
>so I cannot say whether "application" is appropriate or not.
>
>>I made sure that the membership checkboxes were only including the new source 
>>files in the new target.
>>
>>At first I got errors that there was no build rule for the new source. So I 
>>added a rule for Pascal Source Files with custom script by analogy from the 
>>working target.
>>There was nothing to be seen in the custom script text box in the rule from 
>>the working target, and I added a copy of what was in the 'with output 
>>files:' text box
>>$(DERIVED_SOURCES_DIR)-$(CURRENT_VARIANT)/$(CURRENT_ARCH)/$(INPUT_FILE_BASE).s
>>
>>Now when I try to build the new target, I get the following error:
>>   /bin/sh -c
>>/bin/sh: -c: option requires an argument
>>
>>Where does the custom script have to be set up? How does this work?
>
>It is not trivial. The way it works with a single program target is that the 
>"fpc" target compiles all Pascal code to assembler code. It knows which source 
>file to compile because there is a Project setting called "FPC_MAIN_FILE" that 
>points to the main Pascal program file. The "fpc" target points the compiler 
>to this file, and the compiler then automatically compiles this file and all 
>units used by it.
>
>The program target is dependent on this fpc target (this is done by dragging 
>the "fpc" target on top of the program target), so the fpc target is executed 
>first by Xcode. The program target itself then assembles the generated 
>assembler files (the .../$(INPUT_FILE_BASE).s files mentioned above) into 
>object code. Together with the libfpc.a library, also generated by the fpc 
>target and added to the "Link Binary with Libraries" phase of the program 
>target, the Pascal code is linked into the program by Xcode.
>
>If you add a new target which should compile different Pascal sources, the 
>problem is you either have to
>a) add a duplicate fpc target which uses FPC_MAIN_FILE2 or so (requires 
>changing the "Compile Pascal Sources" script phase of that target, replacing 
>all occurrences of FPC_MAIN_FILE with FPC_MAIN_FILE2), add an FPC_MAIN_FILE2 
>setting to your project settings pointing to the main file for this new 
>program, and make your new program target dependent on this duplicated fpc 
>target
>b) make the new program target dependent on the original "fpc" target, but 
>change the project's FPC_MAIN_FILE setting every time you switch targets.
>
>All in all, it's probably easier to simply use separate projects (unless there 
>is a more convenient option I didn't think of).

Yes, it sounds like the new project is the way to go. Didn't think it would be 
so complicated.
Application is what I want so I can just do a new project easy enough.

Thx for your trouble explaining this.
Ken G. Brown

>
>Jonas
>_______________________________________________
>fpc-pascal maillist  -  fpc-pascal@lists.freepascal.org
>http://lists.freepascal.org/mailman/listinfo/fpc-pascal

_______________________________________________
fpc-pascal maillist  -  fpc-pascal@lists.freepascal.org
http://lists.freepascal.org/mailman/listinfo/fpc-pascal

Reply via email to