[Gambas-user] gb.dwg started

Tobias Boege taboege at gmail.com
Mon Dec 14 00:02:11 CET 2020

On Sun, 13 Dec 2020, Martin wrote:
> Hi,
> I started to make the gb.dwg component I am following the instructions from
> Tobias Boege "Writing a native component for gambas" [0].

Oh, I hate documents that don't have their creation date printed on them.
>From the svn revision 6903 mentioned in the text, I estimate this was
written in 2015. I haven't tracked how the process changed since then.

I still have the source code for that document and could rehost it (I am
no longer in control over my old student website) and correct any mistakes.

> The objective is to use the project made for Reini Urban [1] and of course
> the LibreDWG library.
> [0] https://wasd.urz.uni-magdeburg.de/tboege/gambas/native_comp.pdf
> [1] https://github.com/LibreDWG/gambas3-bindings

Wow, I didn't know Reini Urban was interested in Gambas!

> So I follow the first steps.
> 0) Install all the dependecies recomended by the web site for Arch distro (I
> use Manjaro) -> sudo pacman -Syu --needed --noconfirmalure ... here tthe
> option "--noconfirmalure" doesent work on my terminal then I decide not use
> it

This is almost surely a typo. "--noconfirmalure" should be two words:
"--noconfirm", which is an actual option of pacman (although I would
personally not use it when I install something interactively anyway),
and "alure", which is a dependency of gb.openal.

> 1) Download the source code - ok
> 2 ) Made the gb.dw.conf file, then run ./make-compoente gb.dwg but doesent
> work properly, the message was:
> which: no cpp in (/home/USER/.local/bin:/usr/local/bin:/usr/bin:/bin:/usr/local/sbin:/usr/bin/site_perl:/usr/bin/vendor_perl:/usr/bin/core_perl)
> ./make-component: error: cpp was not found

This indicates that you do not have a C compiler installed or one whose
preprocessor is not called "cpp". Install for example "gcc" on Arch Linux
and you should get your cpp.

Otherwise, make-component is just a convenience script. You do not have
to use it to make a functional new component. The cargo cult way which I
used more often than make-component is to copy a small native component
and adapt its source code. You can, in a clean Gambas repository,

  $ cp -r gb.gmp gb.dwg

and then adapt the following files

    - this is basically what you enter into gb.dwg.conf plus data
      on how the build process can figure out if the backing native
      library (something with "dwg"?) is installed or not

    - rename GMP_DIR to DWG_DIR

    - rename to gb.dwg.component and fill in correct information

    - change all GMP to DWG and register your source files

    - this is your implementation, the files mentioned in the Makefile.am

and register the new component to the top-level build process via

    - add gb.dwg to the long list of subdirectories

    - add your @dwg_dir@ to the long list of subdirectories

Then ./reconf-all && ./configure to see if it gets picked up.


"There's an old saying: Don't change anything... ever!" -- Mr. Monk

More information about the User mailing list