# Nix project build options
#============================================================================

# dirs
#============================================================================

option(
    'nixstoredir',
    type : 'string',
    value : '/nix/store',
    description : 'path of the Nix store (defaults to /nix/store)')


# compiler args
#============================================================================

option(
    'ldflags',
    type : 'array',
    value : [
        '-L/usr/local/lib',
        '-L/usr/lib',
        '-L/lib'],
    description : 'Link flags')


option(
    'cxxflags',
    type : 'array',
    value : [
        '-Wdeprecated', 
        '-Wno-non-virtual-dtor',
        '-Wno-unused-parameter'],
    description : 'C build flags')




# link args
#============================================================================

option(
    'boost_link_args', 
    type : 'array', 
    value : [
        '-L/usr/lib64',
        '-lboost_system',
        '-lboost_context',
        '-lboost_thread'], 
    description : 'link args for boost')

option(
    'brotli_link_args',
    type : 'array',
    value : [
        '-L/usr/local/lib',
        '-lbrotlienc',
        '-lbrotlidec'],
    description : 'link args for libbrotli')

option(
    'bz2_link_args',
    type : 'array',
    value : [
        '-L/usr/local/lib',
        '-lbz2'],
    description : 'link args for libbz2')

option(
    'curl_link_args',
    type : 'array',
    value : [
        '-L/usr/local/lib',
        '-lcurl'],
    description : 'link args for libcurl')

option(
    'dl_link_args',
    type : 'array',
    value : [
        '-L/usr/local/lib',
        '-ldl'],
    description : 'link args for libdl')

option(
    'editline_link_args',
    type : 'array',
    value : [
        '-L/usr/local/lib',
        '-leditline'],
    description : 'link args for editline_link_args')

option(
    'lzma_link_args',
    type : 'array',
    value : [
        '-L/usr/local/lib',
        '-llzma'],
    description : 'link args for liblzma')

option(
    'openssl_link_args',
    type : 'array',
    value : [
        '-L/usr/local/lib',
        '-lcrypto'],
    description : 'link args for openssl')

option(
    'pthread_link_args',
    type : 'array',
    value : [
        '-L/usr/local/lib',
        '-pthread'],
    description : 'link args for pthread')

option(
    'sodium_link_args',
    type : 'array',
    value : [
        '-L/usr/local/lib',
        '-lsodium'],
    description : 'link args for libsodium')

option(
    'sqlite3_link_args',
    type : 'array',
    value : [
        '-L/usr/local/lib',
        '-lsqlite3'],
    description : 'link args for sqlite3')

option(
    'gc_link_args',
    type : 'array',
    value : [
        '-L/usr/local/lib',
        '-lgc'],
    description : 'link args for boehm garbage collector')

option(
    'glog_link_args',
    type : 'array',
    value : [
        '-L/usr/local/lib',
        '-lglog'],
    description : 'link args for glog')


# optional dependancies
#============================================================================

option(
    'with_gc',
    type : 'boolean',
    value : 'false',
    description : 'Build nix with Boehm garbage collector')

option(
    'with_libsodium',
    type : 'feature',
    value : 'auto',
    description : 'Build nix with libsodium')

option(
    'with_s3',
    type : 'boolean',
    value : 'false',
    description : 'Build nix with s3')

option(
    'with_coreutils_bin',
    type : 'string',
    description : 'path of cat, mkdir, etc.')



# misc
#============================================================================
option(
    'disable_doc_gen',
    type : 'boolean',
    value : 'false',
    description : 'disable documentation generation')

option(
    'build_shared_libs',
    type : 'boolean',
    value : 'false',
    description : 'Build nix with shared libs')

option(
    'sandbox_shell',
    type : 'string',
    value : '/usr/bin/busybox',
    description : 'path of a statically-linked shell to use as /bin/sh in sandboxes')

option(
    'normal_var',
    type : 'boolean',
    value : 'true',
    description : 'Whether to use `/nix/var` or the user-overridable `localstatedir`.')