89 lines
2.9 KiB
Plaintext
89 lines
2.9 KiB
Plaintext
with "config/libbullet_config.gpr";
|
|
project Libbullet is
|
|
|
|
for Library_Name use "Libbullet";
|
|
for Library_Version use Project'Library_Name & ".so." & Libbullet_Config.Crate_Version;
|
|
|
|
for Source_Dirs use ("src");
|
|
for Object_Dir use "obj";
|
|
for Create_Missing_Dirs use "True";
|
|
for Library_Dir use "lib";
|
|
|
|
type Library_Type_Type is ("relocatable", "static", "static-pic");
|
|
Library_Type : Library_Type_Type :=
|
|
external ("LIBBULLET_LIBRARY_TYPE", external ("LIBRARY_TYPE", "static"));
|
|
for Library_Kind use Library_Type;
|
|
|
|
type Enabled_Kind is ("enabled", "disabled");
|
|
Compile_Checks : Enabled_Kind := External ("LIBBULLET_COMPILE_CHECKS", "disabled");
|
|
Runtime_Checks : Enabled_Kind := External ("LIBBULLET_RUNTIME_CHECKS", "disabled");
|
|
Style_Checks : Enabled_Kind := External ("LIBBULLET_STYLE_CHECKS", "disabled");
|
|
Contracts_Checks : Enabled_Kind := External ("LIBBULLET_CONTRACTS", "disabled");
|
|
|
|
type Build_Kind is ("debug", "optimize");
|
|
Build_Mode : Build_Kind := External ("LIBBULLET_BUILD_MODE", "optimize");
|
|
|
|
Compile_Checks_Switches := ();
|
|
case Compile_Checks is
|
|
when "enabled" =>
|
|
Compile_Checks_Switches :=
|
|
("-gnatwa", -- All warnings
|
|
"-gnatVa", -- All validity checks
|
|
"-gnatwe"); -- Warnings as errors
|
|
when others => null;
|
|
end case;
|
|
|
|
Runtime_Checks_Switches := ();
|
|
case Runtime_Checks is
|
|
when "enabled" => null;
|
|
when others =>
|
|
Runtime_Checks_Switches :=
|
|
("-gnatp"); -- Suppress checks
|
|
end case;
|
|
|
|
Style_Checks_Switches := ();
|
|
case Style_Checks is
|
|
when "enabled" =>
|
|
Style_Checks_Switches :=
|
|
("-gnatyg", -- GNAT Style checks
|
|
"-gnaty-d", -- Disable no DOS line terminators
|
|
"-gnatyM80", -- Maximum line length
|
|
"-gnatyO"); -- Overriding subprograms explicitly marked as such
|
|
when others => null;
|
|
end case;
|
|
|
|
Contracts_Switches := ();
|
|
case Contracts_Checks is
|
|
when "enabled" =>
|
|
Contracts_Switches :=
|
|
("-gnata"); -- Enable assertions and contracts
|
|
when others => null;
|
|
end case;
|
|
|
|
Build_Switches := ();
|
|
case Build_Mode is
|
|
when "optimize" =>
|
|
Build_Switches := ("-O3", -- Optimization
|
|
"-gnatn"); -- Enable inlining
|
|
when "debug" =>
|
|
Build_Switches := ("-g", -- Debug info
|
|
"-Og"); -- No optimization
|
|
end case;
|
|
|
|
package Compiler is
|
|
for Default_Switches ("Ada") use
|
|
Compile_Checks_Switches &
|
|
Build_Switches &
|
|
Runtime_Checks_Switches &
|
|
Style_Checks_Switches &
|
|
Contracts_Switches &
|
|
("-gnatw.X", -- Disable warnings for No_Exception_Propagation
|
|
"-gnatQ"); -- Don't quit. Generate ALI and tree files even if illegalities
|
|
end Compiler;
|
|
|
|
package Binder is
|
|
for Switches ("Ada") use ("-Es"); -- Symbolic traceback
|
|
end Binder;
|
|
|
|
end Libbullet;
|