summaryrefslogtreecommitdiff
path: root/zipada/zipada_lib.gpr
blob: ba483417dacabe2a37cad0aafae9b527941637ac (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
--  This is a GNAT, GCC or GNAT Studio project file
--  for the Zip-Ada library project:
--
--      home page:     http://unzip-ada.sf.net/
--      project page:  http://sf.net/projects/unzip-ada/
--      mirror:        https://github.com/zertovitch/zip-ada
--
--  Build me with "gprbuild -P zipada_lib", or "gnatmake -P zipada_lib",
--  or open me with GNAT Studio.
--
--  Important:
--      For building tests, see the zipada_test.gpr project file.
--      For building standalone tools, see the zipada.gpr project file.
--
library project ZipAda_Lib is

   for Source_Dirs use ("zip_lib");
   for Object_Dir use "obj_lib";
   for Create_Missing_Dirs use "True";  --  Flips by default the "-p" switch

   for Library_Dir use "lib";
   for Library_Name use "zipada";

   type Library_Type is
      ("static",
       "dynamic",
       "relocatable"
      );

   Library_Mode : Library_Type := external ("Library_Mode", "dynamic");
   for Library_Kind use Library_Mode;

   Common_Options := (
     "-gnatwa",                        --  Warnings switches (a:turn on all info/warnings marked with +)
     "-gnatwh",                        --  Warnings switches (h:turn on warnings for hiding declarations)
     "-gnatwcijkmopruvz.c.n.p.t.w.x",  --  Warnings switches (run "gnatmake" for full list)
     "-gnatf",  --  Full errors. Verbose details, all undefined references
     "-gnatq",  --  Don't quit, try semantics, even if parse errors
     "-gnatQ",  --  Don't quit, write ali/tree file even if compile errors
     "-g"
   );

   Fast_Options_Inlining_Neutral :=
     Common_Options & (
       "-O2", "-gnatp",
       "-funroll-loops", "-fpeel-loops", "-funswitch-loops",
       "-ftracer", "-fweb", "-frename-registers", 
       "-fpredictive-commoning", "-fgcse-after-reload",
       "-ftree-vectorize", "-fipa-cp-clone",
       "-ffunction-sections"
     );

   Fast_Options :=
     Fast_Options_Inlining_Neutral & (
       "-gnatn"  --  Cross-unit inlining
     );

   type Zip_OS_Kind is
      ("Win32", "Win64", "Linux", "MacOSX", "Any");

   Zip_OS : Zip_OS_Kind := external ("Zip_OS", "Any");

   package Compiler is
      for Local_Configuration_Pragmas use project'Project_Dir & "za_elim.pra";
      case Zip_OS is
        when "Win32" | "Win64" =>
          for Default_Switches ("ada") use
            Fast_Options & ("-mfpmath=sse", "-msse3");
        when others =>
          for Default_Switches ("ada") use Fast_Options;
      end case;
   end Compiler;

   package Binder is
      --  -Es: Store tracebacks in exception occurrences, and enable symbolic tracebacks
      for Default_Switches ("ada") use ("-Es");
   end Binder;

   package Builder is
      --   "If -j0 is used, then the maximum number of simultaneous compilation
      --    jobs is the number of core processors on the platform."
      for Default_Switches ("ada") use ("-j0");
   end Builder;

   package Ide is
      for Default_Switches ("adacontrol") use ("-f", "tools/verif.aru", "-r");
      for Vcs_Kind use "Subversion";
   end Ide;

end ZipAda_Lib;