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;