intf_libs = # Interface dependencies.
impl_libs = # Implementation dependencies.
#import xxxx_libs += libhello%lib{hello}

lib{jpeg-compressor}: libul{jpeg-compressor}: {hxx cxx}{**} $impl_libs $intf_libs

libs{jpeg-compressor}: def{jpeg-compressor}: include = ($cxx.target.system == 'win32-msvc')
def{jpeg-compressor}: libul{jpeg-compressor}

# Build options.
#
cxx.poptions =+ "-I$out_root" "-I$src_root"

# Upstream CMakeLists.txt uses -fno-strict-aliasing for gcc/clang.
# jpgd.cpp sets bytes and row_block without reading them.
#
if ($cxx.class == 'gcc')
{
  cxx.coptions += -fno-strict-aliasing
  cxx.coptions += -Wno-unused-but-set-variable
}

# jpge.cpp uses fopen (MSVC C4996, Clang-cl -Wdeprecated-declarations).
#
if ($cxx.target.class == 'windows')
  cxx.poptions += -D_CRT_SECURE_NO_WARNINGS

if ($cxx.target.system == 'mingw32')
  cxx.loptions += -Wl,--export-all-symbols

# Export options.
#
lib{jpeg-compressor}:
{
  cxx.export.poptions = "-I$out_root" "-I$src_root"
  cxx.export.libs = $intf_libs
}

# For pre-releases use the complete version to make sure they cannot
# be used in place of another pre-release or the final version. See
# the version module for details on the version.* variable values.
#
if $version.pre_release
  lib{jpeg-compressor}: bin.lib.version = "-$version.project_id"
else
  lib{jpeg-compressor}: bin.lib.version = "-$version.major.$version.minor"

# Install into the jpeg-compressor/ subdirectory of, say, /usr/include/
# recreating subdirectories.
#
hxx{*}:
{
  install         = include/jpeg-compressor/
  install.subdirs = true
}

# jpgd_idct.h is a private SSE2 helper included only from jpgd.cpp.
#
hxx{jpgd_idct}@./: install = false
