diff options
author | 1138-4EB <1138-4EB@users.noreply.github.com> | 2019-06-17 03:38:27 +0200 |
---|---|---|
committer | tgingold <tgingold@users.noreply.github.com> | 2019-06-17 03:38:27 +0200 |
commit | 159e0bfdbb135e74aac10e54c7a499e9e34aa5a2 (patch) | |
tree | a1ed3fbd98ddd464041a25f5e389fdd029e55528 /src/vhdl/libghdl/libghdl.adb | |
parent | d71489efc74c55ee09f242ae5d87dbee694a8b5e (diff) | |
download | ghdl-159e0bfdbb135e74aac10e54c7a499e9e34aa5a2.tar.gz ghdl-159e0bfdbb135e74aac10e54c7a499e9e34aa5a2.tar.bz2 ghdl-159e0bfdbb135e74aac10e54c7a499e9e34aa5a2.zip |
Rework libghdl build/install procedure (#840)
* feat(libghdl): add libghdl_pkg.py, add option to generate libghdl-py.tgz with dist/travis/build.sh
* libghdl*.so is now part of GHDL
* move python sources to python/libghdl and python/pnodes
* rename src/vhdl/python to src/vhdl/libghdl
* add generation of tarball for libghdl-py to the makefile
* deprecate --enable-python and --disable-python
* add configuration option --disable-libghdl
* feat(python/libghdl): add support for LIBGHDL_PREFIX (#844)
* fix(travis): disable libghdl on mac
* feat(python/libghdl): add support for GHDL_BIN_PATH and VUNIT_GHDL_PATH
Diffstat (limited to 'src/vhdl/libghdl/libghdl.adb')
-rw-r--r-- | src/vhdl/libghdl/libghdl.adb | 106 |
1 files changed, 106 insertions, 0 deletions
diff --git a/src/vhdl/libghdl/libghdl.adb b/src/vhdl/libghdl/libghdl.adb new file mode 100644 index 000000000..7226e5295 --- /dev/null +++ b/src/vhdl/libghdl/libghdl.adb @@ -0,0 +1,106 @@ +-- Library interface for the analyzer. +-- Copyright (C) 2017 Tristan Gingold +-- +-- GHDL is free software; you can redistribute it and/or modify it under +-- the terms of the GNU General Public License as published by the Free +-- Software Foundation; either version 2, or (at your option) any later +-- version. +-- +-- GHDL is distributed in the hope that it will be useful, but WITHOUT ANY +-- WARRANTY; without even the implied warranty of MERCHANTABILITY or +-- FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +-- for more details. +-- +-- You should have received a copy of the GNU General Public License +-- along with GHDL; see the file COPYING. If not, write to the Free +-- Software Foundation, 59 Temple Place - Suite 330, Boston, MA +-- 02111-1307, USA. + +with GNAT.OS_Lib; use GNAT.OS_Lib; +with Ghdllocal; +with Ghdlcomp; +with Errorout.Memory; +with Files_Map.Editor; +with Vhdl.Formatters; +pragma Unreferenced (Errorout.Memory); -- At least from Ada code. +pragma Unreferenced (Files_Map.Editor); +pragma Unreferenced (Vhdl.Formatters); + +package body Libghdl is + function Set_Option (Opt : Thin_String_Ptr; Len : Natural) return Integer is + begin + if Ghdllocal.Decode_Driver_Option (Opt (1 .. Len)) then + -- Ok. + return 0; + else + -- Error. + return 1; + end if; + end Set_Option; + + procedure Compile_Init (Analyze_Only : Boolean) is + begin + if Analyze_Only then + return; + end if; + + Ghdllocal.Setup_Libraries (True); + end Compile_Init; + + procedure Compile_Elab + (Cmd_Name : String; Args : Argument_List; Opt_Arg : out Natural) is + begin + null; + end Compile_Elab; + + -- Set options. + procedure Set_Run_Options (Args : Argument_List) is + begin + null; + end Set_Run_Options; + + procedure Run is + begin + null; + end Run; + + function Decode_Option (Option : String) return Boolean + is + pragma Unreferenced (Option); + begin + return False; + end Decode_Option; + + procedure Disp_Long_Help is + begin + null; + end Disp_Long_Help; + + procedure Set_Hooks is + begin + Ghdlcomp.Hooks := (Compile_Init'Access, + Compile_Elab'Access, + Set_Run_Options'Access, + Run'Access, + Decode_Option'Access, + Disp_Long_Help'Access); + end Set_Hooks; + + procedure Analyze_Init is + begin + -- Load libraries... + Compile_Init (False); + end Analyze_Init; + + function Analyze_File (File : Thin_String_Ptr; Len : Natural) return Iir is + begin + return Ghdlcomp.Compile_Analyze_File2 (File (1 .. Len)); + end Analyze_File; + + Gnat_Version : constant String := "unknown compiler version" & ASCII.NUL; + pragma Export (C, Gnat_Version, "__gnat_version"); +begin + -- TODO: set program name. + Ghdllocal.Compile_Init; + Set_Hooks; +end Libghdl; |