CMakeLists.txt 1.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960
  1. cmake_minimum_required(VERSION 2.8)
  2. project(zt_osdep)
  3. set(src
  4. Arp.cpp
  5. EthernetTap.cpp
  6. NeighborDiscovery.cpp
  7. OSUtils.cpp
  8. )
  9. set(headers
  10. Arp.hpp
  11. BlockingQueue.hpp
  12. EthernetTap.hpp
  13. OSUtils.hpp
  14. Thread.hpp
  15. )
  16. if(WIN32)
  17. set(src ${src} WindowsEthernetTap.cpp)
  18. set(headers ${headers} WindowsEthernetTap.hpp)
  19. elseif(UNIX)
  20. if(APPLE)
  21. set(src ${src} MacEthernetTap.cpp MacKextEthernetTap.cpp)
  22. set(headers ${headers} MacEthernetTap.hpp MacKextEthernetTap.hpp)
  23. endif(APPLE)
  24. if(CMAKE_SYSTEM_NAME MATCHES "BSD")
  25. set(src ${src} BSDEthernetTap.cpp)
  26. set(headers ${headers} BSDEthernetTap.hpp)
  27. endif()
  28. if(CMAKE_SYSTEM_NAME MATCHES "FreeBSD")
  29. set(src ${src} freebsd_getifmaddrs.c)
  30. set(headers ${headers} freebsd_getifmaddrs.h)
  31. endif(CMAKE_SYSTEM_NAME MATCHES "FreeBSD")
  32. if(CMAKE_SYSTEM_NAME MATCHES "Linux")
  33. set(src ${src} LinuxEthernetTap.cpp LinuxNetLink.cpp)
  34. set(headers ${headers} LinuxEthernetTap.hpp LinuxNetLink.hpp)
  35. endif(CMAKE_SYSTEM_NAME MATCHES "Linux")
  36. endif(WIN32)
  37. add_library(${PROJECT_NAME} STATIC ${src} ${headers})
  38. target_compile_features(${PROJECT_NAME} PUBLIC cxx_std_11)
  39. target_include_directories(
  40. ${PROJECT_NAME}
  41. PUBLIC
  42. ${CMAKE_BINARY_DIR}/core
  43. )
  44. if(APPLE)
  45. add_executable(MacEthernetTapAgent MacEthernetTapAgent.c MacEthernetTapAgent.h)
  46. target_include_directories(MacEthernetTapAgent PRIVATE ${CMAKE_BINARY_DIR})
  47. target_include_directories(
  48. MacEthernetTapAgent
  49. PUBLIC
  50. ${CMAKE_BINARY_DIR}/core
  51. )
  52. endif(APPLE)