createconfig.pp 1.9 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283
  1. program createconfig;
  2. {$mode objfpc}
  3. {$h+}
  4. uses sysutils;
  5. Var
  6. F : Text;
  7. CfgFile : String;
  8. BaseDir : String;
  9. Procedure AddLn(S : String);
  10. begin
  11. Writeln(F,S);
  12. end;
  13. begin
  14. if ParamCount<>2 then
  15. begin
  16. Writeln('Usage ',ParamStr(0),' cfgfile basedir');
  17. Writeln('Basedir relative to cfgfile');
  18. Halt(1);
  19. end;
  20. CfgFile:=Paramstr(1);
  21. BaseDir:=ParamStr(2);
  22. if not ForceDirectories(ExtractFilePath(CfgFile)) then
  23. begin
  24. Writeln(StdErr,'Could not create destination directory ',ExtractFilePath(CfgFile));
  25. Halt(2);
  26. end;
  27. Assign(F,CfgFile);
  28. try
  29. Rewrite(F);
  30. except
  31. On E : exception do
  32. begin
  33. Writeln(StdErr,'Could not create config file ',CfgFile,' : ',E.Message);
  34. Halt(3);
  35. end;
  36. end;
  37. Addln('#');
  38. Addln('# Minimal config file for pas2js compiler');
  39. Addln('#');
  40. Addln('');
  41. Addln('# -d is the same as #DEFINE');
  42. Addln('# -u is the same as #UNDEF');
  43. Addln('');
  44. Addln('# Write always a nice logo ;)');
  45. Addln('-l');
  46. Addln('');
  47. Addln('# Display Warnings, Notes and Hints');
  48. Addln('-vwnh');
  49. Addln('# If you don''t want so much verbosity use');
  50. Addln('#-vw');
  51. Addln('');
  52. Addln('# Allow C-operators');
  53. Addln('-Sc');
  54. Addln('');
  55. Addln('#ifdef FPC_SUBTARGET_NAMESPACES');
  56. Addln('-Fu$CfgDir/'+BASEDIR+'/packages/*/namespaced');
  57. Addln('-Fi$CfgDir/'+BASEDIR+'/packages/*/src');
  58. Addln('# For compatibility with FPC:');
  59. Addln('-dUnicodeRTL');
  60. Addln('#else');
  61. Addln('-Fu$CfgDir/'+BASEDIR+'/packages/*/src');
  62. Addln('#endif');
  63. Addln('');
  64. Addln('# use rtl.js from compiler sources if available');
  65. Addln('-Fu$CfgDir/'+BASEDIR+'/compiler/utils/pas2js/dist');
  66. Addln('');
  67. Addln('#IFDEF nodejs');
  68. Addln('-Jirtl.js');
  69. Addln('#ENDIF');
  70. Addln('');
  71. Addln('# Put all generated JavaScript into one js file:');
  72. Addln('-Jc');
  73. Addln('');
  74. Addln('# end.');
  75. Close(F);
  76. end.