Platform yönetimini çözen var mı?

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
Kullanıcı avatarı
freeman35
Admin
Mesajlar: 2381
Kayıt: 12 Haz 2003 04:05
Konum: merkez camii yanı

Platform yönetimini çözen var mı?

Mesaj gönderen freeman35 »

Seattle da project manager yada farketmez, platforma yönelik "outpath" işini çözebilen var mı?
dpr içeriği şöyle:

Kod: Tümünü seç

library fb_255;
{$IFDEF MSWINDOWS}
  {$IFDEF WIN32}
    {$R 'fb_255_win_x32.res' 'win32\fb_255_win_x32.rc'}
  {$ENDIF}
  {$IFDEF WIN64}
     {$R 'fb_255_win_x64.res' 'win64\fb_255_win_x64.rc'}
  {$ENDIF}
{$ENDIF}
begin
end.
bir dll yapayım dedim, bunun içinede resource ekmek istedim. saçmalıklar: (benim beceremediklerimde olabilir tabiki :) )
1-) res i bir folder altına oluşturmanın tek şartı, "Project options -> Resource compiler -> Directories and conditions -> output directory for .res files" a bir path vermek. Tamam, senin dediğin olsun dedim ve ".\$(Platform)\" ekledim. Bunuda "all platforms" a ekledim. Burdaki saçmalık, ".\$(Platform)\" benim tercihim değil, değiştirilebilir dahi olsa IDE genelinde "sabit" demektir. e neden ben dpr içinde verdiğim path göz ardı ediliyor?
2-) Yukarıdaki projeyi denediğinizde, source taki path yada file adında değişiklik yapıp denediğinizde direk rc bulunmadı hatası alacaksınız. Close all ile projeyi kapatıp, tekrar açın ve project manager a bakın, saçma sapan source lar eklenmiş olarak göreceksiniz. Elle silmediğiniz sürecede gitmeyecekler.
3-) yukarıdaki code u çalıştırdığınızda platform win32 ama direktifleri tanımıyor ve x64 ü de compile edip (x32 olarak) win32(platfom bu olduğu için clasör adıda bu oluyor) klasörüne compile ediyor.

Ben her bir platforma, proje yapacaksam, project manager da multi platform olmasının ne manası kalıyor?
Amacım şu, platform u seçicem, compile ettiğimde platform seçeneğine göre, ilgili resource file (compiler directive ile belirtiliyor) bu res oluşturulacak, ardındada dll oluşturulacak. proje adından vazgeçtim :D yani böyle birşeyden bahsediyorum "$(ProjectName)_$(Platform).dll" lazarus da bu seçenek vardıda :) neyse yeterki resource ları ve dll leri platforma göre yönlendireyim yeter :)
ZAGOR TENAY TÜRK'tür... TÜRK kalacak...
Zoru başarırım, İmkansız zaman alır
FreeMan 35.5

Soru sormaya üşenmiyorsan, sorunun çözümünü yazmaya da üşenme !!!
Kullanıcı avatarı
freeman35
Admin
Mesajlar: 2381
Kayıt: 12 Haz 2003 04:05
Konum: merkez camii yanı

Re: Platform yönetimini çözen var mı?

Mesaj gönderen freeman35 »

IDE tam bir rezalete dönmüş, yama üstüne yama, sonuç, IDE diye bir şey.
rc dosyalarını elle kendim "project options -> Resource compiler -> Directories and conditions -> output directory for .res files" te belirttiğim klasörde oluşturttum. dpr içinde "{$R fb_255_win_x32.res}" yani sadece res file adını yazmak yeterli geldi. Ayrıca yukarıda yazdığım path ve diğer output vs diğer sabit "option" ları "myBase.optset" olarak kaydettim. Bunu proje yada paket e eklemek, güzel bir çözüm oluyor, herseferinde ayarı tekrar tekrar yapmaya gerek kalmıyor.
Tek eksik tarafı, outputfile ın adını değiştirememek. yani "$(ProjectName)_$(Platform)" yazamamak.

Bu commandline "rc" leri "res" yapmak için. 64 bit gerekmiyor. sonuçta compiler res üzerinde işlem yapmıyor, direk build sırasında uygulamaya ekliyor. Yani çalıştırılacak kod olmadığından 32bit olması yeterli.

brcc32 .\win32\fb_255_win_x32.rc -fo"c:\RESs\Win32\fb_255_x32.res"
ZAGOR TENAY TÜRK'tür... TÜRK kalacak...
Zoru başarırım, İmkansız zaman alır
FreeMan 35.5

Soru sormaya üşenmiyorsan, sorunun çözümünü yazmaya da üşenme !!!
Cevapla