add_library(curve25519-interface INTERFACE) target_include_directories(curve25519-interface INTERFACE ${CMAKE_CURRENT_SOURCE_DIR} ) target_sources(curve25519-interface INTERFACE ${CMAKE_CURRENT_SOURCE_DIR}/curve25519.h ) target_link_libraries(curve25519-interface INTERFACE cmix-crypto-interface ) foreach(impl ${libcmix_crypto_curve25519_implementations}) add_subdirectory(${impl}) endforeach() add_library(curve25519-implementation curve25519.h curve25519.c ) target_include_directories(curve25519-implementation PUBLIC ${CMAKE_CURRENT_SOURCE_DIR} ) target_link_libraries(curve25519-implementation PUBLIC curve25519-interface PUBLIC curve25519-${libcmix_crypto_curve25519_implementation} )