------------------------------------------------------------------------------ -- G N A T C O L L -- -- -- -- Copyright (C) 2023, AdaCore -- -- -- -- This library is free software; you can redistribute it and/or modify it -- -- under terms of the GNU General Public License as published by the Free -- -- Software Foundation; either version 3, or (at your option) any later -- -- version. This library is distributed in the hope that it will be useful, -- -- but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHAN- -- -- TABILITY or FITNESS FOR A PARTICULAR PURPOSE. -- -- -- -- As a special exception under Section 7 of GPL version 3, you are granted -- -- additional permissions described in the GCC Runtime Library Exception, -- -- version 3.1, as published by the Free Software Foundation. -- -- -- -- You should have received a copy of the GNU General Public License and -- -- a copy of the GCC Runtime Library Exception along with this program; -- -- see the files COPYING3 and COPYING.RUNTIME respectively. If not, see -- -- . -- -- -- ------------------------------------------------------------------------------ with "gnatcoll_minimal"; library project GnatColl_CPP is Version := External ("GNATCOLL_VERSION", "0.0"); Name := "gnatcoll_cpp"; type Build_Type is ("DEBUG", "PROD"); Build : Build_Type := External ("GNATCOLL_BUILD_MODE", External ("BUILD", "PROD")); type Library_Type_Type is ("relocatable", "static", "static-pic"); Library_Type : Library_Type_Type := External ("LIBRARY_TYPE", "static"); for Source_Dirs use ("."); for Library_Kind use Library_Type; for Object_Dir use "obj/" & Project'Library_Kind; for Library_Dir use "lib/" & Project'Library_Kind; for Library_Name use Name; case Library_Type is when "relocatable" => for Leading_Library_Options use External_As_List ("LDFLAGS", " "); for Library_Version use "lib" & Name & Gnatcoll_Minimal.So_Ext & "." & Version; when others => null; end case; for Languages use ("Ada", "C++"); package Compiler is case Build is when "DEBUG" => for Switches ("Ada") use ("-g", "-O0", "-gnata", "-gnatVa", "-gnatQ", "-gnaty", "-gnateE", "-gnatwaCJe", "-fstack-check"); when "PROD" => -- Do not use -gnatwe for production mode for Switches ("Ada") use ("-O2", "-gnatn", "-gnatwaCJ"); end case; for Switches ("Ada") use Compiler'Switches ("Ada") & External_As_List ("ADAFLAGS", " "); for Switches ("C++") use Compiler'Switches ("C++") & External_As_List ("CFLAGS", " ") & External_As_List ("CPPFLAGS", " "); end Compiler; package Naming is for Specification_Suffix ("C++") use ".h"; for Implementation_Suffix ("C++") use ".cpp"; end Naming; package Binder is case Build is when "DEBUG" => for Switches ("Ada") use ("-E"); when "PROD" => null; end case; end Binder; package Builder is case Build is when "DEBUG" => for Global_Configuration_Pragmas use "../gnat_debug.adc"; when "PROD" => null; end case; end Builder; package Ide is for VCS_Kind use "Git"; end Ide; end GnatColl_CPP;