cmake_minimum_required(VERSION 3.10) project(se050_wireguard C) set(CMAKE_C_STANDARD 11) set(CMAKE_C_STANDARD_REQUIRED ON) # Include directories include_directories( ${CMAKE_SOURCE_DIR}/include ) # Source files set(SOURCES src/se050_i2c_hal.c src/se050_session.c src/se050_keystore.c src/se050_rng.c src/se050_x25519.c src/se050_x25519_sw.c src/se050_chacha20_poly1305.c src/se050_blake2s.c src/se050_hmac_blake2s.c src/se050_hkdf_blake2s.c src/se050_tai64n.c src/se050_scp03.c src/se050_scp03_keys.c src/se050_wireguard_proto.c src/se050_tai64n_hw.c src/se050_wireguard.c src/se050_wireguard_se050_rng.c ) # Create library add_library(se050_wireguard STATIC ${SOURCES}) # Linux-specific flags if(UNIX AND NOT APPLE) # OpenSSL for SCP03 encryption find_package(OpenSSL REQUIRED) target_link_libraries(se050_wireguard OpenSSL::SSL OpenSSL::Crypto) endif() # Enable testing option(BUILD_TESTS "Build test suite" ON) if(BUILD_TESTS) enable_testing() # SCP03 tests add_executable(test_scp03 tests/test_scp03.c) target_link_libraries(test_scp03 se050_wireguard) if(UNIX AND NOT APPLE) target_link_libraries(test_scp03 OpenSSL::SSL OpenSSL::Crypto) endif() add_test(NAME SCP03Tests COMMAND test_scp03) # SCP03 Hardware tests with AN12436 default keys add_executable(test_scp03_hardware tests/test_scp03_hardware.c) target_link_libraries(test_scp03_hardware se050_wireguard) if(UNIX AND NOT APPLE) target_link_libraries(test_scp03_hardware OpenSSL::SSL OpenSSL::Crypto) endif() add_test(NAME SCP03HardwareTests COMMAND test_scp03_hardware) endif() # Install headers install(FILES include/se050_wireguard.h DESTINATION include) # Install library install(TARGETS se050_wireguard ARCHIVE DESTINATION lib)