Okay in the meantime I got something working for static libraries (might also work for dynamic libraries as well). In case it is helpful for someone.
from setuptools import setup
import sys
from distutils.core import setup, Extension
from torch.utils.cpp_extension import CppExtension, BuildExtension

static_libraries = ['cubic_spline']
static_lib_dir = 'lib'
libraries = ['']
library_dirs = ['']

if sys.platform == 'win32':
    libraries.extend(static_libraries)
    library_dirs.append(static_lib_dir)
    extra_objects = []
else:  # POSIX
    extra_objects = ['{}/lib{}.a'.format(static_lib_dir, l) for l in static_libraries]

setup(
    name='torch_cpp',
    ext_modules=[
        CppExtension(
            name='torch_cpp',
            sources=['pybind_wrapper.cpp', 'torch_boost.cpp', 'torch_cubicspline.cpp'],
            extra_compile_args=['-g', '-stdlib=libc++', '-std=c++11'],
            extra_objects=extra_objects)

        ],
    cmdclass={
        'build_ext': BuildExtension
    })


# call: $ CC=clang CXX=clang++ NO_CUDA=1 python setup.py install