------------------------------------------------------------------------------ -- 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"; with "gnatcoll_sql"; project GnatColl_Sqlite is Version := External ("GNATCOLL_VERSION", "0.0"); OS := External ("OS", "unix"); Name := "gnatcoll_sqlite"; 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 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 Library_Version use "lib" & Name & Gnatcoll.So_Ext & "." & Version; for Languages use ("Ada", "C"); Thread_Lib := (); case Library_Type is when "relocatable" => for Library_Interface use ("gnatcoll.sql.sqlite"); when others => null; end case; case OS is when "Windows_NT" => null; when others => Thread_Lib := ("-lpthread"); end case; type Sqlite_Dep_Kind is ("embedded", "external"); Sqlite_Dep : Sqlite_Dep_Kind := External ("GNATCOLL_SQLITE", "embedded"); case Sqlite_Dep is when "embedded" => for Source_Dirs use (".", "amalgamation"); when "external" => for Source_Dirs use ("."); for Library_Options use ("-lsqlite3") & Thread_Lib; 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"); when "PROD" => -- Do not use -gnatwe for production mode for Switches ("Ada") use ("-O2", "-gnatn", "-gnatwaCJ"); for Switches ("C") use ("-O2", "-Wunreachable-code"); end case; case Sqlite_Dep is when "embedded" => for Switches ("C") use Compiler'Switches ("C") & ("-DSQLITE_OMIT_LOAD_EXTENSION", "-D__EXTENSIONS__", "-O3"); when others => null; end case; 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 Ide is for VCS_Kind use "Git"; end Ide; package Linker is case Sqlite_Dep is when "embedded" => for Linker_Options use Thread_Lib; when "external" => for Linker_Options use ("-lsqlite3") & Thread_Lib; end case; end Linker; end GnatColl_Sqlite;