# file      : butl/buildfile
# copyright : Copyright (c) 2014-2017 Code Synthesis Ltd
# license   : MIT; see accompanying LICENSE file

lib{butl}:                                  \
   {hxx         cxx}{ base64              } \
   {hxx         cxx}{ char-scanner        } \
   {hxx            }{ const-ptr           } \
   {hxx ixx txx cxx}{ curl                } \
   {hxx         cxx}{ diagnostics         } \
   {hxx            }{ export              } \
   {hxx ixx     cxx}{ fdstream            } \
   {hxx ixx     cxx}{ filesystem          } \
   {hxx            }{ manifest-forward    } \
   {hxx         cxx}{ manifest-parser     } \
   {hxx         cxx}{ manifest-serializer } \
   {hxx            }{ multi-index         } \
   {hxx            }{ optional            } \
   {hxx         cxx}{ pager               } \
   {hxx ixx txx cxx}{ path                } \
   {hxx            }{ path-io             } \
   {hxx            }{ path-map            } \
   {hxx     txx    }{ prefix-map          } \
   {hxx ixx     cxx}{ process             } \
   {hxx            }{ process-details     } \
   {hxx            }{ process-io          } \
   {        txx cxx}{ process-run         } \
   {hxx ixx     cxx}{ sendmail            } \
   {hxx         cxx}{ sha256              } \
   {hxx            }{ small-vector        } \
   {hxx ixx     cxx}{ standard-version    } \
   {hxx         cxx}{ string-parser       } \
   {hxx     txx    }{ string-table        } \
   {hxx         cxx}{ tab-parser          } \
   {hxx         cxx}{ target-triplet      } \
   {hxx         cxx}{ timestamp           } \
   {hxx ixx     cxx}{ utility             } \
   {hxx            }{ vector-view         } \
   {hxx            }{ version             } \
ft/{hxx            }{ exception           } \
ft/{hxx            }{ lang                } \
ft/{hxx            }{ shared_mutex        }

# Exclude these from compilation on non-Windows targets.
#
if ($cxx.target.class == "windows")
  lib{butl}: {hxx         cxx}{ win32-utility }
else
  lib{butl}: file{ win32-utility. win32-utility.cxx }

# This one is included into sha256.cxx so treat it as file to exclude
# from the compilation.
#
lib{butl}: file{sha256c.c}

# These ones are included into timestamp.cxx so treat them as files to exclude
# from the compilation.
#
lib{butl}: file{strptime.c timelocal.h timelocal.c}

# For pre-releases use the complete version to make sure they cannot be used
# in place of another pre-release or the final version.
#
if $abi_prerelease
  lib{butl}: bin.lib.version = @-$version
else
  lib{butl}: bin.lib.version = @-$abi_major.$abi_minor

cxx.poptions =+ "-I$src_root"
obja{*}: cxx.poptions += -DLIBBUTL_STATIC_BUILD
objs{*}: cxx.poptions += -DLIBBUTL_SHARED_BUILD

lib{butl}: cxx.export.poptions = "-I$src_root"
liba{butl}: cxx.export.poptions += -DLIBBUTL_STATIC
libs{butl}: cxx.export.poptions += -DLIBBUTL_SHARED

if ($cxx.target.class != "windows")
  cxx.libs += -lpthread

# Install into the butl/ subdirectory of, say, /usr/include/.
#
install.include = $install.include/butl/
install.include.subdirs = true # Recreate subdirectories.