File: ada_bar_codes.gpr

package info (click to toggle)
ada-bar-codes 005-3
  • links: PTS, VCS
  • area: main
  • in suites: sid, trixie
  • size: 364 kB
  • sloc: ada: 2,245; makefile: 28; sh: 6
file content (110 lines) | stat: -rw-r--r-- 4,524 bytes parent folder | download
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
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
--  This is a GNAT, GCC or GNAT Studio project file
--  for the Ada Bar Codes project:
--
--      Home page:     http://ada-bar-codes.sf.net/
--      Project page:  http://sf.net/projects/ada-bar-codes/
--      Mirror:        https://github.com/zertovitch/ada-bar-codes
--      Alire crate:   https://alire.ada.dev/crates/bar_codes
--
--  Build me with "gprbuild -P ada_bar_codes", or "gnatmake -P ada_bar_codes",
--  or open me with GNAT Studio
--
project Ada_Bar_Codes is

   type ABC_Build_Mode_Type is
      ("Debug",
       "Fast",
       "dynamic", "relocatable",  -- shared library (PIC)
       "static",                  -- static library (non PIC)
       "static-pic");             -- static library (PIC)

   ABC_Build_Mode : ABC_Build_Mode_Type := external ("ABC_Build_Mode", "Debug");

   Adaflags := External_As_List ("ADAFLAGS", " ");
   Ldflags  := External_As_List ("LDFLAGS", " ");

   Library_Version := External ("ABC_Library_Version", "libada_bar_codes.so.1");

   for Create_Missing_Dirs use "True";  --  Flips by default the "-p" switch

   case ABC_Build_Mode is
      when "Debug" | "Fast" =>
         for Source_Dirs use
           (".",      --  Library: Bar_Codes[.*]
            "demo",   --  Demos
            "test");  --  Tests
         for Main use
           ("bar_codes_demo.adb",   --  Main demo
            "bar_codes_test.adb");  --  Tests
         for Exec_Dir use ".";
         for Object_Dir use "obj/" & ABC_Build_Mode;
      when "dynamic" | "relocatable" =>
         for Source_Dirs use (".");
         for Library_Name use "ada_bar_codes";
         for Library_Kind use "relocatable";
         for Library_Version use Library_Version;
         for Leading_Library_Options use Ldflags;
         for Library_Dir use "obj/relocatable-lib";
         for Object_Dir  use "obj/relocatable-obj";
      when "static" | "static-pic" =>
         for Source_Dirs use (".");
         for Library_Name use "ada_bar_codes";
         for Library_Kind use ABC_Build_Mode;
         for Library_Dir use "obj/" & ABC_Build_Mode & "-lib";
         for Object_Dir  use "obj/" & ABC_Build_Mode & "-obj";
   end case;

   Compiler_Common_Options :=
     ("-gnatwaC",                       --  Warnings switches (a:turn on all info/warnings marked with +; C:turn off warnings for constant conditional)
      "-gnatwh",                        --  Warnings switches (h:turn on warnings for hiding declarations)
      "-gnatwijkmopruvz.c.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
   &
     ("-gnatyaknpr",  --  Style: check all casings: a:attribute, k:keywords, n:package Standard identifiers, p:pragma, r:identifier references
      "-gnatybfhiu",  --  Style: check b:no blanks at end of lines, f:no ff/vtabs, h: no htabs, i:if-then layout, u:no unnecessary blank lines
      "-gnatyxtc",    --  Style: check x:no extra parens, t:token separation rules, c:comment format (two spaces)
      "-gnatye",      --  Style: check e:end/exit labels present
      "-gnaty2",      --  Style: check indentation
      "-gnatyO")      --  Style: check O:check overriding indicators

   & Adaflags;

   Compiler_Debug_Options :=
     ("-gnato", "-fno-inline", "-fstack-check", "-g", "-gnatVa") &
     Compiler_Common_Options;

   Compiler_Fast_Options :=
     ("-Ofast", "-gnatn") &
     Compiler_Common_Options;

   package Compiler is
      case ABC_Build_Mode is
         when "Debug" =>
            for Local_Configuration_Pragmas use project'Project_Dir & "gnat/debug.pra";
            for Default_Switches ("ada") use Compiler_Debug_Options;
         when others =>
            for Default_Switches ("ada") use Compiler_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 Linker is
      case ABC_Build_Mode is
         when "Debug" => for Switches ("Ada") use Ldflags;
         when others  => null;
      end case;
   end Linker;

end Ada_Bar_Codes;