------------------------------------------------------------------------------ -- G N A T C O L L -- -- -- -- Copyright (C) 2015-2020, 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_core"; library project GnatColl_Python is Version := External ("GNATCOLL_VERSION", "0.0"); Name := "gnatcoll_python"; 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"); Python_CFLAGS := External_As_List ("GNATCOLL_PYTHON_CFLAGS", " "); Python_Libs := External_As_List ("GNATCOLL_PYTHON_LIBS", " "); Python_Static_Lib := External("GNATCOLL_PYTHON_STATIC_LIB", ""); Libpython_Kind := External("GNATCOLL_LIBPYTHON_KIND", "shared"); 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; for Languages use ("Ada", "C"); case Library_Type is when "relocatable" => for Library_Version use "lib" & Name & Gnatcoll_Core.So_Ext & "." & Version; for Leading_Library_Options use External_As_List ("LDFLAGS", " "); case Libpython_Kind is when "shared" => for Library_Options use Python_Libs; end case; when others => null; end case; package Compiler is case Build is when "DEBUG" => for Switches ("Ada") use ("-g", "-O0", "-gnata", "-gnatVa", "-gnatQ", "-gnaty", "-gnateE", "-gnatwaCJe", "-fstack-check"); for Switches ("C") use ("-g", "-Wunreachable-code") & Python_CFLAGS; when "PROD" => -- Do not use -gnatwe for production mode for Switches ("Ada") use ("-O2", "-gnatn", "-gnatwaCJ"); for Switches ("C") use ("-O2", "-Wunreachable-code") & Python_CFLAGS; 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 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 Linker is case Libpython_Kind is when "shared" => for Linker_Options use Python_Libs; when others => for Linker_Options use (Python_Static_Lib) & Python_Libs; end case; end Linker; package Ide is for VCS_Kind use "Git"; end Ide; end GnatColl_Python;