]> git.meshlink.io Git - meshlink/blobdiff - src/CMakeLists.txt
Initial support for CMake.
[meshlink] / src / CMakeLists.txt
diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt
new file mode 100644 (file)
index 0000000..1b47d5b
--- /dev/null
@@ -0,0 +1,76 @@
+#include(GenerateExportHeader)
+#generate_export_header(meshlink BASE_NAME meshlink)
+
+add_library(meshlink SHARED
+       adns.c
+       buffer.c
+       chacha-poly1305/chacha-poly1305.c
+       chacha-poly1305/chacha.c
+       chacha-poly1305/poly1305.c
+       conf.c
+       connection.c
+       crypto.c
+       devtools.c
+       discovery.c
+       dropin.c
+       ed25519/add_scalar.c
+       ed25519/ecdh.c
+       ed25519/ecdsa.c
+       ed25519/ecdsagen.c
+       ed25519/fe.c
+       ed25519/ge.c
+       ed25519/key_exchange.c
+       ed25519/keypair.c
+       ed25519/sc.c
+       ed25519/seed.c
+       ed25519/sha512.c
+       ed25519/sign.c
+       ed25519/verify.c
+       edge.c
+       event.c
+       graph.c
+       hash.c
+       list.c
+       logger.c
+       mdns.c
+       meshlink.c
+       meta.c
+       net.c
+       net_packet.c
+       net_setup.c
+       net_socket.c
+       netutl.c
+       node.c
+       prf.c
+       protocol.c
+       protocol_auth.c
+       protocol_edge.c
+       protocol_key.c
+       protocol_misc.c
+       route.c
+       splay_tree.c
+       sptps.c
+       submesh.c
+       utcp-test.c
+       utcp.c
+       utils.c
+       xoshiro.c
+)
+
+set(MESHLINK_PUBLIC_HEADERS
+       meshlink.h
+       meshlink++.h
+)
+
+target_compile_features(meshlink PUBLIC c_std_11)
+target_link_libraries(meshlink PRIVATE Threads::Threads)
+set_target_properties(meshlink PROPERTIES PUBLIC_HEADER "${MESHLINK_PUBLIC_HEADERS}")
+set_property(TARGET meshlink PROPERTY C_VISIBILITY_PRESET hidden)
+set_property(TARGET meshlink PROPERTY C_STANDARD 11)
+
+include(GNUInstallDirs)
+install(TARGETS meshlink
+       LIBRARY
+       LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
+       PUBLIC_HEADER DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}
+)