# file : libbutl/buildfile # copyright : Copyright (c) 2014-2018 Code Synthesis Ltd # license : MIT; see accompanying LICENSE file int_libs = if ($force_std_modules == true) { #@@ MOD is it really an interface dependency? I guess if we re-export # then it is? Or maybe it is special? # import int_libs += libstd-modules%liba{std-modules} cxx.poptions += -D__cpp_lib_modules } lib{butl}: {mxx hxx ixx txx cxx}{** -win32-utility -version} {hxx}{version} \ $int_libs # 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.?xx} # The C-files are included into sha256.cxx (sha256c.c) and timestamp.cxx # (strptime.c timelocal.h timelocal.c), so treat them as files to exclude from # the compilation. # lib{butl}: file{*.c *.h} # Include the generated version header into the distribution (so that we don't # pick up an installed one) and don't remove it when cleaning in src (so that # clean results in a state identical to distributed). # hxx{version}: in{version} $src_root/manifest hxx{version}: dist = true hxx{version}: clean = ($src_root != $out_root) # 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 $version.pre_release lib{butl}: bin.lib.version = @"-$version.project_id" else lib{butl}: bin.lib.version = @"-$version.major.$version.minor" lib{butl}: cxx.export.libs = $int_libs cxx.poptions =+ "-I$out_root" "-I$src_root" obja{*} bmia{*}: cxx.poptions += -DLIBBUTL_STATIC_BUILD objs{*} bmis{*}: cxx.poptions += -DLIBBUTL_SHARED_BUILD lib{butl}: cxx.export.poptions = "-I$out_root" "-I$src_root" liba{butl}: cxx.export.poptions += -DLIBBUTL_STATIC libs{butl}: cxx.export.poptions += -DLIBBUTL_SHARED if ($cxx.target.class == "windows") { if ($cxx.target.system == "mingw32") cxx.libs += -limagehlp else cxx.libs += imagehlp.lib } else cxx.libs += -lpthread #@@ MOD VC bogus warning if module and dll-exported function called within DLL. # if ($cxx.features.modules && $cxx.class == 'msvc') cxx.loptions += /ignore:4217 # Install into the libbutl/ subdirectory of, say, /usr/include/ recreating # subdirectories. # {mxx hxx ixx txx}{*}: install = include/$project/ {mxx hxx ixx txx}{*}: install.subdirs = true