cmake_minimum_required(VERSION 3.4.1)
project(nettle C)

set(LIBNETTLE_DEFINITIONS
        -DHAVE_CONFIG_H)

set(LIBNETTLE_SOURCES
        nettle/aes-decrypt-internal.c
        nettle/aes-decrypt.c
        nettle/aes-decrypt-table.c
        nettle/aes128-decrypt.c
        nettle/aes192-decrypt.c
        nettle/aes256-decrypt.c
        nettle/aes-encrypt-internal.c
        nettle/aes-encrypt.c
        nettle/aes-encrypt-table.c
        nettle/aes128-encrypt.c
        nettle/aes192-encrypt.c
        nettle/aes256-encrypt.c
        nettle/aes-invert-internal.c
        nettle/aes-set-key-internal.c
        nettle/aes-set-encrypt-key.c
        nettle/aes-set-decrypt-key.c
        nettle/aes128-set-encrypt-key.c
        nettle/aes128-set-decrypt-key.c
        nettle/aes128-meta.c
        nettle/aes192-set-encrypt-key.c
        nettle/aes192-set-decrypt-key.c
        nettle/aes192-meta.c
        nettle/aes256-set-encrypt-key.c
        nettle/aes256-set-decrypt-key.c
        nettle/aes256-meta.c
        nettle/nist-keywrap.c
        nettle/arcfour.c
        nettle/arcfour-crypt.c
        nettle/arctwo.c
        nettle/arctwo-meta.c
        nettle/blowfish.c
        nettle/blowfish-bcrypt.c
        nettle/base16-encode.c
        nettle/base16-decode.c
        nettle/base16-meta.c
        nettle/base64-encode.c
        nettle/base64-decode.c
        nettle/base64-meta.c
        nettle/base64url-encode.c
        nettle/base64url-decode.c
        nettle/base64url-meta.c
        nettle/buffer.c
        nettle/buffer-init.c
        nettle/camellia-crypt-internal.c
        nettle/camellia-table.c
        nettle/camellia-absorb.c
        nettle/camellia-invert-key.c
        nettle/camellia128-set-encrypt-key.c
        nettle/camellia128-crypt.c
        nettle/camellia128-set-decrypt-key.c
        nettle/camellia128-meta.c
        nettle/camellia192-meta.c
        nettle/camellia256-set-encrypt-key.c
        nettle/camellia256-crypt.c
        nettle/camellia256-set-decrypt-key.c
        nettle/camellia256-meta.c
        nettle/cast128.c
        nettle/cast128-meta.c
        nettle/cbc.c
        nettle/cbc-aes128-encrypt.c
        nettle/cbc-aes192-encrypt.c
        nettle/cbc-aes256-encrypt.c
        nettle/ccm.c
        nettle/ccm-aes128.c
        nettle/ccm-aes192.c
        nettle/ccm-aes256.c
        nettle/cfb.c
        nettle/siv-cmac.c
        nettle/siv-cmac-aes128.c
        nettle/siv-cmac-aes256.c
        nettle/cnd-memcpy.c
        nettle/chacha-crypt.c
        nettle/chacha-core-internal.c
        nettle/chacha-poly1305.c
        nettle/chacha-poly1305-meta.c
        nettle/chacha-set-key.c
        nettle/chacha-set-nonce.c
        nettle/ctr.c
        nettle/ctr16.c
        nettle/des.c
        nettle/des3.c
        nettle/eax.c
        nettle/eax-aes128.c
        nettle/eax-aes128-meta.c
        nettle/ghash-set-key.c
        nettle/ghash-update.c
        nettle/gcm.c
        nettle/gcm-aes.c
        nettle/gcm-aes128.c
        nettle/gcm-aes128-meta.c
        nettle/gcm-aes192.c
        nettle/gcm-aes192-meta.c
        nettle/gcm-aes256.c
        nettle/gcm-aes256-meta.c
        nettle/gcm-camellia128.c
        nettle/gcm-camellia128-meta.c
        nettle/gcm-camellia256.c
        nettle/gcm-camellia256-meta.c
        nettle/cmac.c
        nettle/cmac64.c
        nettle/cmac-aes128.c
        nettle/cmac-aes256.c
        nettle/cmac-des3.c
        nettle/cmac-aes128-meta.c
        nettle/cmac-aes256-meta.c
        nettle/cmac-des3-meta.c
        nettle/gost28147.c
        nettle/gosthash94.c
        nettle/gosthash94-meta.c
        nettle/hmac.c
        nettle/hmac-gosthash94.c
        nettle/hmac-md5.c
        nettle/hmac-ripemd160.c
        nettle/hmac-sha1.c
        nettle/hmac-sha224.c
        nettle/hmac-sha256.c
        nettle/hmac-sha384.c
        nettle/hmac-sha512.c
        nettle/hmac-streebog.c
        nettle/hmac-sm3.c
        nettle/hmac-md5-meta.c
        nettle/hmac-ripemd160-meta.c
        nettle/hmac-sha1-meta.c
        nettle/hmac-sha224-meta.c
        nettle/hmac-sha256-meta.c
        nettle/hmac-sha384-meta.c
        nettle/hmac-sha512-meta.c
        nettle/hmac-streebog-meta.c
        nettle/hmac-sm3-meta.c
        nettle/knuth-lfib.c
        nettle/hkdf.c
        nettle/md2.c
        nettle/md2-meta.c
        nettle/md4.c
        nettle/md4-meta.c
        nettle/md5.c
        nettle/md5-compress.c
        nettle/md5-compat.c
        nettle/md5-meta.c
        nettle/memeql-sec.c
        nettle/memxor.c
        nettle/memxor3.c
        nettle/nettle-lookup-hash.c
        nettle/nettle-meta-aeads.c
        nettle/nettle-meta-armors.c
        nettle/nettle-meta-ciphers.c
        nettle/nettle-meta-hashes.c
        nettle/nettle-meta-macs.c
        nettle/pbkdf2.c
        nettle/pbkdf2-hmac-gosthash94.c
        nettle/pbkdf2-hmac-sha1.c
        nettle/pbkdf2-hmac-sha256.c
        nettle/pbkdf2-hmac-sha384.c
        nettle/pbkdf2-hmac-sha512.c
        nettle/poly1305-aes.c
        nettle/poly1305-internal.c
        nettle/realloc.c
        nettle/ripemd160.c
        nettle/ripemd160-compress.c
        nettle/ripemd160-meta.c
        nettle/salsa20-core-internal.c
        nettle/salsa20-crypt-internal.c
        nettle/salsa20-crypt.c
        nettle/salsa20r12-crypt.c
        nettle/salsa20-set-key.c
        nettle/salsa20-set-nonce.c
        nettle/salsa20-128-set-key.c
        nettle/salsa20-256-set-key.c
        nettle/sha1.c
        nettle/sha1-compress.c
        nettle/sha1-meta.c
        nettle/sha256.c
        nettle/sha256-compress.c
        nettle/sha224-meta.c
        nettle/sha256-meta.c
        nettle/sha512.c
        nettle/sha512-compress.c
        nettle/sha384-meta.c
        nettle/sha512-meta.c
        nettle/sha512-224-meta.c
        nettle/sha512-256-meta.c
        nettle/sha3.c
        nettle/sha3-permute.c
        nettle/sha3-224.c
        nettle/sha3-224-meta.c
        nettle/sha3-256.c
        nettle/sha3-256-meta.c
        nettle/sha3-384.c
        nettle/sha3-384-meta.c
        nettle/sha3-512.c
        nettle/sha3-512-meta.c
        nettle/shake256.c
        nettle/sm3.c
        nettle/sm3-meta.c
        nettle/serpent-set-key.c
        nettle/serpent-encrypt.c
        nettle/serpent-decrypt.c
        nettle/serpent-meta.c
        nettle/streebog.c
        nettle/streebog-meta.c
        nettle/twofish.c
        nettle/twofish-meta.c
        nettle/umac-nh.c
        nettle/umac-nh-n.c
        nettle/umac-l2.c
        nettle/umac-l3.c
        nettle/umac-poly64.c
        nettle/umac-poly128.c
        nettle/umac-set-key.c
        nettle/umac32.c
        nettle/umac64.c
        nettle/umac96.c
        nettle/umac128.c
        nettle/version.c
        nettle/write-be32.c
        nettle/write-le32.c
        nettle/write-le64.c
        nettle/yarrow256.c
        nettle/yarrow_key_event.c
        nettle/xts.c
        nettle/xts-aes128.c
        nettle/xts-aes256.c
        )

set(LIBNETTLE_INCLUDES
        ${CMAKE_CURRENT_SOURCE_DIR}
        ${CMAKE_CURRENT_SOURCE_DIR}/nettle
        )

add_library(nettle STATIC ${LIBNETTLE_SOURCES})
target_include_directories(nettle PUBLIC ${LIBNETTLE_INCLUDES})
target_compile_definitions(nettle PRIVATE ${LIBNETTLE_DEFINITIONS})