The current approach is BL-first and after triangulate after. All is include in the software.
I first generate the boundary-layer mesh with a custom in-house algorithm, including topology cleanup and Laplacian smoothing. Once the BL is finalized, I generate the core triangular mesh afterwards.
For the triangular meshing, I am currently using an advancing-front approach.
At the moment my mesher is only 2D, so the input consists of geometry files containing ordered boundary coordinates (currently using a simple .dat format with x and y coordinates). The meshing setup is controlled through a separate parameter file, in a similar spirit to snappyHexMesh dictionaries.